diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2019-02-03 12:22:12 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2019-02-03 12:22:12 -0500 |
commit | 83001959f170fc0ad67fbee7df84df39ee0e0a1f (patch) | |
tree | 29eca87333a10baedd72f4451882a426ff980611 /klippy/extras/tmc2130.py | |
parent | 51f14b9c8c16bc4ba30b20877067590f8fcdb25c (diff) | |
download | kutter-83001959f170fc0ad67fbee7df84df39ee0e0a1f.tar.gz kutter-83001959f170fc0ad67fbee7df84df39ee0e0a1f.tar.xz kutter-83001959f170fc0ad67fbee7df84df39ee0e0a1f.zip |
tmc2208: Use field definitions during driver init
Reduce the amount of bit manipulations by using the FieldHelper class.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras/tmc2130.py')
-rw-r--r-- | klippy/extras/tmc2130.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/klippy/extras/tmc2130.py b/klippy/extras/tmc2130.py index a49d55df..061e9271 100644 --- a/klippy/extras/tmc2130.py +++ b/klippy/extras/tmc2130.py @@ -45,13 +45,18 @@ class FieldHelper: def __init__(self, all_fields, field_formatters={}): self.all_fields = all_fields self.field_formatters = field_formatters + self.field_to_register = { f: r for r, fields in self.all_fields.items() + for f in fields } + def lookup_register(self, field_name): + # Return the name of the register containing the given field + return self.field_to_register[field_name] def get_field(self, reg_name, field_name, reg_value): # Returns value of the register field - mask = self.all_fields.get(reg_name, {})[field_name] + mask = self.all_fields[reg_name][field_name] return (reg_value & mask) >> ffs(mask) def set_field(self, reg_name, field_name, reg_value, field_value): # Returns register value with field bits filled with supplied value - mask = self.all_fields.get(reg_name, {})[field_name] + mask = self.all_fields[reg_name][field_name] return (reg_value & ~mask) | ((field_value << ffs(mask)) & mask) def pretty_format(self, reg_name, value): # Provide a string description of a register |