convert to python3
[pinmux.git] / src / spec / base.py
index af2d2ab58ae324fb1047d14daed3ba7e617d7e76..dc2cf0c8b23ab1578fcabead77db6b608c49fed6 100644 (file)
@@ -1,20 +1,27 @@
 from spec.interfaces import Pinouts
 
 from spec.ifaceprint import display, display_fns, check_functions
-from spec.ifaceprint import display_fixed
+from spec.ifaceprint import display_fixed, python_dict_fns
+from collections import OrderedDict
 
 
 class PinSpec(Pinouts):
-    def __init__(self, pinbanks, fixedpins, function_names):
-        self.pinbanks = pinbanks
+    def __init__(self, pinbanks, fixedpins, function_names, fast=None):
+        self.fastbus = fast or {}
+        self.pinbanks = OrderedDict()
+        self.muxwidths = {}
+        for bank, (sz, muxwidth) in pinbanks.items():
+            self.pinbanks[bank] = sz
+            self.muxwidths[bank] = muxwidth
         self.fixedpins = fixedpins
         self.function_names = function_names
-        bankspec = {}
+        bankspec = OrderedDict()
         self.offs = 0
-        pkeys = sorted(pinbanks.keys())
+        pkeys = self.pinbanks.keys()
+        print (self.pinbanks)
         for kn in pkeys:
             bankspec[kn] = self.offs
-            self.offs += pinbanks[kn]
+            self.offs += self.pinbanks[kn]
 
         self.scenarios = []
 
@@ -30,19 +37,23 @@ class PinSpec(Pinouts):
 
         self.scenarios.append((name, needed, eint, pwm, descriptions))
 
+    def pywrite(self, pyf, pinmap):
+        return python_dict_fns(pyf, pinmap, self, self.function_names)
+
     def write(self, of):
+
         of.write("""# Pinouts (PinMux)
 auto-generated by [[pinouts.py]]
 
 [[!toc  ]]
 
 """)
-        bk = sorted(self.pinbanks.keys())
+        bk = self.pinbanks.keys()
         for bank in bk:
             of.write(
-                "\n## Bank %s (%d pins)\n\n" %
-                (bank, self.pinbanks[bank]))
-            display(of, self, bank)
+                "\n## Bank %s (%d pins, width %d)\n\n" %
+                (bank, self.pinbanks[bank], self.muxwidths[bank]))
+            display(of, self, bank, muxwidth=self.muxwidths[bank])
 
         of.write("\n# Pinouts (Fixed function)\n\n")
         fixedpins = display_fixed(of, self.fixedpins, len(self))
@@ -65,6 +76,7 @@ auto-generated by [[pinouts.py]]
         of.write("""# Reference Datasheets
 
 datasheets and pinout links
+
 * <http://datasheets.chipdb.org/AMD/8018x/80186/amd-80186.pdf>
 * <http://hands.com/~lkcl/eoma/shenzen/frida/FRD144A2701.pdf>
 * <http://pinouts.ru/Memory/sdcard_pinout.shtml>