integration/soc: add add_spi_sdcard method to add SPI mode SDCard support to the...
authorFlorent Kermarrec <florent@enjoy-digital.fr>
Fri, 20 Mar 2020 08:57:37 +0000 (09:57 +0100)
committerFlorent Kermarrec <florent@enjoy-digital.fr>
Fri, 20 Mar 2020 08:57:37 +0000 (09:57 +0100)
litex/soc/integration/soc.py

index aade79dbb2bfd36f99d61d12073738aeacc881ef..cf056ae42b9d56ad013ecf8ed3f8276f3164274c 100644 (file)
@@ -13,6 +13,7 @@ from migen import *
 from litex.soc.cores import cpu
 from litex.soc.cores.identifier import Identifier
 from litex.soc.cores.timer import Timer
+from litex.soc.cores.spi import SPIMaster
 
 from litex.soc.interconnect.csr import *
 from litex.soc.interconnect import csr_bus
@@ -1056,3 +1057,12 @@ class LiteXSoC(SoC):
             self.crg.cd_sys.clk,
             phy.crg.cd_eth_rx.clk,
             phy.crg.cd_eth_tx.clk)
+
+    # Add SPI SDCard -------------------------------------------------------------------------------
+    def add_spi_sdcard(self, name="spisdcard", clk_freq=400e3):
+        pads = self.platform.request(name)
+        if hasattr(pads, "rst"):
+            self.comb += pads.rst.eq(0)
+        spisdcard = SPIMaster(pads, 8, self.sys_clk_freq, 400e3)
+        setattr(self.submodules, name, spisdcard)
+        self.add_csr(name)