uart: add phy autodetect function
authorFlorent Kermarrec <florent@enjoy-digital.fr>
Fri, 6 Mar 2015 09:19:29 +0000 (10:19 +0100)
committerFlorent Kermarrec <florent@enjoy-digital.fr>
Fri, 6 Mar 2015 09:19:29 +0000 (10:19 +0100)
misoclib/com/uart/phy/__init__.py
misoclib/soc/__init__.py

index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..b9ecab8e3dbfd4c34df38829fe764fed78012c8b 100644 (file)
@@ -0,0 +1,12 @@
+from misoclib.com.liteeth.common import *
+from misoclib.com.liteeth.generic import *
+
+from misoclib.com.uart.phy.sim import UARTPHYSim
+from misoclib.com.uart.phy.serial import UARTPHYSerial
+
+def UARTPHY(pads, *args, **kwargs):
+       # Autodetect PHY
+       if hasattr(pads, "source_stb"):
+               return UARTPHYSim(pads, *args, **kwargs)
+       else:
+               return UARTPHYSerial(pads, *args, **kwargs)
index cd42be9323c28f161ee536c874ab869a5321c100..e17f7c5a30e80a7316e5ce6be22c431d8d8dae07 100644 (file)
@@ -6,8 +6,7 @@ from migen.fhdl.std import *
 from migen.bank import csrgen
 from migen.bus import wishbone, csr, wishbone2csr
 
-from misoclib.com.uart.phy.serial import UARTPHYSerial
-from misoclib.com.uart.phy.sim import UARTPHYSim
+from misoclib.com.uart.phy import UARTPHY
 from misoclib.com import uart
 from misoclib.cpu import CPU, lm32, mor1kx
 from misoclib.cpu.peripherals import identifier, timer
@@ -111,10 +110,7 @@ class SoC(Module):
                        self.register_mem("csr", self.mem_map["csr"], self.wishbone2csr.wishbone)
 
                        if with_uart:
-                               if getattr(platform, "is_sim", False):
-                                       self.submodules.uart_phy = UARTPHYSim(platform.request("serial"))
-                               else:
-                                       self.submodules.uart_phy = UARTPHYSerial(platform.request("serial"), clk_freq, uart_baudrate)
+                               self.submodules.uart_phy = UARTPHY(platform.request("serial"), clk_freq, uart_baudrate)
                                self.submodules.uart = uart.UART(self.uart_phy)
 
                        if with_identifier: