From f91b94e5e989a5e946859a13daa1c69d90cf2b1a Mon Sep 17 00:00:00 2001 From: Hongyang Zhao Date: Mon, 30 Mar 2026 15:19:20 +0800 Subject: [PATCH] audioreach: qcs6490: add tertiary and quinary MI2S paths for RubikPi3 Add TERTIARY_MI2S_RX/TX and QUINARY_MI2S_RX/TX topology paths for QCS6490-Thundercomm-RubikPi3, together with the corresponding FE playback and capture routes. Current audio interfaces on the board are: - PRIMARY_MI2S_RX/TX: 3.5mm headset - QUATERNARY_MI2S_RX: HDMI OUT - TERTIARY_MI2S_RX/TX: 40-pin header I2S - QUINARY_MI2S_RX/TX: Bluetooth audio Signed-off-by: Hongyang Zhao --- QCS6490-Thundercomm-RubikPi3.m4 | 60 +++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/QCS6490-Thundercomm-RubikPi3.m4 b/QCS6490-Thundercomm-RubikPi3.m4 index 5c3c649..443fa08 100644 --- a/QCS6490-Thundercomm-RubikPi3.m4 +++ b/QCS6490-Thundercomm-RubikPi3.m4 @@ -24,10 +24,30 @@ STREAM_SG_PCM_ADD(audioreach/subgraph-stream-vol-playback.m4, FRONTEND_DAI_MULTI `S32_LE', 48000, 48000, 2, 2, 0x00004002, 0x00004002, 0x00006010, `110000') dnl +dnl Playback MultiMedia4 +STREAM_SG_PCM_ADD(audioreach/subgraph-stream-vol-playback.m4, FRONTEND_DAI_MULTIMEDIA4, + `S32_LE', 48000, 48000, 2, 2, + 0x00004004, 0x00004004, 0x00006030, `110000') +dnl +dnl Playback MultiMedia6 +STREAM_SG_PCM_ADD(audioreach/subgraph-stream-vol-playback.m4, FRONTEND_DAI_MULTIMEDIA6, + `S32_LE', 48000, 48000, 2, 2, + 0x00004011, 0x00004011, 0x00006080, `110000') +dnl dnl Capture MultiMedia3 STREAM_SG_PCM_ADD(audioreach/subgraph-stream-capture.m4, FRONTEND_DAI_MULTIMEDIA3, `S16_LE', 48000, 48000, 1, 2, 0x00004003, 0x00004003, 0x00006020, `110000') +dnl +dnl Capture MultiMedia5 +STREAM_SG_PCM_ADD(audioreach/subgraph-stream-capture.m4, FRONTEND_DAI_MULTIMEDIA5, + `S32_LE', 48000, 48000, 1, 2, + 0x00004008, 0x00004008, 0x00006040, `110000') +dnl +dnl Capture MultiMedia7 +STREAM_SG_PCM_ADD(audioreach/subgraph-stream-capture.m4, FRONTEND_DAI_MULTIMEDIA7, + `S32_LE', 48000, 48000, 1, 2, + 0x00004012, 0x00004012, 0x00006110, `110000') # # # Device SubGraph for WSA RX0 Backend @@ -54,12 +74,36 @@ DEVICE_SG_ADD(audioreach/subgraph-device-i2s-playback.m4, `Quaternary', QUATERNA LPAIF_INTF_TYPE_RXTX, I2S_INTF_TYPE_PRIMARY, SD_LINE_IDX_I2S_SD0, DATA_FORMAT_FIXED_POINT, 0x00004006, 0x00004006, 0x00006060, `QUATERNARY_MI2S_RX') dnl +dnl Tertiary MI2S Playback +DEVICE_SG_ADD(audioreach/subgraph-device-i2s-playback.m4, `Tertiary', TERTIARY_MI2S_RX, + `S32_LE', 48000, 48000, 2, 2, + LPAIF_INTF_TYPE_LPAIF, I2S_INTF_TYPE_TERTIARY, SD_LINE_IDX_I2S_SD1, DATA_FORMAT_FIXED_POINT, + 0x00004009, 0x00004009, 0x00006090, `TERTIARY_MI2S_RX') +dnl +dnl Quinary MI2S Playback +DEVICE_SG_ADD(audioreach/subgraph-device-i2s-playback.m4, `Quinary', QUINARY_MI2S_RX, + `S32_LE', 48000, 48000, 2, 2, + LPAIF_INTF_TYPE_LPAIF, I2S_INTF_TYPE_QUINARY, SD_LINE_IDX_I2S_SD0, DATA_FORMAT_FIXED_POINT, + 0x00004013, 0x00004013, 0x00006120, `QUINARY_MI2S_RX') +dnl dnl Primary MI2S Capture DEVICE_SG_ADD(audioreach/subgraph-device-i2s-capture.m4, `Primary', PRIMARY_MI2S_TX, `S16_LE', 48000, 48000, 1, 2, LPAIF_INTF_TYPE_LPAIF, I2S_INTF_TYPE_PRIMARY, SD_LINE_IDX_I2S_SD1, DATA_FORMAT_FIXED_POINT, 0x00004007, 0x00004007, 0x00006070, `PRIMARY_MI2S_TX', `PRIMARY_MI2S_TX') dnl +dnl Tertiary MI2S Capture +DEVICE_SG_ADD(audioreach/subgraph-device-i2s-capture.m4, `Tertiary', TERTIARY_MI2S_TX, + `S32_LE', 48000, 48000, 1, 2, + LPAIF_INTF_TYPE_LPAIF, I2S_INTF_TYPE_TERTIARY, SD_LINE_IDX_I2S_SD0, DATA_FORMAT_FIXED_POINT, + 0x00004010, 0x00004010, 0x00006100, `TERTIARY_MI2S_TX', `TERTIARY_MI2S_TX') +dnl +dnl Quinary MI2S Capture +DEVICE_SG_ADD(audioreach/subgraph-device-i2s-capture.m4, `Quinary', QUINARY_MI2S_TX, + `S32_LE', 48000, 48000, 1, 2, + LPAIF_INTF_TYPE_LPAIF, I2S_INTF_TYPE_QUINARY, SD_LINE_IDX_I2S_SD1, DATA_FORMAT_FIXED_POINT, + 0x00004014, 0x00004014, 0x00006130, `QUINARY_MI2S_TX', `QUINARY_MI2S_TX') +dnl STREAM_DEVICE_PLAYBACK_MIXER(PRIMARY_MI2S_RX, ``PRIMARY_MI2S_RX'', ``MultiMedia1'') STREAM_DEVICE_PLAYBACK_ROUTE(PRIMARY_MI2S_RX, ``PRIMARY_MI2S_RX Audio Mixer'', ``MultiMedia1, stream0.logger1'') @@ -67,7 +111,23 @@ STREAM_DEVICE_PLAYBACK_ROUTE(PRIMARY_MI2S_RX, ``PRIMARY_MI2S_RX Audio Mixer'', ` STREAM_DEVICE_PLAYBACK_MIXER(QUATERNARY_MI2S_RX, ``QUATERNARY_MI2S_RX'', ``MultiMedia2'') STREAM_DEVICE_PLAYBACK_ROUTE(QUATERNARY_MI2S_RX, ``QUATERNARY_MI2S_RX Audio Mixer'', ``MultiMedia2, stream1.logger1'') +STREAM_DEVICE_PLAYBACK_MIXER(TERTIARY_MI2S_RX, ``TERTIARY_MI2S_RX'', ``MultiMedia4'') +STREAM_DEVICE_PLAYBACK_ROUTE(TERTIARY_MI2S_RX, ``TERTIARY_MI2S_RX Audio Mixer'', ``MultiMedia4, stream3.logger1'') + +STREAM_DEVICE_PLAYBACK_MIXER(QUINARY_MI2S_RX, ``QUINARY_MI2S_RX'', ``MultiMedia6'') +STREAM_DEVICE_PLAYBACK_ROUTE(QUINARY_MI2S_RX, ``QUINARY_MI2S_RX Audio Mixer'', ``MultiMedia6, stream5.logger1'') + dnl STREAM_DEVICE_CAPTURE_MIXER(stream-index, kcontro1, kcontrol2... kcontrolN) STREAM_DEVICE_CAPTURE_MIXER(FRONTEND_DAI_MULTIMEDIA3, ``PRIMARY_MI2S_TX'') dnl STREAM_DEVICE_CAPTURE_ROUTE(stream-index, mixer-name, route1, route2.. routeN) STREAM_DEVICE_CAPTURE_ROUTE(FRONTEND_DAI_MULTIMEDIA3, ``MultiMedia3 Mixer'', ``PRIMARY_MI2S_TX, device17.logger1'') + +dnl STREAM_DEVICE_CAPTURE_MIXER(stream-index, kcontro1, kcontrol2... kcontrolN) +STREAM_DEVICE_CAPTURE_MIXER(FRONTEND_DAI_MULTIMEDIA5, ``TERTIARY_MI2S_TX'') +dnl STREAM_DEVICE_CAPTURE_ROUTE(stream-index, mixer-name, route1, route2.. routeN) +STREAM_DEVICE_CAPTURE_ROUTE(FRONTEND_DAI_MULTIMEDIA5, ``MultiMedia5 Mixer'', ``TERTIARY_MI2S_TX, device21.logger1'') + +dnl STREAM_DEVICE_CAPTURE_MIXER(stream-index, kcontro1, kcontrol2... kcontrolN) +STREAM_DEVICE_CAPTURE_MIXER(FRONTEND_DAI_MULTIMEDIA7, ``QUINARY_MI2S_TX'') +dnl STREAM_DEVICE_CAPTURE_ROUTE(stream-index, mixer-name, route1, route2.. routeN) +STREAM_DEVICE_CAPTURE_ROUTE(FRONTEND_DAI_MULTIMEDIA7, ``MultiMedia7 Mixer'', ``QUINARY_MI2S_TX, device128.logger1'')