aboutsummaryrefslogtreecommitdiff
path: root/nmigen_boards
diff options
context:
space:
mode:
authorawygle <awygle@gmail.com>2020-11-04 22:52:12 -0800
committerGitHub <noreply@github.com>2020-11-05 06:52:12 +0000
commitec65568d91dca4ca2ff7da22b90ad6574bbad68a (patch)
treeb99cf827aaf1edcfb34f3aae5228d3e81c0d916e /nmigen_boards
parentbcc14672994a3cdd04b7c0e1620d6f5e05145d94 (diff)
Factor out I2C resource.
Diffstat (limited to 'nmigen_boards')
-rw-r--r--nmigen_boards/arty_s7.py7
-rw-r--r--nmigen_boards/genesys2.py6
-rw-r--r--nmigen_boards/resources/interface.py11
3 files changed, 15 insertions, 9 deletions
diff --git a/nmigen_boards/arty_s7.py b/nmigen_boards/arty_s7.py
index 2871dae..633ba0a 100644
--- a/nmigen_boards/arty_s7.py
+++ b/nmigen_boards/arty_s7.py
@@ -38,10 +38,9 @@ class _ArtyS7Platform(Xilinx7SeriesPlatform):
attrs=Attrs(IOSTANDARD="LVCMOS33")
),
- Resource("i2c", 0,
- Subsignal("scl", Pins("J14", dir="io")),
- Subsignal("sda", Pins("J13", dir="io")),
- Attrs(IOSTANDARD="LVCMOS33")
+ I2CResource(0,
+ scl="J14", sda="J13",
+ attrs=Attrs(IOSTANDARD="LVCMOS33")
),
*SPIFlashResources(0,
diff --git a/nmigen_boards/genesys2.py b/nmigen_boards/genesys2.py
index 40dbced..1c4ee54 100644
--- a/nmigen_boards/genesys2.py
+++ b/nmigen_boards/genesys2.py
@@ -52,10 +52,8 @@ class Genesys2Platform(Xilinx7SeriesPlatform):
Attrs(IOSTANDARD="LVCMOS33")),
UARTResource(0, rx="Y20", tx="Y23",
attrs=Attrs(IOSTANDARD="LVCMOS33")),
- Resource("i2c", 0,
- Subsignal("scl", Pins("AE30", dir="io")),
- Subsignal("sda", Pins("AF30", dir="io")),
- Attrs(IOSTANDARD="LVCMOS33")),
+ I2CResource(0, scl="AE30", sda="AF30",
+ attrs=Attrs(IOSTANDARD="LVCMOS33")),
Resource("ddr3", 0,
Subsignal("rst", PinsN("AG5", dir="o"),
Attrs(IOSTANDARD="SSTL15")),
diff --git a/nmigen_boards/resources/interface.py b/nmigen_boards/resources/interface.py
index 7244062..9710ffb 100644
--- a/nmigen_boards/resources/interface.py
+++ b/nmigen_boards/resources/interface.py
@@ -2,7 +2,7 @@ from nmigen.build import *
__all__ = [
- "UARTResource", "IrDAResource", "SPIResource",
+ "UARTResource", "IrDAResource", "SPIResource", "I2CResource",
"DirectUSBResource", "ULPIResource"
]
@@ -86,6 +86,15 @@ def SPIResource(*args, cs, clk, copi, cipo, int=None, reset=None,
return Resource.family(*args, default_name="spi", ios=io)
+def I2CResource(*args, scl, sda, conn=None, attrs=None):
+ io = []
+ io.append(Subsignal("scl", Pins(scl, dir="io", conn=conn, assert_width=1)))
+ io.append(Subsignal("sda", Pins(sda, dir="io", conn=conn, assert_width=1)))
+ if attrs is not None:
+ io.append(attrs)
+ return Resource.family(*args, default_name="i2c", ios=io)
+
+
def DirectUSBResource(*args, d_p, d_n, pullup=None, vbus_valid=None,
conn=None, attrs=None):