aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras/mcp4018.py
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2022-03-23 00:35:42 -0400
committerKevin O'Connor <kevin@koconnor.net>2022-03-31 13:08:12 -0400
commit0c425cf014ba5249c2d27174c5ca9a8ef2d3bf4e (patch)
tree0d848f083803a3dd9a41b139f2adfdbc00ae6439 /klippy/extras/mcp4018.py
parent9136a291962dc5fbcf385f9f2ddc08ad840edaed (diff)
downloadkutter-0c425cf014ba5249c2d27174c5ca9a8ef2d3bf4e.tar.gz
kutter-0c425cf014ba5249c2d27174c5ca9a8ef2d3bf4e.tar.xz
kutter-0c425cf014ba5249c2d27174c5ca9a8ef2d3bf4e.zip
mcp4018: Support setting minclock and reqclock in SoftwareI2C class
This is in preparation for pca9632 changes. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras/mcp4018.py')
-rw-r--r--klippy/extras/mcp4018.py25
1 files changed, 14 insertions, 11 deletions
diff --git a/klippy/extras/mcp4018.py b/klippy/extras/mcp4018.py
index f53024b9..fd04aa66 100644
--- a/klippy/extras/mcp4018.py
+++ b/klippy/extras/mcp4018.py
@@ -31,18 +31,20 @@ class SoftwareI2C:
self.mcu.add_config_cmd("config_digital_out oid=%d pin=%s"
" value=%d default_value=%d max_duration=%d" % (
self.sda_oid, sda_params['pin'], 1, 1, 0))
+ def get_mcu(self):
+ return self.mcu
def build_config(self):
self.mcu.add_config_cmd("config_digital_out oid=%d pin=%s value=%d"
" default_value=%d max_duration=%d" % (
self.scl_oid, self.scl_pin, 1, 1, 0))
self.update_pin_cmd = self.mcu.lookup_command(
"update_digital_out oid=%c value=%c", cq=self.cmd_queue)
- def i2c_write(self, msg):
+ def i2c_write(self, msg, minclock=0, reqclock=0):
msg = [self.addr] + msg
send = self.scl_main.update_pin_cmd.send
# Send ack
- send([self.sda_oid, 0])
- send([self.scl_oid, 0])
+ send([self.sda_oid, 0], minclock=minclock, reqclock=reqclock)
+ send([self.scl_oid, 0], minclock=minclock, reqclock=reqclock)
# Send bytes
sda_last = 0
for data in msg:
@@ -51,17 +53,18 @@ class SoftwareI2C:
sda_next = not not (data & (0x80 >> i))
if sda_last != sda_next:
sda_last = sda_next
- send([self.sda_oid, sda_last])
- send([self.scl_oid, 1])
- send([self.scl_oid, 0])
+ send([self.sda_oid, sda_last],
+ minclock=minclock, reqclock=reqclock)
+ send([self.scl_oid, 1], minclock=minclock, reqclock=reqclock)
+ send([self.scl_oid, 0], minclock=minclock, reqclock=reqclock)
# Transmit clock for ack
- send([self.scl_oid, 1])
- send([self.scl_oid, 0])
+ send([self.scl_oid, 1], minclock=minclock, reqclock=reqclock)
+ send([self.scl_oid, 0], minclock=minclock, reqclock=reqclock)
# Send stop
if sda_last:
- send([self.sda_oid, 0])
- send([self.scl_oid, 1])
- send([self.sda_oid, 1])
+ send([self.sda_oid, 0], minclock=minclock, reqclock=reqclock)
+ send([self.scl_oid, 1], minclock=minclock, reqclock=reqclock)
+ send([self.sda_oid, 1], minclock=minclock, reqclock=reqclock)
class mcp4018:
def __init__(self, config):