use class iterator for mk_connection (all of them)
[pinmux.git] / src / bsv / peripheral_gen / gpio.py
index 1e48768700c519bc0d7aa2ca6ec9468d168f1399..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}]);"
@@ -75,9 +79,10 @@ class gpio(PBase):
     def pinname_outen(self, pname):
         return "func.gpio_out_en[{0}]".format(pname[1:])
 
-    def mk_pincon(self, name, count):
+    def _mk_pincon(self, name, count, typ):
         #ret = [PBase.mk_pincon(self, name, count)]
         # special-case for gpio in, store in a temporary vector
+        assert typ == 'slow'
         ret = []
         plen = len(self.peripheral.pinspecs)
         template = "mkConnection({0}.{1},\n\t\t\t{2}_{1});"