use class iterator for mk_connection (all of them)
[pinmux.git] / src / bsv / peripheral_gen / gpio.py
index be38502b920533cbf2c3f4bb7f5d093f393d2bb3..50b9f63c3f7dd2a25885e94ddd4ebac8e37e4610 100644 (file)
@@ -36,16 +36,20 @@ class gpio(PBase):
 
     def mkslow_peripheral(self, size=0):
         print "gpioslow", self.peripheral, dir(self.peripheral)
+        print "gpioslow", self.peripheral.configs
         size = len(self.peripheral.pinspecs)
-        return "MUX#(%d) mux{0} <- mkmux();\n" % size + \
+        dflt_ = "%s" % ("0" * size * 2)  # default if not set in spec
+        dflt = self.peripheral.configs[0].get("muxconfig", dflt_)
+        return "MUX#(%d) mux{0} <- mkmux('b%s);\n" % (size, dflt) + \
                "GPIO#(%d) gpio{0} <- mkgpio();" % size
 
-    def mk_connection(self, count, fabricname, typ):
+    def mk_connection(self, name, count, fabricname, typ):
         print "GPIO mk_conn", self.name, count
         res = []
         dname = self.mksuffix(self.name, count)
         for i, n in enumerate(['gpio' + dname, 'mux' + dname]):
-            res.append(PBase.mk_connection(self, count, fabricname, typ, n))
+            res.append(PBase.mk_connection(self, name, count, fabricname, typ,
+                                           name_override=n))
         return '\n'.join(res)
 
     def _mk_connection(self, name=None, count=0):
@@ -60,7 +64,7 @@ class gpio(PBase):
             return name[3:]
         return name[4:]
 
-    def mk_cellconn(self, cellnum, name, count):
+    def mk_cellconn(self, name, count, cellnum):
         ret = []
         bank = self.mksuffix(name, count)
         txt = "pinmux.mux_lines.cell{0}_mux(mux{1}.mux_config.mux[{2}]);"