from copy import deepcopy
+
def display(pins):
print "| Pin | Mux0 | Mux1 | Mux2 | Mux3 |"
print "| --- | ----------- | ----------- | ----------- | ----------- |"
- pinidx = pins.keys()
- pinidx.sort()
+ pinidx = sorted(pins.keys())
for pin in pinidx:
pdata = pins.get(pin)
res = '| %3d |' % pin
for mux in range(4):
- if not pdata.has_key(mux):
+ if mux not in pdata:
res += " |"
continue
name, bank = pdata[mux]
res += " %s %-9s |" % (bank, name)
print res
+
def fnsplit(f):
a = ''
n = 0
f = f[1:]
return a, int(f) if f else None
+
def fnsort(f1, f2):
a1, n1 = fnsplit(f1)
a2, n2 = fnsplit(f2)
if x != 0:
return x
return cmp(n1, n2)
-
+
+
def find_fn(fname, names):
for n in names:
if fname.startswith(n):
return n
+
def display_fns(bankspec, pins, function_names):
fn_names = function_names.keys()
fns = {}
for (pin, pdata) in pins.items():
- for mux in range(1,4): # skip GPIO for now
- if not pdata.has_key(mux):
+ for mux in range(1, 4): # skip GPIO for now
+ if mux not in pdata:
continue
name, bank = pdata[mux]
- assert name != None, str(bank)
- if not fns.has_key(name):
+ assert name is not None, str(bank)
+ if name not in fns:
fns[name] = []
- fns[name].append((pin-bankspec[bank], mux, bank))
+ fns[name].append((pin - bankspec[bank], mux, bank))
fnidx = fns.keys()
fnidx.sort(fnsort)
return fns
+
def check_functions(title, bankspec, fns, pins, required, eint, pwm,
descriptions=None):
fns = deepcopy(fns)
print "# Pinmap for %s" % title
print
-
for name in required:
print "## %s" % name
print
- if descriptions and descriptions.has_key(name):
+ if descriptions and name in descriptions:
print descriptions[name]
print
name = name[0]
found = set()
fnidx = fns.keys()
- #fnidx.sort(fnsort)
+ # fnidx.sort(fnsort)
pinfound = {}
for fname in fnidx:
if not fname.startswith(name):
if findmux != mux:
continue
pin_ = pin + bankspec[bank]
- if pins.has_key(pin_):
+ if pin_ in pins:
pinfound[pin_] = (fname, pin_, bank, pin, mux)
- pinidx = pinfound.keys()
- pinidx.sort()
+ pinidx = sorted(pinfound.keys())
for pin_ in pinidx:
fname, pin_, bank, pin, mux = pinfound[pin_]
continue
gpios.append(name)
gpios.sort()
-
+
if gpios:
print "## GPIO"
print
if fname in found:
continue
desc = ''
- if descriptions and descriptions.has_key(fname):
+ if descriptions and fname in descriptions:
desc = ': %s' % descriptions[fname]
bank = fname[4]
- pin = int(fname[5:])
+ pin = int(fname[7:])
pin_ = pin + bankspec[bank]
- if not pins.has_key(pin_):
+ if pin_ not in pins:
continue
del pins[pin_]
found.add(fname)
print "## Unused Pinouts (spare as GPIO) for '%s'" % title
print
- if descriptions and descriptions.has_key('GPIO'):
+ if descriptions and 'GPIO' in descriptions:
print descriptions['GPIO']
- print
+ print
display(pins)
print
- return pins # unused
+ return pins # unused
+
def display_group(bankspec, title, todisplay, fns, pins, descriptions):
print "## %s" % title
found = set()
for fname in todisplay:
desc = ''
- if descriptions and descriptions.has_key(fname):
+ if descriptions and fname in descriptions:
desc = ': %s' % descriptions[fname]
fname = fname.split(':')
if len(fname) == 2:
if fname in found:
continue
pin_ = pin + bankspec[bank]
- if not pins.has_key(pin_):
+ if pin_ not in pins:
continue
del pins[pin_]
found.add(fname)
print "* %s %d %s%d/%d %s" % (fname, pin_, bank, pin, mux, desc)
print
+
def display_fixed(fixed, offs):
- fkeys = fixed.keys()
- fkeys.sort()
+ fkeys = sorted(fixed.keys())
pin_ = offs
+ res = []
for pin, k in enumerate(fkeys):
print "## %s" % k
print
print
print "* %d: %d %s" % (pin_, pin, name),
linecount = 1
+ res.append((pin_, name))
+
prevname = name
pin_ += 1
if linecount != 0:
print
print
+ return res