8 #include <xcore/port.h>
9 #include <xcore/clock.h>
10 #include <xcore/parallel.h>
19 #define I2S_MAX_DATALINES 8
20 #define I2S_CHANS_PER_FRAME 2
116 typedef void (*
i2s_receive_t)(
void *app_data,
size_t num_in,
const int32_t *samples);
134 typedef void (*
i2s_send_t)(
void *app_data,
size_t num_out, int32_t *samples);
140 #define I2S_CALLBACK_ATTR __attribute__((fptrgroup("i2s_callback")))
166 DECLARE_JOB(
i2s_master, (
const i2s_callback_group_t *,
const port_t *,
const size_t,
const port_t *,
const size_t,
const port_t,
const port_t,
const port_t,
const xclock_t));
203 const port_t p_dout[],
204 const size_t num_out,
205 const port_t p_din[],
208 const port_t p_lrclk,
210 const xclock_t bclk);
239 const port_t p_dout[],
240 const size_t num_out,
241 const port_t p_din[],
244 const port_t p_lrclk,
245 const xclock_t bclk);
282 const size_t num_out,
void(* i2s_receive_t)(void *app_data, size_t num_in, const int32_t *samples)
Definition: i2s.h:116
i2s_slave_bclk_polarity
Definition: i2s.h:39
i2s_restart_t(* i2s_restart_check_t)(void *app_data)
Definition: i2s.h:97
#define I2S_CALLBACK_ATTR
Definition: i2s.h:140
i2s_mode
Definition: i2s.h:27
struct i2s_config i2s_config_t
enum i2s_restart i2s_restart_t
void(* i2s_send_t)(void *app_data, size_t num_out, int32_t *samples)
Definition: i2s.h:134
void(* i2s_init_t)(void *app_data, i2s_config_t *i2s_config)
Definition: i2s.h:81
enum i2s_slave_bclk_polarity i2s_slave_bclk_polarity_t
i2s_restart
Definition: i2s.h:60
@ I2S_SLAVE_SAMPLE_ON_BCLK_FALLING
Definition: i2s.h:41
@ I2S_SLAVE_SAMPLE_ON_BCLK_RISING
Definition: i2s.h:40
@ I2S_MODE_LEFT_JUSTIFIED
Definition: i2s.h:29
@ I2S_MODE_I2S
Definition: i2s.h:28
@ I2S_SHUTDOWN
Definition: i2s.h:63
@ I2S_NO_RESTART
Definition: i2s.h:61
@ I2S_RESTART
Definition: i2s.h:62
void i2s_master(const i2s_callback_group_t *const i2s_cbg, const port_t p_dout[], const size_t num_out, const port_t p_din[], const size_t num_in, const port_t p_bclk, const port_t p_lrclk, const port_t p_mclk, const xclock_t bclk)
void i2s_master_external_clock(const i2s_callback_group_t *const i2s_cbg, const port_t p_dout[], const size_t num_out, const port_t p_din[], const size_t num_in, const port_t p_bclk, const port_t p_lrclk, const xclock_t bclk)
void i2s_slave(const i2s_callback_group_t *const i2s_cbg, port_t p_dout[], const size_t num_out, port_t p_din[], const size_t num_in, port_t p_bclk, port_t p_lrclk, xclock_t bclk)
I2S_CALLBACK_ATTR i2s_restart_check_t restart_check
Definition: i2s.h:152
I2S_CALLBACK_ATTR i2s_receive_t receive
Definition: i2s.h:155
I2S_CALLBACK_ATTR i2s_init_t init
Definition: i2s.h:149
void * app_data
Definition: i2s.h:161
I2S_CALLBACK_ATTR i2s_send_t send
Definition: i2s.h:158
i2s_mode_t mode
Definition: i2s.h:51
i2s_slave_bclk_polarity_t slave_bclk_polarity
Definition: i2s.h:52
unsigned mclk_bclk_ratio
Definition: i2s.h:50