6#ifndef ICM42670_ESP_IDF_H
7#define ICM42670_ESP_IDF_H
14#include "driver/gpio.h"
15#include "driver/i2c_master.h"
16#include "driver/spi_master.h"
21#define ICM42670_ESP_DEFAULT_I2C_SPEED_HZ 400000U
22#define ICM42670_ESP_DEFAULT_SPI_SPEED_HZ 1000000
63 gpio_num_t sda_pin, gpio_num_t scl_pin,
65 uint32_t scl_speed_hz);
81 i2c_master_bus_handle_t bus_handle,
82 i2c_master_dev_handle_t dev_handle);
100 uint8_t device_addr);
124 const uint8_t *data, uint16_t len);
144 spi_host_device_t host_id, gpio_num_t miso_pin,
145 gpio_num_t mosi_pin, gpio_num_t sclk_pin,
146 gpio_num_t cs_pin,
int clock_speed_hz);
162 spi_host_device_t host_id,
163 spi_device_handle_t dev_handle);
195 const uint8_t *data, uint16_t len);
Core ICM-42670-P configuration and sensor read API.
int8_t ICM42670_ESP_I2C_WriteReg(void *handle, uint8_t reg_addr, const uint8_t *data, uint16_t len)
ESP-IDF I2C register-write callback for ICM42670_Config.
Definition ICM42670_esp_idf.c:165
esp_err_t ICM42670_ESP_SPI_Init(ICM42670_Config *config, ICM42670_ESP_SPIBus *bus, spi_host_device_t host_id, gpio_num_t miso_pin, gpio_num_t mosi_pin, gpio_num_t sclk_pin, gpio_num_t cs_pin, int clock_speed_hz)
Create an ESP-IDF SPI bus/device and populate ICM42670_Config.
Definition ICM42670_esp_idf.c:190
esp_err_t ICM42670_ESP_I2C_Probe(ICM42670_ESP_I2CBus *bus, uint8_t device_addr)
Probe an I2C address on the adapter's bus.
Definition ICM42670_esp_idf.c:128
esp_err_t ICM42670_ESP_I2C_Init(ICM42670_Config *config, ICM42670_ESP_I2CBus *bus, int i2c_port, gpio_num_t sda_pin, gpio_num_t scl_pin, uint8_t device_addr, uint32_t scl_speed_hz)
Create an ESP-IDF I2C bus/device and populate ICM42670_Config.
Definition ICM42670_esp_idf.c:36
int8_t ICM42670_ESP_SPI_WriteReg(void *handle, uint8_t reg_addr, const uint8_t *data, uint16_t len)
ESP-IDF SPI register-write callback for ICM42670_Config.
Definition ICM42670_esp_idf.c:308
esp_err_t ICM42670_ESP_I2C_AttachDevice(ICM42670_Config *config, ICM42670_ESP_I2CBus *bus, i2c_master_bus_handle_t bus_handle, i2c_master_dev_handle_t dev_handle)
Attach an existing ESP-IDF I2C device to ICM42670_Config.
Definition ICM42670_esp_idf.c:87
esp_err_t ICM42670_ESP_SPI_AttachDevice(ICM42670_Config *config, ICM42670_ESP_SPIBus *bus, spi_host_device_t host_id, spi_device_handle_t dev_handle)
Attach an existing ESP-IDF SPI device to ICM42670_Config.
Definition ICM42670_esp_idf.c:242
int8_t ICM42670_ESP_SPI_ReadReg(void *handle, uint8_t reg_addr, uint8_t *data, uint16_t len)
ESP-IDF SPI register-read callback for ICM42670_Config.
Definition ICM42670_esp_idf.c:283
esp_err_t ICM42670_ESP_SPI_Deinit(ICM42670_ESP_SPIBus *bus)
Release ESP-IDF SPI resources owned by this adapter.
Definition ICM42670_esp_idf.c:261
int8_t ICM42670_ESP_I2C_ReadReg(void *handle, uint8_t reg_addr, uint8_t *data, uint16_t len)
ESP-IDF I2C register-read callback for ICM42670_Config.
Definition ICM42670_esp_idf.c:138
esp_err_t ICM42670_ESP_I2C_Deinit(ICM42670_ESP_I2CBus *bus)
Release ESP-IDF I2C resources owned by this adapter.
Definition ICM42670_esp_idf.c:106
Platform-independent driver configuration.
Definition ICM42670_driver.h:172
ESP-IDF I2C bus state used by the portable driver callbacks.
Definition ICM42670_esp_idf.h:27
bool owns_bus
Definition ICM42670_esp_idf.h:31
i2c_master_dev_handle_t dev_handle
Definition ICM42670_esp_idf.h:29
uint32_t timeout_ms
Definition ICM42670_esp_idf.h:30
bool owns_device
Definition ICM42670_esp_idf.h:32
i2c_master_bus_handle_t bus_handle
Definition ICM42670_esp_idf.h:28
ESP-IDF SPI bus state used by the portable driver callbacks.
Definition ICM42670_esp_idf.h:38
bool owns_device
Definition ICM42670_esp_idf.h:43
spi_device_handle_t dev_handle
Definition ICM42670_esp_idf.h:40
uint32_t timeout_ms
Definition ICM42670_esp_idf.h:41
spi_host_device_t host_id
Definition ICM42670_esp_idf.h:39
bool owns_bus
Definition ICM42670_esp_idf.h:42