drivers: i2s_cavs: Add bidirectional I2S support
Added bidirectional I2S support for Intel S1000 - Added implementation for I2S receive mode - Extended driver instances to support 3 I2S ports - Added DMA channel mappings for upto 4 I2S ports - Utilized k_msgq to track buffers through the driver - Allocate buffers for audio reception in the driver - Free buffers after audio transmission in the driver - Perform buffer reload for DMA after every reception/transmission - Removed unused Kconfig variables - I2S_CAVS_TX_BLOCK_COUNT - I2S_CAVS_RX_BLOCK_COUNT Signed-off-by: Sathish Kuttan <sathish.k.kuttan@intel.com>
This commit is contained in:
parent
9c52171750
commit
7e3a457308
2 changed files with 519 additions and 373 deletions
|
@ -15,44 +15,62 @@ menuconfig I2S_CAVS
|
|||
|
||||
if I2S_CAVS
|
||||
|
||||
config I2S_CAVS_TX_BLOCK_COUNT
|
||||
int "TX queue length"
|
||||
default 4
|
||||
help
|
||||
The maximum number of blocks that can be accommodated in the Tx queue.
|
||||
|
||||
config I2S_CAVS_0_NAME
|
||||
string "I2S 0 device name"
|
||||
default "I2S_0"
|
||||
|
||||
config I2S_CAVS_0_IRQ_PRI
|
||||
int "Interrupt priority"
|
||||
default 0
|
||||
|
||||
config I2S_CAVS_DMA_NAME
|
||||
string "DMA device name"
|
||||
default "DMA_0"
|
||||
help
|
||||
Name of the DMA device this device driver can use.
|
||||
|
||||
config I2S_CAVS_0_DMA_TX_CHANNEL
|
||||
int "DMA TX channel"
|
||||
default 2
|
||||
help
|
||||
DMA channel number to use for TX transfers.
|
||||
config I2S_CAVS_IRQ_PRI
|
||||
int "Interrupt priority"
|
||||
default 0
|
||||
|
||||
config I2S_CAVS_1_NAME
|
||||
string "I2S 1 device name"
|
||||
default "I2S_1"
|
||||
|
||||
config I2S_CAVS_1_IRQ_PRI
|
||||
int "Interrupt priority"
|
||||
default 0
|
||||
|
||||
config I2S_CAVS_1_DMA_TX_CHANNEL
|
||||
int "DMA TX channel"
|
||||
default 2
|
||||
help
|
||||
DMA channel number to use for I2S1 TX transfer.
|
||||
|
||||
config I2S_CAVS_1_DMA_RX_CHANNEL
|
||||
int "DMA RX channel"
|
||||
default 3
|
||||
help
|
||||
DMA channel number to use for I2S1 RX transfer.
|
||||
|
||||
config I2S_CAVS_2_NAME
|
||||
string "I2S 2 device name"
|
||||
default "I2S_2"
|
||||
|
||||
config I2S_CAVS_2_DMA_TX_CHANNEL
|
||||
int "DMA TX channel"
|
||||
default 4
|
||||
help
|
||||
DMA channel number to use for TX transfers.
|
||||
DMA channel number to use for I2S2 TX transfer.
|
||||
|
||||
config I2S_CAVS_2_DMA_RX_CHANNEL
|
||||
int "DMA RX channel"
|
||||
default 5
|
||||
help
|
||||
DMA channel number to use for I2S2 RX transfer.
|
||||
|
||||
config I2S_CAVS_3_NAME
|
||||
string "I2S 3 device name"
|
||||
default "I2S_3"
|
||||
|
||||
config I2S_CAVS_3_DMA_TX_CHANNEL
|
||||
int "DMA TX channel"
|
||||
default 6
|
||||
help
|
||||
DMA channel number to use for I2S3 TX transfer.
|
||||
|
||||
config I2S_CAVS_3_DMA_RX_CHANNEL
|
||||
int "DMA RX channel"
|
||||
default 7
|
||||
help
|
||||
DMA channel number to use for I2S3 RX transfer.
|
||||
|
||||
endif # I2S_CAVS
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue