#ifndef TPA6130A2_H #define TPA6130A2_H #include typedef enum { TPA6130_OK, TPA6130_FAIL, } tpa6130_ret_t; typedef enum { TPA6130_CH_NONE = 0U, TPA6130_CH_L = 0x80U, TPA6130_CH_R = 0x40U, } tpa6130_ch_t; typedef struct { tpa6130_ret_t (*read_reg_cb)(void *handle, uint8_t slaveaddr, uint8_t reg, uint8_t *value); tpa6130_ret_t (*write_reg_cb)(void *handle, uint8_t slaveaddr, uint8_t reg, uint8_t value); } tpa6130_cb_t; typedef struct { void *user_data; tpa6130_cb_t cb; } tpa6130_t; tpa6130_ret_t tpa6130a2_revision(tpa6130_t *tpa, uint8_t *rev); tpa6130_ret_t tpa6130a2_enable_channel(tpa6130_t *tpa, tpa6130_ch_t ch); tpa6130_ret_t tpa6130a2_set_volume(tpa6130_t *tpa, uint8_t volume); tpa6130_ret_t tpa6130a2_set_mute(tpa6130_t *tpa, tpa6130_ch_t ch); #endif