summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>2022-11-03 18:07:59 -0400
committerSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2023-01-19 09:30:12 +0000
commit44e324f424ecd3baeec3752f959bb5bd0f65ed7f (patch)
tree7ea37de0e6d1ea7ce36aee4ea651d1dca47a18bf
parentfd74e11133900f6b20a2c8956e603d2d83dcc284 (diff)
audioreach: initial, incomplete HDK8450 support
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
-rw-r--r--CMakeLists.txt1
-rw-r--r--SM8450-HDK.m473
2 files changed, 74 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3dc21ca..2cb659c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,6 +5,7 @@ cmake_minimum_required(VERSION 3.10)
set(TPLGS
"Qualcomm-RB5-WSA8815-Speakers-DMIC0\;Qualcomm-RB5-WSA8815-Speakers-DMIC0\;"
"SM8250-MTP-WCD9380-WSA8810-VA-DMIC\;SM8250-MTP-WCD9380-WSA8810-VA-DMIC\;"
+ "SM8450-HDK\;SM8450-HDK\;"
"SC8280XP-LENOVO-X13S\;SC8280XP-LENOVO-X13S\;"
"Google-SC7180-WSA-Speakers-SEC-I2S-VA-DMIC-WCD-TX3\;Google-SC7180-WSA-Speakers-SEC-I2S-VA-DMIC-WCD-TX3\;"
)
diff --git a/SM8450-HDK.m4 b/SM8450-HDK.m4
new file mode 100644
index 0000000..577e9fd
--- /dev/null
+++ b/SM8450-HDK.m4
@@ -0,0 +1,73 @@
+include(`audioreach/audioreach.m4')
+include(`audioreach/stream-subgraph.m4')
+include(`audioreach/device-subgraph.m4')
+include(`util/route.m4')
+include(`util/mixer.m4')
+include(`audioreach/tokens.m4')
+#
+# Stream SubGraph for MultiMedia Playback
+#
+# ______________________________________________
+# | Sub Graph 1 |
+# | [WR_SH] -> [PCM DEC] -> [PCM CONV] -> [LOG] |- Kcontrol
+# |______________________________________________|
+#
+dnl Playback MultiMedia1
+STREAM_SG_PCM_ADD(audioreach/subgraph-stream-vol-playback.m4, FRONTEND_DAI_MULTIMEDIA1,
+ `S16_LE', 48000, 48000, 2, 2,
+ 0x00004001, 0x00004001, 0x00006001)
+dnl Playback MultiMedia2
+STREAM_SG_PCM_ADD(audioreach/subgraph-stream-vol-playback.m4, FRONTEND_DAI_MULTIMEDIA2,
+ `S16_LE', 48000, 48000, 2, 2,
+ 0x00004002, 0x00004002, 0x00006010)
+dnl Capture MultiMedia3
+STREAM_SG_PCM_ADD(audioreach/subgraph-stream-capture.m4, FRONTEND_DAI_MULTIMEDIA3,
+ `S16_LE', 48000, 48000, 1, 2,
+ 0x00004003, 0x00004003, 0x00006020)
+dnl Capture MultiMedia4
+STREAM_SG_PCM_ADD(audioreach/subgraph-stream-capture.m4, FRONTEND_DAI_MULTIMEDIA4,
+ `S16_LE', 48000, 48000, 1, 2,
+ 0x00004004, 0x00004004, 0x00006030)
+#
+#
+# Device SubGraph for WSA RX0 Backend
+#
+# ___________________
+# | Sub Graph 2 |
+# Mixer -| [LOG] -> [WSA EP] |
+# |___________________|
+#
+dnl DEVICE_SG_ADD(stream, stream-dai-id, stream-index,
+dnl format, min-rate, max-rate, min-channels, max-channels,
+dnl interface-type, interface-index, data-format,
+dnl sg-iid-start, cont-iid-start, mod-iid-start
+dnl WSA Playback
+DEVICE_SG_ADD(audioreach/subgraph-device-codec-dma-playback.m4, `WSA_CODEC_DMA_RX_0', WSA_CODEC_DMA_RX_0,
+ `S16_LE', 48000, 48000, 2, 2,
+ LPAIF_INTF_TYPE_WSA, CODEC_INTF_IDX_RX0, 0, DATA_FORMAT_FIXED_POINT,
+ 0x00004005, 0x00004005, 0x00006050)
+dnl
+dnl WCDRX Playback
+DEVICE_SG_ADD(audioreach/subgraph-device-codec-dma-playback.m4, `RX_CODEC_DMA_RX_0', RX_CODEC_DMA_RX_0,
+ `S16_LE', 48000, 48000, 2, 2,
+ LPAIF_INTF_TYPE_RXTX, CODEC_INTF_IDX_RX0, 0, DATA_FORMAT_FIXED_POINT,
+ 0x00004007, 0x00004007, 0x00006070)
+dnl
+dnl WCDTX Capture
+DEVICE_SG_ADD(audioreach/subgraph-device-codec-dma-capture.m4, `TX_CODEC_DMA_TX_3', TX_CODEC_DMA_TX_3,
+ `S16_LE', 48000, 48000, 1, 2,
+ LPAIF_INTF_TYPE_RXTX, CODEC_INTF_IDX_TX3, 0, DATA_FORMAT_FIXED_POINT,
+ 0x00004009, 0x00004009, 0x00006090)
+
+STREAM_DEVICE_PLAYBACK_MIXER(WSA_CODEC_DMA_RX_0, ``WSA_CODEC_DMA_RX_0'', ``MultiMedia1'', ``MultiMedia2'')
+STREAM_DEVICE_PLAYBACK_MIXER(RX_CODEC_DMA_RX_0, ``RX_CODEC_DMA_RX_0'', ``MultiMedia1'', ``MultiMedia2'')
+
+STREAM_DEVICE_PLAYBACK_ROUTE(WSA_CODEC_DMA_RX_0, ``WSA_CODEC_DMA_RX_0 Audio Mixer'', ``MultiMedia1, stream1.logger1'', ``MultiMedia2, stream2.logger1'')
+STREAM_DEVICE_PLAYBACK_ROUTE(RX_CODEC_DMA_RX_0, ``RX_CODEC_DMA_RX_0 Audio Mixer'', ``MultiMedia1, stream1.logger1'', ``MultiMedia2, stream2.logger1'')
+
+dnl STREAM_DEVICE_CAPTURE_MIXER(stream-index, kcontro1, kcontrol2... kcontrolN)
+STREAM_DEVICE_CAPTURE_MIXER(FRONTEND_DAI_MULTIMEDIA3, ``TX_CODEC_DMA_TX_3'' )
+STREAM_DEVICE_CAPTURE_MIXER(FRONTEND_DAI_MULTIMEDIA4, ``TX_CODEC_DMA_TX_3'' )
+dnl STREAM_DEVICE_CAPTURE_ROUTE(stream-index, mixer-name, route1, route2.. routeN)
+STREAM_DEVICE_CAPTURE_ROUTE(FRONTEND_DAI_MULTIMEDIA3, ``MultiMedia3 Mixer'', ``TX_CODEC_DMA_TX_3, device120.logger1'')
+STREAM_DEVICE_CAPTURE_ROUTE(FRONTEND_DAI_MULTIMEDIA4, ``MultiMedia4 Mixer'', ``TX_CODEC_DMA_TX_3, device120.logger1'')