Trait opentitanlib::io::i2c::Bus
source · pub trait Bus {
// Required methods
fn get_max_speed(&self) -> Result<u32>;
fn set_max_speed(&self, max_speed: u32) -> Result<()>;
fn set_default_address(&self, addr: u8) -> Result<()>;
fn run_transaction(
&self,
addr: Option<u8>,
transaction: &mut [Transfer<'_, '_>]
) -> Result<()>;
// Provided methods
fn set_mode(&self, mode: Mode) -> Result<()> { ... }
fn get_device_status(&self, _timeout: Duration) -> Result<DeviceStatus> { ... }
fn prepare_read_data(&self, _data: &[u8], _sticky: bool) -> Result<()> { ... }
}
Expand description
A trait which represents a I2C Bus.
Required Methods§
sourcefn get_max_speed(&self) -> Result<u32>
fn get_max_speed(&self) -> Result<u32>
Gets the maximum allowed speed of the I2C bus.
sourcefn set_max_speed(&self, max_speed: u32) -> Result<()>
fn set_max_speed(&self, max_speed: u32) -> Result<()>
Sets the maximum allowed speed of the I2C bus, typical values are 100_000, 400_000 or 1_000_000.
sourcefn set_default_address(&self, addr: u8) -> Result<()>
fn set_default_address(&self, addr: u8) -> Result<()>
Sets the “default” device address, used in cases when not overriden by parameter to
run_transaction()
.
Provided Methods§
fn set_mode(&self, mode: Mode) -> Result<()>
sourcefn get_device_status(&self, _timeout: Duration) -> Result<DeviceStatus>
fn get_device_status(&self, _timeout: Duration) -> Result<DeviceStatus>
Retrieve a log of I2C operations performed by the I2C host since last time, as well as whether the I2C host is currently waiting to read data.
sourcefn prepare_read_data(&self, _data: &[u8], _sticky: bool) -> Result<()>
fn prepare_read_data(&self, _data: &[u8], _sticky: bool) -> Result<()>
Prepare data to be tranmitted to I2C host on future or currently waiting I2C read
transfer. By default, the prepared data will be discarded if the I2C issues a write
transfer on the bus (giving the caller a chance to react to the additional data before
preparing another response). If the sticky
parameter is true
, the prepared data will
be kept across any number of intervening write transfers, and used for a future read
transfer.