aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras/tmc2130.py
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2019-02-03 12:22:12 -0500
committerKevin O'Connor <kevin@koconnor.net>2019-02-03 12:22:12 -0500
commit83001959f170fc0ad67fbee7df84df39ee0e0a1f (patch)
tree29eca87333a10baedd72f4451882a426ff980611 /klippy/extras/tmc2130.py
parent51f14b9c8c16bc4ba30b20877067590f8fcdb25c (diff)
downloadkutter-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.py9
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