38#include "drv_digital_out.h"
39#include "drv_digital_in.h"
40#include "drv_i2c_master.h"
53#define AUDIOMUX_MAP_MIKROBUS( cfg, mikrobus ) \
54 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
55 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA )
64#define AUDIOMUX_RETVAL uint8_t
66#define AUDIOMUX_OK 0x00
67#define AUDIOMUX_INIT_ERROR 0xFF
74#define AUDIOMUX_DEVICE_ADDR 0x44
81#define AUDIOMUX_AUTO_INCR 0x10
88#define AUDIOMUX_INPUT_SEL_ADDR 0x00
89#define AUDIOMUX_INPUT_GAIN_ADDR 0x01
90#define AUDIOMUX_SURROUND_ADDR 0x02
91#define AUDIOMUX_VOLUME_LEFT_ADDR 0x03
92#define AUDIOMUX_VOLUME_RIGHT_ADDR 0x04
93#define AUDIOMUX_TREBLE_BASS_ADDR 0x05
94#define AUDIOMUX_OUTPUT_ADDR 0x06
95#define AUDIOMUX_BASS_ALC_ADDR 0x07
102#define AUDIOMUX_IN1_EN 0x00
103#define AUDIOMUX_IN2_EN 0x01
104#define AUDIOMUX_IN3_EN 0x02
105#define AUDIOMUX_IN4_EN 0x03
106#define AUDIOMUX_MIC_GAIN_14DB 0x00
107#define AUDIOMUX_MIC_GAIN_10DB 0x01
108#define AUDIOMUX_MIC_GAIN_6DB 0x02
109#define AUDIOMUX_MIC_GAIN_0DB 0x03
110#define AUDIOMUX_MIC_OFF 0x01
111#define AUDIOMUX_MIC_ON 0x00
118#define AUDIOMUX_MUTE_INPUT_ON 0x01
119#define AUDIOMUX_MUTE_INPUT_OFF 0x00
126#define AUDIOMUX_IN_GAIN_0DB 0x00
127#define AUDIOMUX_IN_GAIN_2DB 0x01
128#define AUDIOMUX_IN_GAIN_4DB 0x02
129#define AUDIOMUX_IN_GAIN_6DB 0x03
130#define AUDIOMUX_IN_GAIN_8DB 0x04
131#define AUDIOMUX_IN_GAIN_10DB 0x05
132#define AUDIOMUX_IN_GAIN_12DB 0x06
133#define AUDIOMUX_IN_GAIN_14DB 0x07
140#define AUDIOMUX_SURROUND_MODE_ON 0x01
141#define AUDIOMUX_SURROUND_MODE_OFF 0x00
142#define AUDIOMUX_SURROUND_GAIN_0DB 0x00
143#define AUDIOMUX_SURROUND_GAIN_6DB 0x02
144#define AUDIOMUX_SURROUND_GAIN_9DB 0x04
145#define AUDIOMUX_SURROUND_GAIN_12DB 0x06
146#define AUDIOMUX_MIX_INV_100 0x00
147#define AUDIOMUX_MIX_INV_50 0x08
148#define AUDIOMUX_MIX_INV_25 0x10
149#define AUDIOMUX_MIX_0 0x18
150#define AUDIOMUX_MIX_NONINV_100 0x20
151#define AUDIOMUX_MIX_NONINV_75 0x28
152#define AUDIOMUX_MIX_NONINV_50 0x30
153#define AUDIOMUX_MIX_MUTE 0x38
154#define AUDIOMUX_BUFF_GAIN_0 0x40
155#define AUDIOMUX_BUFF_GAIN_6DB 0x00
162#define AUDIOMUX_VOL1_0DB 0x00
163#define AUDIOMUX_VOL1_1DB_NEG 0x01
164#define AUDIOMUX_VOL1_2DB_NEG 0x02
165#define AUDIOMUX_VOL1_3DB_NEG 0x03
166#define AUDIOMUX_VOL1_4DB_NEG 0x04
167#define AUDIOMUX_VOL1_5DB_NEG 0x05
168#define AUDIOMUX_VOL1_6DB_NEG 0x06
169#define AUDIOMUX_VOL1_7DB_NEG 0x07
170#define AUDIOMUX_VOL1_8DB_NEG 0x08
171#define AUDIOMUX_VOL1_16DB_NEG 0x10
172#define AUDIOMUX_VOL1_24DB_NEG 0x18
173#define AUDIOMUX_VOL1_32DB_NEG 0x20
174#define AUDIOMUX_VOL1_40DB_NEG 0x28
175#define AUDIOMUX_VOL1_48DB_NEG 0x30
176#define AUDIOMUX_VOL1_56DB_NEG 0x38
177#define AUDIOMUX_VOL2_0DB 0x00
178#define AUDIOMUX_VOL2_8DB_NEG 0x01
179#define AUDIOMUX_VOL2_16DB_NEG 0x02
180#define AUDIOMUX_VOL2_24DB_NEG 0x03
187#define AUDIOMUX_TRE_BASS_14DB_NEG 0x00
188#define AUDIOMUX_TRE_BASS_12DB_NEG 0x01
189#define AUDIOMUX_TRE_BASS_10DB_NEG 0x02
190#define AUDIOMUX_TRE_BASS_8DB_NEG 0x03
191#define AUDIOMUX_TRE_BASS_6DB_NEG 0x04
192#define AUDIOMUX_TRE_BASS_4DB_NEG 0x05
193#define AUDIOMUX_TRE_BASS_2DB_NEG 0x06
194#define AUDIOMUX_TRE_BASS_0DB 0x07
195#define AUDIOMUX_TRE_BASS_14DB 0x08
196#define AUDIOMUX_TRE_BASS_12DB 0x09
197#define AUDIOMUX_TRE_BASS_10DB 0x0A
198#define AUDIOMUX_TRE_BASS_8DB 0x0B
199#define AUDIOMUX_TRE_BASS_6DB 0x0C
200#define AUDIOMUX_TRE_BASS_4DB 0x0D
201#define AUDIOMUX_TRE_BASS_2DB 0x0E
208#define AUDIOMUX_MUTE_OUTPUT_ON 0x00
209#define AUDIOMUX_MUTE_OUTPUT_OFF 0x01
216#define AUDIOMUX_ALC_MODE_ON 0x01
217#define AUDIOMUX_DETECTOR_ON 0x02
218#define AUDIOMUX_RELEASE_CURR 0x04
219#define AUDIOMUX_TIME_RES_12K5 0x00
220#define AUDIOMUX_TIME_RES_25K 0x08
221#define AUDIOMUX_TIME_RES_50K 0x10
222#define AUDIOMUX_TIME_RES_100K 0x18
223#define AUDIOMUX_THRSH_700MVRMS 0x00
224#define AUDIOMUX_THRSH_485MVRMS 0x20
225#define AUDIOMUX_THRSH_320MVRMS 0x40
226#define AUDIOMUX_THRSH_170MVRMS 0x60
227#define AUDIOMUX_MODE1_FIXED_RES 0x00
228#define AUDIOMUX_MODE2_ADAPTIVE 0x80
235#define AUDIOMUX_OK 0x00
236#define AUDIOMUX_ADDR_ERR 0x01
237#define AUDIOMUX_NBYTES_ERR 0x02
238#define AUDIOMUX_IN_SEL_ERR 0x03
239#define AUDIOMUX_GAIN_ERR 0x04
240#define AUDIOMUX_STATE_ERR 0x05
241#define AUDIOMUX_VOL_ERR 0x06
242#define AUDIOMUX_TRE_BASS_ERR 0x07
249#define T_AUDIOMUX_P const uint8_t*
250#define T_AUDIOMUX_RETVAL uint8_t
389 uint8_t *data_in, uint8_t n_bytes );
418 uint8_t *data_out, uint8_t n_bytes );
434 uint8_t mic_gain, uint8_t mic_state );
#define AUDIOMUX_RETVAL
Definition: audiomux.h:64
#define T_AUDIOMUX_RETVAL
Definition: audiomux.h:250
void audiomux_cfg_setup(audiomux_cfg_t *cfg)
Config Object Initialization function.
T_AUDIOMUX_RETVAL audiomux_read_single_byte(audiomux_t *ctx, uint8_t reg_addr, uint8_t *data_out)
Single Read function.
AUDIOMUX_RETVAL audiomux_init(audiomux_t *ctx, audiomux_cfg_t *cfg)
Initialization function.
T_AUDIOMUX_RETVAL audiomux_set_treble_bass(audiomux_t *ctx, uint8_t treble, uint8_t bass)
Treble and Bass Control function.
void audiomux_default_cfg(audiomux_t *ctx)
Click Default Configuration function.
T_AUDIOMUX_RETVAL audiomux_read_bytes(audiomux_t *ctx, uint8_t start_addr, uint8_t *data_out, uint8_t n_bytes)
Multiple Read function.
T_AUDIOMUX_RETVAL audiomux_set_volume(audiomux_t *ctx, uint8_t volume1, uint8_t volume2, uint8_t side_sel)
Volume Control function.
T_AUDIOMUX_RETVAL audiomux_write_bytes(audiomux_t *ctx, uint8_t start_addr, uint8_t *data_in, uint8_t n_bytes)
Multiple Write function.
T_AUDIOMUX_RETVAL audiomux_select_input(audiomux_t *ctx, uint8_t input_sel, uint8_t mute_in, uint8_t mic_gain, uint8_t mic_state)
Input Selection function.
T_AUDIOMUX_RETVAL audiomux_set_input_gain(audiomux_t *ctx, uint8_t input_gain)
Input Gain Control function.
void audiomux_generic_write(audiomux_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
Generic write function.
T_AUDIOMUX_RETVAL audiomux_mute_ouput(audiomux_t *ctx, uint8_t state)
Output Mute function.
void audiomux_generic_read(audiomux_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
Generic read function.
T_AUDIOMUX_RETVAL audiomux_write_single_byte(audiomux_t *ctx, uint8_t reg_addr, uint8_t data_in)
Single Write function.
Click configuration structure definition.
Definition: audiomux.h:280
uint32_t i2c_speed
Definition: audiomux.h:288
pin_name_t scl
Definition: audiomux.h:283
pin_name_t sda
Definition: audiomux.h:284
uint8_t i2c_address
Definition: audiomux.h:289
Click ctx object definition.
Definition: audiomux.h:265
i2c_master_t i2c
Definition: audiomux.h:268
uint8_t slave_address
Definition: audiomux.h:272