audioreach: add i2s subgraph support

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
This commit is contained in:
Srinivas Kandagatla 2021-07-26 09:40:06 +01:00
commit 2778b945d8
2 changed files with 80 additions and 0 deletions

41
audioreach/module_i2s.m4 Normal file
View file

@ -0,0 +1,41 @@
include(`util/util.m4') dnl
dnl AR_MODULE_I2S_RX(index, sgidx, container-idx, iid, maxip-ports, max-op-ports, in-ports, outports, src-port, dst-port,
dnl hw-if-type, hw-if-idx, fmt, sd-line-idx)
define(`AR_MODULE_I2S_RX',
`'
`SectionVendorTuples."NAME_PREFIX.i2s_rx$1_tuples" {'
` tokens "audioreach_tokens"'
`'
` tuples."word.u32_data" {'
` AR_TKN_U32_MODULE_INSTANCE_ID STR($4)'
` AR_TKN_U32_MODULE_ID STR(MODULE_ID_I2S_SINK)'
` AR_TKN_U32_MODULE_MAX_IP_PORTS STR($5)'
` AR_TKN_U32_MODULE_MAX_OP_PORTS STR($6)'
` AR_TKN_U32_MODULE_IN_PORTS STR($7)'
` AR_TKN_U32_MODULE_OUT_PORTS STR($8)'
` AR_TKN_U32_MODULE_SRC_OP_PORT_ID STR($9)'
` AR_TKN_U32_MODULE_DST_IN_PORT_ID STR($10)'
` AR_TKN_U32_MODULE_HW_IF_TYPE STR($11)'
` AR_TKN_U32_MODULE_HW_IF_IDX STR($12)'
` AR_TKN_U32_MODULE_FMT_DATA STR($13)'
` AR_TKN_U32_MODULE_SD_LINE_IDX STR(1)'
` }'
`}'
`'
`SectionData."NAME_PREFIX.i2s_rx$1_data" {'
` tuples "NAME_PREFIX.i2s_rx$1_tuples"'
`}'
`'
`SectionWidget."NAME_PREFIX.i2s_rx$1" {'
` index STR($1)'
` type "buffer"'
` no_pm "true"'
` event_type "1"'
` event_flags "15"'
` subseq "10"'
` data ['
` "NAME_PREFIX.sub_graph$2_data"'
` "NAME_PREFIX.container$3_data"'
` "NAME_PREFIX.i2s_rx$1_data"'
` ]'
`}') dnl

View file

@ -0,0 +1,39 @@
include(`audioreach/audioreach.m4') dnl
include(`util/pcm.m4') dnl
include(`audioreach/subgraph.m4') dnl
include(`audioreach/container.m4') dnl
include(`audioreach/module_log.m4') dnl
include(`audioreach/module_i2s.m4') dnl
include(`util/mixer.m4') dnl
dnl
#
# SubGraph for Device Backend
#
# ______________________
# | Sub Graph |
# | [LOG] -> [DEVICE EP] |
# |______________________|
define(`LOG_MODULE_IID', MOD_IID_START) dnl
define(`CDC_DMA_MODULE_IID', eval(MOD_IID_START + 1)) dnl
define(`SG_INDEX', DEVICE_INDEX) dnl
define(`CONTAINER_INDEX', DEVICE_INDEX) dnl
dnl DEVICE_PLAYBACK_ROUTE(stream-index, dai-id)
define(`DEVICE_PLAYBACK_ROUTE',
`'
`SectionGraph."NAME_PREFIX.$1 $2 Graph" {'
` index STR($1)'
` lines ['
` "NAME_PREFIX.logger$1, , $2 Audio Mixer"'
` "NAME_PREFIX.i2s_rx$1, , NAME_PREFIX.logger$1"'
` "$2, , NAME_PREFIX.i2s_rx$1"'
` ]'
`}')
AR_SUBGRAPH(DEVICE_INDEX, DEVICE_DAI_ID, SG_IID_START, DEVICE_PERF_MODE, DEVICE_DIRECTION, CONT_SENARIO_ID)
AR_CONTAINER(DEVICE_INDEX, CONT_IID_START, CONT_CAP, CONT_STACK_SIZE, CONT_POSITION, DEVICE_DOMAIN_ID)
AR_MODULE_LOG(DEVICE_INDEX, SG_INDEX, CONTAINER_INDEX, LOG_MODULE_IID, 1, 1, 2, 1, 1, 2, 0x000019ab, 1, 0)
AR_MODULE_I2S_RX(DEVICE_INDEX, SG_INDEX, CONTAINER_INDEX, CDC_DMA_MODULE_IID, 1, 0, 2, 0, 1, 0, DEVICE_INTF_TYPE, DEVICE_INTF_INDEX, DEVICE_DATA_FORMAT)
DEVICE_PLAYBACK_ROUTE(DEVICE_INDEX, `DEVICE_NAME')