diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2019-06-10 19:51:43 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2019-06-12 22:14:41 -0400 |
commit | f6864da58bfd5c1c1da4274a01b49597a203cf98 (patch) | |
tree | 0b17dfbb8c39fa91a8f5145a0055f25a875b449d /klippy/pins.py | |
parent | 88fe2787a9a215bc5a214dc3f4329bca09e25acb (diff) | |
download | kutter-f6864da58bfd5c1c1da4274a01b49597a203cf98.tar.gz kutter-f6864da58bfd5c1c1da4274a01b49597a203cf98.tar.xz kutter-f6864da58bfd5c1c1da4274a01b49597a203cf98.zip |
tmc2208: Add support for using an analog mux to access TMC uarts
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/pins.py')
-rw-r--r-- | klippy/pins.py | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/klippy/pins.py b/klippy/pins.py index b1c8810e..4dfa5765 100644 --- a/klippy/pins.py +++ b/klippy/pins.py @@ -167,8 +167,7 @@ class PrinterPins: self.chips = {} self.active_pins = {} self.reserved_pins = {} - def lookup_pin(self, pin_desc, can_invert=False, can_pullup=False, - share_type=None): + def parse_pin(self, pin_desc, can_invert=False, can_pullup=False): desc = pin_desc.strip() pullup = invert = 0 if can_pullup and (desc.startswith('^') or desc.startswith('~')): @@ -194,17 +193,23 @@ class PrinterPins: raise error("Invalid pin description '%s'\n" "Format is: %s[chip_name:] pin_name" % ( pin_desc, format)) - share_name = "%s:%s" % (chip_name, pin) + pin_params = {'chip': self.chips[chip_name], 'chip_name': chip_name, + 'pin': pin, 'invert': invert, 'pullup': pullup} + return pin_params + def lookup_pin(self, pin_desc, can_invert=False, can_pullup=False, + share_type=None): + pin_params = self.parse_pin(pin_desc, can_invert, can_pullup) + pin = pin_params['pin'] + share_name = "%s:%s" % (pin_params['chip_name'], pin) if share_name in self.active_pins: - pin_params = self.active_pins[share_name] - if share_type is None or share_type != pin_params['share_type']: + share_params = self.active_pins[share_name] + if share_type is None or share_type != share_params['share_type']: raise error("pin %s used multiple times in config" % (pin,)) - if invert != pin_params['invert'] or pullup != pin_params['pullup']: + if (pin_params['invert'] != share_params['invert'] + or pin_params['pullup'] != share_params['pullup']): raise error("Shared pin %s must have same polarity" % (pin,)) - return pin_params - pin_params = {'chip': self.chips[chip_name], 'chip_name': chip_name, - 'pin': pin, 'share_type': share_type, - 'invert': invert, 'pullup': pullup} + return share_params + pin_params['share_type'] = share_type self.active_pins[share_name] = pin_params return pin_params def setup_pin(self, pin_type, pin_desc): |