#include <debug.h>
#include <reg.h>
#include <stdbool.h>
#include <types.h>
#include "sdrv_ckgen.h"
#include "sdrv_common.h"
#include "sdrv_dma.h"
Go to the source code of this file.
|
| sdrv_i2s_status_t | sdrv_i2s_init (sdrv_i2s_t *i2s, sdrv_i2s_config_t *cfg) |
| |
| sdrv_i2s_status_t | sdrv_i2s_get_default_params (sdrv_i2s_t *i2s, sdrv_i2s_params_t *params, sdrv_i2s_stream_type_t type) |
| |
| sdrv_i2s_status_t | sdrv_i2s_set_params (sdrv_i2s_t *i2s, sdrv_i2s_params_t *params, sdrv_i2s_stream_type_t type) |
| |
| sdrv_i2s_status_t | sdrv_i2s_create_transfer (sdrv_i2s_t *i2s, sdrv_i2s_callback callback, void *context, sdrv_i2s_stream_type_t type) |
| |
| sdrv_i2s_status_t | sdrv_i2s_submit_transfer (sdrv_i2s_t *i2s, sdrv_i2s_transfer_t *transfer, sdrv_i2s_stream_type_t type) |
| |
| sdrv_i2s_status_t | sdrv_i2s_start (sdrv_i2s_t *i2s, sdrv_i2s_stream_type_t type) |
| |
| sdrv_i2s_status_t | sdrv_i2s_stop (sdrv_i2s_t *i2s, sdrv_i2s_stream_type_t type) |
| |
- Copyright
- Copyright (c) 2021 Semidrive Semiconductor. All rights reserved.
◆ SDRV_I2S_CHNNELS_BYTES
◆ SDRV_I2S_CHNNELS_COUNT
| #define SDRV_I2S_CHNNELS_COUNT 2 |
◆ SDRV_I2S_DAIFMT_CODEC_MASTER
| #define SDRV_I2S_DAIFMT_CODEC_MASTER (2 << 4) |
◆ SDRV_I2S_DAIFMT_CODEC_SLAVE
| #define SDRV_I2S_DAIFMT_CODEC_SLAVE (1 << 4) |
◆ SDRV_I2S_DAIFMT_DSP_A
| #define SDRV_I2S_DAIFMT_DSP_A 4 |
◆ SDRV_I2S_DAIFMT_DSP_B
| #define SDRV_I2S_DAIFMT_DSP_B 5 |
◆ SDRV_I2S_DAIFMT_FORMAT_MASK
| #define SDRV_I2S_DAIFMT_FORMAT_MASK 0x0f |
◆ SDRV_I2S_DAIFMT_IB_IF
◆ SDRV_I2S_DAIFMT_IB_NF
◆ SDRV_I2S_DAIFMT_INV_MASK
| #define SDRV_I2S_DAIFMT_INV_MASK 0x0f00 |
◆ SDRV_I2S_DAIFMT_INV_OFFSET
| #define SDRV_I2S_DAIFMT_INV_OFFSET 8 |
◆ SDRV_I2S_DAIFMT_LEFT_JUSTIFIED
| #define SDRV_I2S_DAIFMT_LEFT_JUSTIFIED 2 |
◆ SDRV_I2S_DAIFMT_MASTER_MASK
| #define SDRV_I2S_DAIFMT_MASTER_MASK (0x0f0) |
◆ SDRV_I2S_DAIFMT_NB_IF
◆ SDRV_I2S_DAIFMT_NB_NF
◆ SDRV_I2S_DAIFMT_RIGHT_JUSTIFIED
| #define SDRV_I2S_DAIFMT_RIGHT_JUSTIFIED 3 |
◆ SDRV_I2S_DAIFMT_STANDARD_PHILLIPS
| #define SDRV_I2S_DAIFMT_STANDARD_PHILLIPS 1 |
◆ SDRV_I2S_DMA_BUF_TOTAL_SIZE
◆ SDRV_I2S_DMA_PERIOD_BYTES
| #define SDRV_I2S_DMA_PERIOD_BYTES |
Value:
#define SDRV_I2S_CHNNELS_BYTES
Definition: sdrv_i2s.h:53
#define SDRV_I2S_DMA_PERIOD_FRAME_SIZE
Definition: sdrv_i2s.h:54
#define SDRV_I2S_CHNNELS_COUNT
Definition: sdrv_i2s.h:52
◆ SDRV_I2S_DMA_PERIOD_COUNT
| #define SDRV_I2S_DMA_PERIOD_COUNT 2 |
◆ SDRV_I2S_DMA_PERIOD_FRAME_SIZE
| #define SDRV_I2S_DMA_PERIOD_FRAME_SIZE 1024 * 4 |
◆ SDRV_I2S_SEL_CHNULL
| #define SDRV_I2S_SEL_CHNULL 0x00 |
◆ SDRV_I2S_SEL_DATALINE0
| #define SDRV_I2S_SEL_DATALINE0 (0x01 << 0) |
◆ SDRV_I2S_SEL_DATALINE1
| #define SDRV_I2S_SEL_DATALINE1 (0x01 << 1) |
◆ SDRV_I2S_SEL_DATALINE2
| #define SDRV_I2S_SEL_DATALINE2 (0x01 << 2) |
◆ SDRV_I2S_SEL_DATALINE3
| #define SDRV_I2S_SEL_DATALINE3 (0x01 << 3) |
◆ SDRV_I2S_SEL_DATALINE4
| #define SDRV_I2S_SEL_DATALINE4 (0x01 << 4) |
◆ SDRV_I2S_SEL_DATALINE5
| #define SDRV_I2S_SEL_DATALINE5 (0x01 << 5) |
◆ SDRV_I2S_SEL_DATALINE6
| #define SDRV_I2S_SEL_DATALINE6 (0x01 << 6) |
◆ SDRV_I2S_SEL_DATALINE7
| #define SDRV_I2S_SEL_DATALINE7 (0x01 << 7) |
◆ SDRV_I2S_XFER_NUM_BUFFERS
| #define SDRV_I2S_XFER_NUM_BUFFERS (4U) |
◆ sdrv_i2s_callback
◆ sdrv_i2s_channel_t
◆ sdrv_i2s_clk_sync_type_t
sdrv i2s sync mode ,select sck and ws source
◆ sdrv_i2s_config_t
i2s controller configurations
◆ sdrv_i2s_dma_buf_t
i2s dma buff descriptions,which is used to transfer data in dma mod
◆ sdrv_i2s_dma_data_t
i2s dma fifo descriptions
◆ sdrv_i2s_mclk_dir_t
i2s mclk direction selection in or out
◆ sdrv_i2s_mclk_sel_t
i2s mclk selection mclk0 or mclk1
◆ sdrv_i2s_params_t
sdrv i2s configurations params,
◆ sdrv_i2s_sample_rate_t
◆ sdrv_i2s_sample_width_t
◆ sdrv_i2s_slot_width_t
◆ sdrv_i2s_status_t
◆ sdrv_i2s_stream_t
playback capture descriptions
◆ sdrv_i2s_t
i2s controller descriptions
◆ sdrv_i2s_transfer_t
sdrv i2s transfer descriptions
◆ i2s_channel
i2s channel num
| Enumerator |
|---|
| SDRV_I2S_CHANNEL_NUM_MONO | |
| SDRV_I2S_CHANNEL_NUM_STEREO | |
| SDRV_I2S_CHANNEL_NUM_3CHANS | |
| SDRV_I2S_CHANNEL_NUM_4CHANS | |
| SDRV_I2S_CHANNEL_NUM_5CHANS | |
| SDRV_I2S_CHANNEL_NUM_6CHANS | |
| SDRV_I2S_CHANNEL_NUM_7CHANS | |
| SDRV_I2S_CHANNEL_NUM_8CHANS | |
| SDRV_I2S_CHANNEL_NUM_9CHANS | |
| SDRV_I2S_CHANNEL_NUM_10CHANS | |
| SDRV_I2S_CHANNEL_NUM_11CHANS | |
| SDRV_I2S_CHANNEL_NUM_12CHANS | |
| SDRV_I2S_CHANNEL_NUM_13CHANS | |
| SDRV_I2S_CHANNEL_NUM_14CHANS | |
| SDRV_I2S_CHANNEL_NUM_15CHANS | |
| SDRV_I2S_CHANNEL_NUM_16CHANS | |
◆ sdrv_i2s_clk_sync_type
sdrv i2s sync mode ,select sck and ws source
| Enumerator |
|---|
| SDRV_I2S_CLK_TX_SYNC | tx clk synchronization, rx will shares tx clk rx clk synchronization, tx will shares rx clk
|
| SDRV_I2S_CLK_RX_SYNC | async mode,tx and rx work on their respective clocks
|
| SDRV_I2S_CLK_TX_RX_ASYNC | |
◆ sdrv_i2s_mclk_dir
i2s mclk direction selection in or out
| Enumerator |
|---|
| SDRV_I2S_MCLK_IN | i2s mclk in
|
| SDRV_I2S_MCLK_OUT | i2s mclk out,default out
|
◆ sdrv_i2s_mclk_sel
i2s mclk selection mclk0 or mclk1
| Enumerator |
|---|
| SDRV_I2S_MCLK_NULL | |
| SDRV_I2S_MCLK_0 | |
| SDRV_I2S_MCLK_1 | |
◆ sdrv_i2s_sample_rate
i2s sample rate
| Enumerator |
|---|
| SDRV_I2S_SR_NO_INIT | |
| SDRV_I2S_SR_5512 | |
| SDRV_I2S_SR_8000 | |
| SDRV_I2S_SR_11025 | |
| SDRV_I2S_SR_16000 | |
| SDRV_I2S_SR_22050 | |
| SDRV_I2S_SR_32000 | |
| SDRV_I2S_SR_44100 | |
| SDRV_I2S_SR_48000 | |
| SDRV_I2S_SR_64000 | |
| SDRV_I2S_SR_88200 | |
| SDRV_I2S_SR_96000 | |
| SDRV_I2S_SR_176400 | |
| SDRV_I2S_SR_192000 | |
◆ sdrv_i2s_sample_width
sample width
| Enumerator |
|---|
| SDRV_I2S_SAMPLE_WIDTH_8BITS | |
| SDRV_I2S_SAMPLE_WIDTH_16BITS | |
| SDRV_I2S_SAMPLE_WIDTH_24BITS | |
| SDRV_I2S_SAMPLE_WIDTH_32BITS | |
◆ sdrv_i2s_slot_width
slot width
| Enumerator |
|---|
| SDRV_I2S_SLOT_WIDTH_8BITS | |
| SDRV_I2S_SLOT_WIDTH_16BITS | |
| SDRV_I2S_SLOT_WIDTH_24BITS | |
| SDRV_I2S_SLOT_WIDTH_32BITS | |
◆ sdrv_i2s_status
| Enumerator |
|---|
| SDRV_I2S_STATUS_SUCCESS | status for Success. status for Fail.
|
| SDRV_I2S_STATUS_FAIL | status for invalid argument check
|
| SDRV_I2S_STATUS_INVALID_PARAMS | status for overrun
|
| SDRV_I2S_STATUS_OVERRUN | status for underrun
|
| SDRV_I2S_STATUS_UNDERRUN | |
◆ sdrv_i2s_stream_type_t
playback capture type
| Enumerator |
|---|
| SDRV_I2S_STREAM_PLAYBACK | |
| SDRV_I2S_STREAM_CAPTURE | |
| SDRV_I2S_STREAM_MAX | |
◆ sdrv_i2s_create_transfer()
create i2s transfer and attach callback
This fuction is used to create transfer and attach transfer callback
- Parameters
-
| [in] | i2s | sdrv i2s controller |
| [in] | callback | sdrv i2s transfer callback function. |
| [in] | context | sdrv i2s transfer callback param. |
| [in] | type | playback or capture type |
- Returns
- sdrv_i2s_status_t
◆ sdrv_i2s_get_default_params()
get i2s module default params
This fuction is used to get i2s module default params
- Parameters
-
| [in] | i2s | sdrv i2s controller |
| [out] | params | sdrv i2s params |
| [in] | type | playback or capture type |
- Returns
- sdrv_i2s_status_t
◆ sdrv_i2s_init()
initializes i2s module controller
This fuction initializes i2s module function.
- Parameters
-
| [in] | i2s | sdrv i2s controller |
| [in] | cfg | sdrv i2s controller configurations |
- Returns
- sdrv_i2s_status_t
◆ sdrv_i2s_set_params()
set i2s params
This fuction is used to set i2s module params
- Parameters
-
| [in] | i2s | sdrv i2s controller |
| [in] | params | sdrv i2s params |
| [in] | type | playback or capture type @ return sdrv_i2s_status_t |
◆ sdrv_i2s_start()
start i2s transfer
This fuction is used to start i2s transfer
- Parameters
-
| [in] | i2s | sdrv i2s controller |
| [in] | type | playback or capture type |
- Returns
- sdrv_i2s_status_t
◆ sdrv_i2s_stop()
stop i2s transfer
- This fuction is used to stop i2s transfer
- Parameters
-
| [in] | i2s | sdrv i2s controller |
| [in] | type | playback or capture type |
- Returns
- sdrv_i2s_status_t
◆ sdrv_i2s_submit_transfer()
submit i2s transfer in queue
This fuction is used to submit transfer, which's max num is SDRV_I2S_XFER_NUM_BUFFERS
- Parameters
-
| [in] | i2s | sdrv i2s controller |
| [in] | transfer | sdrv i2s transfer |
| [in] | type | playback or capture type |
- Returns
- sdrv_i2s_status_t