spi_flash: fix building without bitbang
authorJakub Cebulski <jcebulski@internships.antmicro.com>
Thu, 5 Mar 2020 16:10:50 +0000 (17:10 +0100)
committerMateusz Holenko <mholenko@antmicro.com>
Fri, 24 Apr 2020 15:45:17 +0000 (17:45 +0200)
litex/soc/cores/spi_flash.py

index c3066b38c869d917bc6e84481a0897a2cc65e0d3..39093bad8eef981c9e419138d644886ac619805b 100644 (file)
@@ -121,11 +121,16 @@ class SpiFlashDualQuad(SpiFlashCommon, AutoCSR):
         addr_width = 24
 
         dq = TSTriple(spi_width)
-        # Keep DQ2,DQ3 as outputs during bitbang, this ensures they activate ~WP or ~HOLD functions
+
         self.specials.dq0 = Tristate(pads.dq[0], o=dq.o[0], i=dq.i[0], oe=dq.oe)
         self.specials.dq1 = Tristate(pads.dq[1], o=dq.o[1], i=dq.i[1], oe=dq.oe)
-        self.specials.dq2 = Tristate(pads.dq[2], o=dq.o[2], i=dq.i[2], oe=(dq.oe | self.bitbang_en.storage))
-        self.specials.dq3 = Tristate(pads.dq[3], o=dq.o[3], i=dq.i[3], oe=(dq.oe | self.bitbang_en.storage))
+        if with_bitbang:
+            # Keep DQ2,DQ3 as outputs during bitbang, this ensures they activate ~WP or ~HOLD functions            
+            self.specials.dq2 = Tristate(pads.dq[2], o=dq.o[2], i=dq.i[2], oe=(dq.oe | self.bitbang_en.storage))
+            self.specials.dq3 = Tristate(pads.dq[3], o=dq.o[3], i=dq.i[3], oe=(dq.oe | self.bitbang_en.storage))
+        else:
+            self.specials.dq2 = Tristate(pads.dq[2], o=dq.o[2], i=dq.i[2], oe=dq.oe)
+            self.specials.dq3 = Tristate(pads.dq[3], o=dq.o[3], i=dq.i[3], oe=dq.oe)
 
         sr = Signal(max(cmd_width, addr_width, wbone_width))
         if endianness == "big":