37#ifndef DRIVER_PCA9548A_H
38#define DRIVER_PCA9548A_H
110 uint8_t (*
iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
111 uint8_t (*
iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
154#define DRIVER_PCA9548A_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
162#define DRIVER_PCA9548A_LINK_RESET_GPIO_INIT(HANDLE, FUC) (HANDLE)->reset_gpio_init = FUC
170#define DRIVER_PCA9548A_LINK_RESET_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->reset_gpio_deinit = FUC
178#define DRIVER_PCA9548A_LINK_RESET_GPIO_WRITE(HANDLE, FUC) (HANDLE)->reset_gpio_write = FUC
186#define DRIVER_PCA9548A_LINK_IIC_INIT(HANDLE, FUC) (HANDLE)->iic_init = FUC
194#define DRIVER_PCA9548A_LINK_IIC_DEINIT(HANDLE, FUC) (HANDLE)->iic_deinit = FUC
202#define DRIVER_PCA9548A_LINK_IIC_READ_COMMAND(HANDLE, FUC) (HANDLE)->iic_read_cmd = FUC
210#define DRIVER_PCA9548A_LINK_IIC_WRITE_COMMAND(HANDLE, FUC) (HANDLE)->iic_write_cmd = FUC
218#define DRIVER_PCA9548A_LINK_IIC_READ(HANDLE, FUC) (HANDLE)->iic_read = FUC
226#define DRIVER_PCA9548A_LINK_IIC_WRITE(HANDLE, FUC) (HANDLE)->iic_write = FUC
234#define DRIVER_PCA9548A_LINK_IIC_READ_ADDRESS16(HANDLE, FUC) (HANDLE)->iic_read_address16 = FUC
242#define DRIVER_PCA9548A_LINK_IIC_WRITE_ADDRESS16(HANDLE, FUC) (HANDLE)->iic_write_address16 = FUC
250#define DRIVER_PCA9548A_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
258#define DRIVER_PCA9548A_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
uint8_t pca9548a_get_channel(pca9548a_handle_t *handle, pca9548a_channel_t channel, pca9548a_bool_t *enable)
get channel
uint8_t pca9548a_set_channel(pca9548a_handle_t *handle, pca9548a_channel_t channel, pca9548a_bool_t enable)
set channel
uint8_t pca9548a_iic_read_address16(pca9548a_handle_t *handle, uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len)
iic read address16
uint8_t pca9548a_init(pca9548a_handle_t *handle)
initialize the chip
uint8_t pca9548a_iic_read_command(pca9548a_handle_t *handle, uint8_t addr, uint8_t *buf, uint16_t len)
iic read command
uint8_t pca9548a_reset_bus(pca9548a_handle_t *handle)
reset bus
uint8_t pca9548a_get_addr_pin(pca9548a_handle_t *handle, pca9548a_address_t *addr_pin)
get the address pin
uint8_t pca9548a_iic_write_address16(pca9548a_handle_t *handle, uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len)
iic write address16
pca9548a_channel_t
pca9548a channel enumeration definition
uint8_t pca9548a_iic_write(pca9548a_handle_t *handle, uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
iic write
pca9548a_address_t
pca9548a address enumeration definition
uint8_t pca9548a_set_addr_pin(pca9548a_handle_t *handle, pca9548a_address_t addr_pin)
set the address pin
uint8_t pca9548a_iic_write_command(pca9548a_handle_t *handle, uint8_t addr, uint8_t *buf, uint16_t len)
iic write command
struct pca9548a_info_s pca9548a_info_t
pca9548a information structure definition
pca9548a_bool_t
pca9548a bool enumeration definition
uint8_t pca9548a_info(pca9548a_info_t *info)
get chip's information
uint8_t pca9548a_deinit(pca9548a_handle_t *handle)
close the chip
struct pca9548a_handle_s pca9548a_handle_t
pca9548a handle structure definition
uint8_t pca9548a_iic_read(pca9548a_handle_t *handle, uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
iic read
pca9548a handle structure definition
void(* delay_ms)(uint32_t ms)
uint8_t(* reset_gpio_deinit)(void)
uint8_t(* iic_read_address16)(uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len)
void(* debug_print)(const char *const fmt,...)
uint8_t(* iic_init)(void)
uint8_t(* reset_gpio_init)(void)
uint8_t(* iic_read_cmd)(uint8_t addr, uint8_t *buf, uint16_t len)
uint8_t(* iic_write_address16)(uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len)
uint8_t(* reset_gpio_write)(uint8_t level)
uint8_t(* iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
uint8_t(* iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
uint8_t(* iic_deinit)(void)
uint8_t(* iic_write_cmd)(uint8_t addr, uint8_t *buf, uint16_t len)
pca9548a information structure definition
float supply_voltage_max_v
char manufacturer_name[32]
float supply_voltage_min_v