forked from M-Labs/artiq-zynq
io_expander: check I2C (n)ack on write
This commit is contained in:
parent
3fdb7e80a8
commit
f5d8ee3fef
|
@ -111,9 +111,15 @@ impl IoExpander {
|
|||
|
||||
fn write(&self, i2c: &mut i2c::I2c, addr: u8, value: u8) -> Result<(), &'static str> {
|
||||
i2c.start()?;
|
||||
i2c.write(self.address)?;
|
||||
i2c.write(addr)?;
|
||||
i2c.write(value)?;
|
||||
if !i2c.write(self.address)? {
|
||||
return Err("io expander failed to ack control byte (read)");
|
||||
}
|
||||
if !i2c.write(addr)? {
|
||||
return Err("io expander failed to ack register address");
|
||||
}
|
||||
if !i2c.write(value)? {
|
||||
return Err("io expander failed to ack value");
|
||||
}
|
||||
i2c.stop()?;
|
||||
Ok(())
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue