Skip to content

Commit ec65568

Browse files
authored
Factor out I2C resource.
1 parent bcc1467 commit ec65568

File tree

3 files changed

+15
-9
lines changed

3 files changed

+15
-9
lines changed

nmigen_boards/arty_s7.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,9 @@ class _ArtyS7Platform(Xilinx7SeriesPlatform):
3838
attrs=Attrs(IOSTANDARD="LVCMOS33")
3939
),
4040

41-
Resource("i2c", 0,
42-
Subsignal("scl", Pins("J14", dir="io")),
43-
Subsignal("sda", Pins("J13", dir="io")),
44-
Attrs(IOSTANDARD="LVCMOS33")
41+
I2CResource(0,
42+
scl="J14", sda="J13",
43+
attrs=Attrs(IOSTANDARD="LVCMOS33")
4544
),
4645

4746
*SPIFlashResources(0,

nmigen_boards/genesys2.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,8 @@ def bank15_16_17_iostandard(self):
5252
Attrs(IOSTANDARD="LVCMOS33")),
5353
UARTResource(0, rx="Y20", tx="Y23",
5454
attrs=Attrs(IOSTANDARD="LVCMOS33")),
55-
Resource("i2c", 0,
56-
Subsignal("scl", Pins("AE30", dir="io")),
57-
Subsignal("sda", Pins("AF30", dir="io")),
58-
Attrs(IOSTANDARD="LVCMOS33")),
55+
I2CResource(0, scl="AE30", sda="AF30",
56+
attrs=Attrs(IOSTANDARD="LVCMOS33")),
5957
Resource("ddr3", 0,
6058
Subsignal("rst", PinsN("AG5", dir="o"),
6159
Attrs(IOSTANDARD="SSTL15")),

nmigen_boards/resources/interface.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33

44
__all__ = [
5-
"UARTResource", "IrDAResource", "SPIResource",
5+
"UARTResource", "IrDAResource", "SPIResource", "I2CResource",
66
"DirectUSBResource", "ULPIResource"
77
]
88

@@ -86,6 +86,15 @@ def SPIResource(*args, cs, clk, copi, cipo, int=None, reset=None,
8686
return Resource.family(*args, default_name="spi", ios=io)
8787

8888

89+
def I2CResource(*args, scl, sda, conn=None, attrs=None):
90+
io = []
91+
io.append(Subsignal("scl", Pins(scl, dir="io", conn=conn, assert_width=1)))
92+
io.append(Subsignal("sda", Pins(sda, dir="io", conn=conn, assert_width=1)))
93+
if attrs is not None:
94+
io.append(attrs)
95+
return Resource.family(*args, default_name="i2c", ios=io)
96+
97+
8998
def DirectUSBResource(*args, d_p, d_n, pullup=None, vbus_valid=None,
9099
conn=None, attrs=None):
91100

0 commit comments

Comments
 (0)