SectionVendorTokens."audioreach_tokens" { AR_TKN_U32_SUB_GRAPH_INSTANCE_ID "1" AR_TKN_U32_SUB_GRAPH_PERF_MODE "2" AR_TKN_U32_SUB_GRAPH_DIRECTION "3" AR_TKN_U32_SUB_GRAPH_SCENARIO_ID "4" AR_TKN_U32_CONAINER_INSTANCE_ID "5" AR_TKN_U32_CONAINER_CAPABILITY_ID "6" AR_TKN_U32_CONAINER_STACK_SIZE "7" AR_TKN_U32_CONAINER_GRAPH_POS "8" AR_TKN_U32_CONAINER_PROC_DOMAIN "9" AR_TKN_U32_MODULE_ID "10" AR_TKN_U32_MODULE_INSTANCE_ID "11" AR_TKN_U32_MODULE_MAX_IP_PORTS "12" AR_TKN_U32_MODULE_MAX_OP_PORTS "13" AR_TKN_U32_MODULE_IN_PORTS "14" AR_TKN_U32_MODULE_OUT_PORTS "15" AR_TKN_U32_MODULE_SRC_OP_PORT_ID "16" AR_TKN_U32_MODULE_DST_IN_PORT_ID "17" AR_TKN_U32_MODULE_HW_IF_IDX "18" AR_TKN_U32_MODULE_HW_IF_TYPE "19" AR_TKN_U32_MODULE_FMT_INTERLEAVE "20" AR_TKN_U32_MODULE_FMT_DATA "21" AR_TKN_U32_MODULE_FMT_FREQ "22" AR_TKN_U32_MODULE_FMT_BIT_DEPTH "23" AR_TKN_U32_MODULE_SD_LINE_IDX "24" AR_TKN_U32_MODULE_WS_SRC "25" AR_TKN_U32_MODULE_FRAME_SZ_FACTOR "26" AR_TKN_U32_MODULE_LOG_CODE "27" AR_TKN_U32_MODULE_LOG_TAP_POINT_ID "28" AR_TKN_U32_MODULE_LOG_MODE "29" AR_TKN_DAI_INDEX "30" } # # Stream SubGraph for PCM Playback # # _____________________________________________________ # | Sub Graph 1 | # | [WR_SH] -> [PCM DEC] -> [PCM CONV] -> [VOL]->[LOG] |- Kcontrol # |_____________________________________________________| # # SectionTLV."master_playback_vol_ctrl_tlv" { scale { min "0" step "100" mute "0" } } SectionControlMixer."Master Playback Volume" { Comment "Stream Global volume" # control belongs to this index group index "1" # Channel register and shift for Front Left/Right channel."FL" { reg "0" shift "0" } channel."FR" { reg "0" shift "0" } # max control value and whether value is inverted max "65535" invert "false" # control uses bespoke driver get/put/info ID 0 ops."ctl" { info "volsw" get "257" put "257" } tlv "master_playback_vol_ctrl_tlv" } # SubGraph for PCM Playback # # ______________________________________________________ # | Sub Graph 1 | # | [WR_SH] -> [PCM DEC] -> [PCM CONV] -> [VOL]-> [LOG] |---KCONTROL-- # |______________________________________________________| # SectionPCMCapabilities."MultiMedia1 Playback" { formats "S16_LE" rate_min "48000" rate_max "48000" channels_min "2" channels_max "2" } SectionPCM."MultiMedia1 Playback" { index "1" # used for binding to the PCM id "1" dai."MultiMedia1 Playback" { id "1" } pcm."playback" { capabilities "MultiMedia1 Playback" } } SectionVendorTuples."stream.sub_graph1_tuples" { tokens "audioreach_tokens" tuples."word.u32_data" { AR_TKN_U32_SUB_GRAPH_INSTANCE_ID "0x00004001" AR_TKN_DAI_INDEX "1" AR_TKN_U32_SUB_GRAPH_PERF_MODE "0x2" AR_TKN_U32_SUB_GRAPH_DIRECTION "0x2" AR_TKN_U32_SUB_GRAPH_SCENARIO_ID "0x1" } } SectionData."stream.sub_graph1_data" { tuples "stream.sub_graph1_tuples" } SectionVendorTuples."stream.container1_tuples" { tokens "audioreach_tokens" tuples."word.u32_data" { AR_TKN_U32_CONAINER_INSTANCE_ID "0x00004001" AR_TKN_U32_CONAINER_CAPABILITY_ID "0x2" AR_TKN_U32_CONAINER_STACK_SIZE "8192" AR_TKN_U32_CONAINER_GRAPH_POS "0x1" AR_TKN_U32_CONAINER_PROC_DOMAIN "0x2" } } SectionData."stream.container1_data" { tuples "stream.container1_tuples" } SectionVendorTuples."stream.wrsh_ep1_tuples" { tokens "audioreach_tokens" tuples."word.u32_data" { AR_TKN_U32_MODULE_INSTANCE_ID "0x00006001" AR_TKN_U32_MODULE_ID "0x07001000" AR_TKN_U32_MODULE_MAX_IP_PORTS "0" AR_TKN_U32_MODULE_MAX_OP_PORTS "1" AR_TKN_U32_MODULE_IN_PORTS "0" AR_TKN_U32_MODULE_OUT_PORTS "0" AR_TKN_U32_MODULE_SRC_OP_PORT_ID "0" AR_TKN_U32_MODULE_DST_IN_PORT_ID "2" } } SectionData."stream.wrsh_ep1_data" { tuples "stream.wrsh_ep1_tuples" } SectionWidget."stream.wrsh_ep1" { index "1" type "aif_in" no_pm "true" stream_name "MultiMedia1 Playback" event_type "1" event_flags "15" subseq "10" data [ "stream.sub_graph1_data" "stream.container1_data" "stream.wrsh_ep1_data" ] } SectionVendorTuples."stream.pcm_decoder1_tuples" { tokens "audioreach_tokens" tuples."word.u32_data" { AR_TKN_U32_MODULE_INSTANCE_ID "24578" AR_TKN_U32_MODULE_ID "0x07001005" AR_TKN_U32_MODULE_MAX_IP_PORTS "1" AR_TKN_U32_MODULE_MAX_OP_PORTS "1" AR_TKN_U32_MODULE_IN_PORTS "2" AR_TKN_U32_MODULE_OUT_PORTS "1" AR_TKN_U32_MODULE_SRC_OP_PORT_ID "1" AR_TKN_U32_MODULE_DST_IN_PORT_ID "2" AR_TKN_U32_MODULE_FMT_INTERLEAVE "1" } } SectionData."stream.pcm_decoder1_data" { tuples "stream.pcm_decoder1_tuples" } SectionWidget."stream.pcm_decoder1" { index "1" type "decoder" no_pm "true" event_type "1" event_flags "15" subseq "10" data [ "stream.sub_graph1_data" "stream.container1_data" "stream.pcm_decoder1_data" ] } SectionVendorTuples."stream.pcm_converter1_tuples" { tokens "audioreach_tokens" tuples."word.u32_data" { AR_TKN_U32_MODULE_INSTANCE_ID "24579" AR_TKN_U32_MODULE_ID "0x07001003" AR_TKN_U32_MODULE_MAX_IP_PORTS "1" AR_TKN_U32_MODULE_MAX_OP_PORTS "1" AR_TKN_U32_MODULE_IN_PORTS "2" AR_TKN_U32_MODULE_OUT_PORTS "1" AR_TKN_U32_MODULE_SRC_OP_PORT_ID "1" AR_TKN_U32_MODULE_DST_IN_PORT_ID "2" AR_TKN_U32_MODULE_FMT_INTERLEAVE "3" } } SectionData."stream.pcm_converter1_data" { tuples "stream.pcm_converter1_tuples" } SectionWidget."stream.pcm_converter1" { index "1" type "src" no_pm "true" event_type "1" event_flags "15" subseq "10" data [ "stream.sub_graph1_data" "stream.container1_data" "stream.pcm_converter1_data" ] } SectionVendorTuples."stream.vol_ctrl1_tuples" { tokens "audioreach_tokens" tuples."word.u32_data" { AR_TKN_U32_MODULE_INSTANCE_ID "24580" AR_TKN_U32_MODULE_ID "0x0700101B" AR_TKN_U32_MODULE_MAX_IP_PORTS "1" AR_TKN_U32_MODULE_MAX_OP_PORTS "1" AR_TKN_U32_MODULE_IN_PORTS "2" AR_TKN_U32_MODULE_OUT_PORTS "1" AR_TKN_U32_MODULE_SRC_OP_PORT_ID "1" AR_TKN_U32_MODULE_DST_IN_PORT_ID "2" } } SectionData."stream.vol_ctrl1_data" { tuples "stream.vol_ctrl1_tuples" } SectionWidget."stream.vol_ctrl1" { index "1" type "pga" no_pm "true" event_type "1" event_flags "15" subseq "10" data [ "stream.sub_graph1_data" "stream.container1_data" "stream.vol_ctrl1_data" ] mixer [ "Master Playback Volume" ] } SectionVendorTuples."stream.logger1_tuples" { tokens "audioreach_tokens" tuples."word.u32_data" { AR_TKN_U32_MODULE_INSTANCE_ID "24581" AR_TKN_U32_MODULE_ID "0x0700101A" AR_TKN_U32_MODULE_MAX_IP_PORTS "1" AR_TKN_U32_MODULE_MAX_OP_PORTS "1" AR_TKN_U32_MODULE_IN_PORTS "2" AR_TKN_U32_MODULE_OUT_PORTS "1" AR_TKN_U32_MODULE_SRC_OP_PORT_ID "1" AR_TKN_U32_MODULE_DST_IN_PORT_ID "2" AR_TKN_U32_MODULE_LOG_CODE "0x000019af" AR_TKN_U32_MODULE_LOG_TAP_POINT_ID "1" AR_TKN_U32_MODULE_LOG_MODE "0" } } SectionData."stream.logger1_data" { tuples "stream.logger1_tuples" } SectionWidget."stream.logger1" { index "1" type "buffer" no_pm "true" event_type "1" event_flags "15" subseq "10" data [ "stream.sub_graph1_data" "stream.container1_data" "stream.logger1_data" ] } SectionControlMixer."PCM1" { reg "-1" index "1" max "1" invert "false" channel."fl" { reg "-1" max "1" } ops."ctl" { get "256" put "256" info "1" } data [ "stream.sub_graph1_data" ] } SectionGraph."stream.1 Graph" { index "1" lines [ "stream.pcm_decoder1, , stream.wrsh_ep1" "stream.pcm_converter1, , stream.pcm_decoder1" "stream.vol_ctrl1, , stream.pcm_converter1" "stream.logger1, , stream.vol_ctrl1" ] } # # SubGraph for Device Backend # # ______________________ # | Sub Graph | # | [LOG] -> [DEVICE EP] | # |______________________| SectionVendorTuples."device.sub_graph3_tuples" { tokens "audioreach_tokens" tuples."word.u32_data" { AR_TKN_U32_SUB_GRAPH_INSTANCE_ID "0x00004003" AR_TKN_DAI_INDEX "105" AR_TKN_U32_SUB_GRAPH_PERF_MODE "0x2" AR_TKN_U32_SUB_GRAPH_DIRECTION "0x1" AR_TKN_U32_SUB_GRAPH_SCENARIO_ID "0x1" } } SectionData."device.sub_graph3_data" { tuples "device.sub_graph3_tuples" } SectionVendorTuples."device.container3_tuples" { tokens "audioreach_tokens" tuples."word.u32_data" { AR_TKN_U32_CONAINER_INSTANCE_ID "0x00004003" AR_TKN_U32_CONAINER_CAPABILITY_ID "0x3" AR_TKN_U32_CONAINER_STACK_SIZE "8192" AR_TKN_U32_CONAINER_GRAPH_POS "0x1" AR_TKN_U32_CONAINER_PROC_DOMAIN "0x2" } } SectionData."device.container3_data" { tuples "device.container3_tuples" } SectionVendorTuples."device.logger3_tuples" { tokens "audioreach_tokens" tuples."word.u32_data" { AR_TKN_U32_MODULE_INSTANCE_ID "0x00006030" AR_TKN_U32_MODULE_ID "0x0700101A" AR_TKN_U32_MODULE_MAX_IP_PORTS "1" AR_TKN_U32_MODULE_MAX_OP_PORTS "1" AR_TKN_U32_MODULE_IN_PORTS "2" AR_TKN_U32_MODULE_OUT_PORTS "1" AR_TKN_U32_MODULE_SRC_OP_PORT_ID "1" AR_TKN_U32_MODULE_DST_IN_PORT_ID "2" AR_TKN_U32_MODULE_LOG_CODE "0x000019ab" AR_TKN_U32_MODULE_LOG_TAP_POINT_ID "1" AR_TKN_U32_MODULE_LOG_MODE "0" } } SectionData."device.logger3_data" { tuples "device.logger3_tuples" } SectionWidget."device.logger3" { index "3" type "buffer" no_pm "true" event_type "1" event_flags "15" subseq "10" data [ "device.sub_graph3_data" "device.container3_data" "device.logger3_data" ] } SectionVendorTuples."device.codec_dma_rx3_tuples" { tokens "audioreach_tokens" tuples."word.u32_data" { AR_TKN_U32_MODULE_INSTANCE_ID "24625" AR_TKN_U32_MODULE_ID "0x07001023" AR_TKN_U32_MODULE_MAX_IP_PORTS "1" AR_TKN_U32_MODULE_MAX_OP_PORTS "0" AR_TKN_U32_MODULE_IN_PORTS "2" AR_TKN_U32_MODULE_OUT_PORTS "0" AR_TKN_U32_MODULE_SRC_OP_PORT_ID "1" AR_TKN_U32_MODULE_DST_IN_PORT_ID "0" AR_TKN_U32_MODULE_HW_IF_TYPE "2" AR_TKN_U32_MODULE_HW_IF_IDX "1" AR_TKN_U32_MODULE_FMT_DATA "1" } } SectionData."device.codec_dma_rx3_data" { tuples "device.codec_dma_rx3_tuples" } SectionWidget."WSA_CODEC_DMA_RX_0" { index "3" type "aif_in" stream_name "WSA_CODEC_DMA_RX_0 Playback" no_pm "true" event_type "1" event_flags "15" subseq "10" data [ "device.sub_graph3_data" "device.container3_data" "device.codec_dma_rx3_data" ] } SectionGraph."device.3 WSA_CODEC_DMA_RX_0 Graph" { index "3" lines [ "device.logger3, , WSA_CODEC_DMA_RX_0 Audio Mixer" "WSA_CODEC_DMA_RX_0, , device.logger3" ] } SectionWidget."WSA_CODEC_DMA_RX_0 Audio Mixer" { reg "-1" index "3" type "mixer" mixer [ PCM1 ] data [ "device.sub_graph3_data" ] } SectionGraph."WSA_CODEC_DMA_RX_0 Audio Mixer Graph" { index "3" lines [ "WSA_CODEC_DMA_RX_0 Audio Mixer, PCM1, stream.logger1" ] }