10#include <zephyr/kernel.h>
25#define HFCLKAUDIO_12_288_MHZ 0x9BA6
26#define HFCLKAUDIO_12_165_MHZ 0x8FD8
27#define HFCLKAUDIO_12_411_MHZ 0xA774
29#if ((CONFIG_AUDIO_FRAME_DURATION_US == 7500) && CONFIG_SW_CODEC_LC3)
31#define FRAME_SIZE_BYTES \
32 ((CONFIG_I2S_LRCK_FREQ_HZ / 1000 * 15 / 2) * CONFIG_I2S_CH_NUM * \
33 CONFIG_AUDIO_BIT_DEPTH_OCTETS)
35#define FRAME_SIZE_BYTES \
36 ((CONFIG_I2S_LRCK_FREQ_HZ / 1000 * 10) * CONFIG_I2S_CH_NUM * CONFIG_AUDIO_BIT_DEPTH_OCTETS)
39#define BLOCK_SIZE_BYTES (FRAME_SIZE_BYTES / CONFIG_FIFO_FRAME_SPLIT_NUM)
45#define I2S_SAMPLES_NUM \
46 (BLOCK_SIZE_BYTES / (CONFIG_AUDIO_BIT_DEPTH_OCTETS) / (32 / CONFIG_AUDIO_BIT_DEPTH_BITS))
56 uint32_t
const *tx_buf_released);
void audio_i2s_blk_comp_cb_register(i2s_blk_comp_callback_t blk_comp_callback)
Register callback function for I2S block complete event.
void audio_i2s_init(void)
Initialize I2S module.
void audio_i2s_set_next_buf(const uint8_t *tx_buf, uint32_t *rx_buf)
Supply the buffers to be used in the next part of the I2S transfer.
void audio_i2s_start(const uint8_t *tx_buf, uint32_t *rx_buf)
Start the continuous I2S transfer.
void audio_i2s_stop(void)
Stop the continuous I2S transfer.
void(* i2s_blk_comp_callback_t)(uint32_t frame_start_ts, uint32_t *rx_buf_released, uint32_t const *tx_buf_released)
I2S block complete event callback type.
Definition audio_i2s.h:55