resources: add conn= argument to every factory.
[nmigen-boards.git] / nmigen_boards / resources / user.py
index 8faa736dc72b4e1e5dbd44aaea1501edc37534ce..5942877a97f7716fc172143cf5a6d940a5d52570 100644 (file)
@@ -4,7 +4,7 @@ from nmigen.build import *
 __all__ = ["LEDResources", "RGBLEDResource", "ButtonResources", "SwitchResources"]
 
 
-def _SplitResources(*args, pins, invert=False, attrs=None, default_name, dir):
+def _SplitResources(*args, pins, invert=False, conn=None, attrs=None, default_name, dir):
     assert isinstance(pins, (str, list, dict))
 
     if isinstance(pins, str):
@@ -14,7 +14,7 @@ def _SplitResources(*args, pins, invert=False, attrs=None, default_name, dir):
 
     resources = []
     for number, pin in pins.items():
-        ios = [Pins(pin, dir=dir, invert=invert)]
+        ios = [Pins(pin, dir=dir, invert=invert, conn=conn)]
         if attrs is not None:
             ios.append(attrs)
         resources.append(Resource.family(*args, number, default_name=default_name, ios=ios))
@@ -25,11 +25,11 @@ def LEDResources(*args, **kwargs):
     return _SplitResources(*args, **kwargs, default_name="led", dir="o")
 
 
-def RGBLEDResource(*args, r, g, b, invert=False, attrs=None):
+def RGBLEDResource(*args, r, g, b, invert=False, conn=None, attrs=None):
     ios = []
-    ios.append(Subsignal("r", Pins(r, dir="o", invert=invert, assert_width=1)))
-    ios.append(Subsignal("g", Pins(g, dir="o", invert=invert, assert_width=1)))
-    ios.append(Subsignal("b", Pins(b, dir="o", invert=invert, assert_width=1)))
+    ios.append(Subsignal("r", Pins(r, dir="o", invert=invert, conn=conn, assert_width=1)))
+    ios.append(Subsignal("g", Pins(g, dir="o", invert=invert, conn=conn, assert_width=1)))
+    ios.append(Subsignal("b", Pins(b, dir="o", invert=invert, conn=conn, assert_width=1)))
     if attrs is not None:
         ios.append(attrs)
     return Resource.family(*args, default_name="rgb_led", ios=ios)