feat(stage2): extracting bank and pin information from PinSpec for later use in the...
[pinmux.git] / src / spec / stage2.py
index a7978d01be4c3e0d8a8146487e6c516c84bb4987..221961695b450609054ff1172ac7ee9fbbdbb0f8 100644 (file)
@@ -419,3 +419,60 @@ if __name__ == '__main__':
     #fixedpins = []
     #function_names = []
     #testspec = PinSpec()
+    pinbanks = {
+        'A': (4, 4), # (num of pads, num of banks)?
+        #'B': (18, 4),
+        #'C': (24, 1),
+        #'D': (93, 1),
+    }
+    fixedpins = {
+        'POWER_GPIO': [
+            'VDD_GPIOB',
+            'GND_GPIOB',
+        ]}
+    function_names = {'TWI0': 'I2C 0',
+                      'UART0': 'UART (TX/RX) 0',
+                     }
+    ps = PinSpec(pinbanks, fixedpins, function_names)
+    # Unit number, (Bank, pin #), mux, start, num # pins
+    ps.gpio("", ('A', 0), 0, 0, 4)
+    ps.uart("0", ('A', 0), 1)
+    ps.i2c("0", ('A', 0), 2)
+
+    print(dir(ps.gpio))
+    #print(ps.gpio.pinouts, ps.gpio.bankspec, ps.gpio.pinfn, ps.gpio.fname)
+    """
+    desc_dict_keys = ['UART0', 'TWI0', 'GPIOA_A0', 'GPIOA_A1', 'GPIOA_A2', 'GPIOA_A3']
+    eint = []
+    pwm = []
+    desc = {'UART0': 'Basic serial TX/RX serial port',
+            'TWI0': 'I2C interface',
+            'GPIOA_A0': 'Test GPIO0',
+            'GPIOA_A1': 'Test GPIO1',
+            'GPIOA_A2': 'Test GPIO2',
+            'GPIOA_A3': 'Test GPIO3'}
+    ps.add_scenario("Test Manual Pinmux", desc_dict_keys, eint, pwm, desc)
+    """
+    print("---------------------------------")
+    #with open("test.mdwn", "w") as of:
+    #    pinout, bankspec, pin_spec, fixedpins = ps.write(of)
+    #print("---------------------------------")
+
+    bk = ps.pinbanks.keys()
+    for bank in bk:
+        muxwidth = ps.muxwidths[bank]
+        print(bank, muxwidth)
+        pinidx = sorted(ps.keys())
+        for pin in pinidx:
+            print("---------------------------------")
+            print(pin)
+            pdata = ps.get(pin)
+            for mux in range(muxwidth):
+                if mux not in pdata:
+                    print("Mux %d : NC" % mux)
+                else:
+                    name, assigned_bank = pdata[mux]
+                    print("Mux %d : %s" % (mux, name))
+
+
+