31 #if HAL_USE_I2C == TRUE 47 static void clear_bus(ioline_t scl_line, uint8_t scl_af);
57 I2CDevice(uint8_t bus, uint8_t address, uint32_t bus_clock,
bool use_smbus, uint32_t timeout_ms);
61 void set_address(uint8_t address)
override { _address = address; }
64 void set_retries(uint8_t retries)
override { _retries = retries; }
67 bool set_speed(
enum Device::Speed speed)
override {
return true; }
70 bool transfer(
const uint8_t *send, uint32_t send_len,
71 uint8_t *recv, uint32_t recv_len)
override;
73 bool read_registers_multiple(uint8_t first_reg, uint8_t *recv,
74 uint32_t recv_len, uint8_t times)
override;
78 uint32_t period_usec, AP_HAL::Device::PeriodicCb)
override;
85 return &bus.semaphore;
89 _split_transfers =
set;
94 bool _transfer(
const uint8_t *send, uint32_t send_len,
95 uint8_t *recv, uint32_t recv_len);
121 uint32_t bus_clock=400000,
122 bool use_smbus =
false,
123 uint32_t timeout_ms=4)
override;
127 #endif // HAL_USE_I2C
void set_retries(uint8_t retries) override
void dma_allocate(Shared_DMA *)
void dma_deallocate(Shared_DMA *)
AP_HAL::OwnPtr< AP_HAL::Device > get_device(const char *name)
void set_address(uint8_t address) override
static I2CDeviceManager * from(AP_HAL::I2CDeviceManager *i2c_mgr)
AP_HAL::Semaphore * get_semaphore() override
static AP_HAL::OwnPtr< AP_HAL::Device > dev
bool set_speed(enum Device::Speed speed) override
static I2CDevice * from(AP_HAL::I2CDevice *dev)
static void clear_all(void)
AP_HAL::Device::PeriodicHandle register_periodic_callback(uint32_t period_usec, AP_HAL::Device::PeriodicCb, AP_HAL::Device *hal_device)
static void clear_bus(ioline_t scl_line, uint8_t scl_af)
void set_split_transfers(bool set) override