pub trait I2c {
// Required methods
fn init(
&mut self,
dev: u32,
_baud: u32,
sda: i32,
sck: i32,
) -> Result<i32, Error>;
fn deinit(&mut self, handle: i32) -> Result<(), Error>;
fn write(
&mut self,
handle: i32,
addr: u16,
data: &[u8],
) -> Result<(), Error>;
fn read(
&mut self,
handle: i32,
addr: u16,
buff: &mut [u8],
) -> Result<(), Error>;
fn write_read(
&mut self,
handle: i32,
addr: u16,
data: &[u8],
buff: &mut [u8],
) -> Result<(), Error>;
}
Expand description
I2C context abstraction.
This hides runtime implementation details to simplify implementing I2C contexts. Hopefully one day generation is improved so we don’t need this any more