[PATCH 0/7] qrb4210-rb2: add HDMI audio playback support
First time I am doing anything like this. This series adds mising pieces here and there to allow addition of sensible sound card in qrb4210-rb2.dts and enable HDMI audio playback there.
It is planned in future to add support for other outputs and capture -- analog audio support.
The series depends on Srini's sm4250 lpi pinctrl driver: c2e5a25e8d88 (pinctrl: qcom: Introduce SM4250 LPI pinctrl driver, 2024-06-22) 2ffa7a354662 (dt-bindings: pinctrl: qcom: Add SM4250 pinctrl, 2024-06-22) As far as I understood it was already accepted and will go through pinctrl tree.
Alexey Klimov (7): ASoC: dt-bindings: qcom,sm8250: add qrb4210-rb2-sndcard ASoC: qcom: sm8250: add qrb4210-rb2-sndcard compatible string ASoC: qcom: sm8250: add handling of secondary MI2S clock arm64: dts: qcom: sm6115: add apr, its services and simple sound node arm64: dts: qcom: sm6115: add LPASS LPI pin controller arm64: dts: qcom: sm6115: add description of lpi_i2s2 pins arm64: dts: qcom: qrb4210-rb2: add HDMI audio playback support
.../bindings/sound/qcom,sm8250.yaml | 1 + arch/arm64/boot/dts/qcom/qrb4210-rb2.dts | 73 ++++++++++++ arch/arm64/boot/dts/qcom/sm6115.dtsi | 112 ++++++++++++++++++ sound/soc/qcom/sm8250.c | 19 +++ 4 files changed, 205 insertions(+)
Add adsp-backed soundcard compatible for QRB4210 RB2 platform, which as of now looks fully compatible with SM8250.
Signed-off-by: Alexey Klimov alexey.klimov@linaro.org --- Documentation/devicetree/bindings/sound/qcom,sm8250.yaml | 1 + 1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml b/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml index b2e15ebbd1bc..a92ac8501138 100644 --- a/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml +++ b/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml @@ -31,6 +31,7 @@ properties: - qcom,msm8916-qdsp6-sndcard - qcom,qcm6490-idp-sndcard - qcom,qcs6490-rb3gen2-sndcard + - qcom,qrb4210-rb2-sndcard - qcom,qrb5165-rb5-sndcard - qcom,sc7180-qdsp6-sndcard - qcom,sc8280xp-sndcard
On 28/06/2024 03:07, Alexey Klimov wrote:
Add adsp-backed soundcard compatible for QRB4210 RB2 platform, which as of now looks fully compatible with SM8250.
Signed-off-by: Alexey Klimov alexey.klimov@linaro.org
Documentation/devicetree/bindings/sound/qcom,sm8250.yaml | 1 + 1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml b/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml index b2e15ebbd1bc..a92ac8501138 100644 --- a/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml +++ b/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml @@ -31,6 +31,7 @@ properties: - qcom,msm8916-qdsp6-sndcard - qcom,qcm6490-idp-sndcard - qcom,qcs6490-rb3gen2-sndcard
- qcom,qrb4210-rb2-sndcard
Looks like fully compatible with sm8250, no?
Best regards, Krzysztof
Add "qcom,qrb4210-rb2-sndcard" to the list of recognizable devices.
Signed-off-by: Alexey Klimov alexey.klimov@linaro.org --- sound/soc/qcom/sm8250.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/sound/soc/qcom/sm8250.c b/sound/soc/qcom/sm8250.c index a15dafb99b33..50e175fd521c 100644 --- a/sound/soc/qcom/sm8250.c +++ b/sound/soc/qcom/sm8250.c @@ -166,6 +166,7 @@ static int sm8250_platform_probe(struct platform_device *pdev)
static const struct of_device_id snd_sm8250_dt_match[] = { {.compatible = "qcom,sm8250-sndcard"}, + {.compatible = "qcom,qrb4210-rb2-sndcard"}, {.compatible = "qcom,qrb5165-rb5-sndcard"}, {} };
On 28/06/2024 03:07, Alexey Klimov wrote:
Add "qcom,qrb4210-rb2-sndcard" to the list of recognizable devices.
Signed-off-by: Alexey Klimov alexey.klimov@linaro.org
sound/soc/qcom/sm8250.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/sound/soc/qcom/sm8250.c b/sound/soc/qcom/sm8250.c index a15dafb99b33..50e175fd521c 100644 --- a/sound/soc/qcom/sm8250.c +++ b/sound/soc/qcom/sm8250.c @@ -166,6 +166,7 @@ static int sm8250_platform_probe(struct platform_device *pdev)
static const struct of_device_id snd_sm8250_dt_match[] = { {.compatible = "qcom,sm8250-sndcard"},
- {.compatible = "qcom,qrb4210-rb2-sndcard"},
Drop, not really needed.
Best regards, Krzysztof
Add apr (asynchronous packet router) node and its associated services required to enable audio on QRB4210 RB2 platform. Also, add an empty sound{} device node. This allows board dts files to fill in required board specific properties.
Signed-off-by: Alexey Klimov alexey.klimov@linaro.org --- arch/arm64/boot/dts/qcom/sm6115.dtsi | 59 ++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm6115.dtsi b/arch/arm64/boot/dts/qcom/sm6115.dtsi index aca0a87092e4..c49aca3d0772 100644 --- a/arch/arm64/boot/dts/qcom/sm6115.dtsi +++ b/arch/arm64/boot/dts/qcom/sm6115.dtsi @@ -14,6 +14,7 @@ #include <dt-bindings/interconnect/qcom,sm6115.h> #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/power/qcom-rpmpd.h> +#include <dt-bindings/soc/qcom,apr.h> #include <dt-bindings/thermal/thermal.h>
/ { @@ -2695,6 +2696,64 @@ glink-edge { qcom,remote-pid = <2>; mboxes = <&apcs_glb 8>;
+ apr { + compatible = "qcom,apr-v2"; + qcom,glink-channels = "apr_audio_svc"; + qcom,domain = <APR_DOMAIN_ADSP>; + #address-cells = <1>; + #size-cells = <0>; + + service@3 { + reg = <APR_SVC_ADSP_CORE>; + compatible = "qcom,q6core"; + qcom,protection-domain = "avs/audio", + "msm/adsp/audio_pd"; + }; + + q6afe: service@4 { + compatible = "qcom,q6afe"; + reg = <APR_SVC_AFE>; + qcom,protection-domain = "avs/audio", + "msm/adsp/audio_pd"; + q6afedai: dais { + compatible = "qcom,q6afe-dais"; + #address-cells = <1>; + #size-cells = <0>; + #sound-dai-cells = <1>; + }; + + q6afecc: clock-controller { + compatible = "qcom,q6afe-clocks"; + #clock-cells = <2>; + }; + }; + + q6asm: service@7 { + compatible = "qcom,q6asm"; + reg = <APR_SVC_ASM>; + qcom,protection-domain = "avs/audio", + "msm/adsp/audio_pd"; + q6asmdai: dais { + compatible = "qcom,q6asm-dais"; + #address-cells = <1>; + #size-cells = <0>; + #sound-dai-cells = <1>; + iommus = <&apps_smmu 0x1c1 0x0>; + }; + }; + + q6adm: service@8 { + compatible = "qcom,q6adm"; + reg = <APR_SVC_ADM>; + qcom,protection-domain = "avs/audio", + "msm/adsp/audio_pd"; + q6routing: routing { + compatible = "qcom,q6adm-routing"; + #sound-dai-cells = <0>; + }; + }; + }; + fastrpc { compatible = "qcom,fastrpc"; qcom,glink-channels = "fastrpcglink-apps-dsp";
On 28/06/2024 03:07, Alexey Klimov wrote:
Add apr (asynchronous packet router) node and its associated services required to enable audio on QRB4210 RB2 platform. Also, add an empty sound{} device node. This allows board dts files to fill in required board specific properties.
Signed-off-by: Alexey Klimov alexey.klimov@linaro.org
arch/arm64/boot/dts/qcom/sm6115.dtsi | 59 ++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+)
Reviewed-by: Krzysztof Kozlowski krzysztof.kozlowski@linaro.org
Best regards, Krzysztof
On Fri, Jun 28, 2024 at 02:07:12AM GMT, Alexey Klimov wrote:
Add apr (asynchronous packet router) node and its associated services required to enable audio on QRB4210 RB2 platform. Also, add an empty sound{} device node. This allows board dts files to fill in required board specific properties.
There is no sound {} node. LGTM otherwise.
Signed-off-by: Alexey Klimov alexey.klimov@linaro.org
arch/arm64/boot/dts/qcom/sm6115.dtsi | 59 ++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+)
On 28.06.2024 3:07 AM, Alexey Klimov wrote:
Add apr (asynchronous packet router) node and its associated services required to enable audio on QRB4210 RB2 platform. Also, add an empty sound{} device node. This allows board dts files to fill in required board specific properties.
Signed-off-by: Alexey Klimov alexey.klimov@linaro.org
Reviewed-by: Konrad Dybcio konrad.dybcio@linaro.org
Konrad
This is required to enable to HDMI audio playback on QRB4210 RB2 board.
Signed-off-by: Alexey Klimov alexey.klimov@linaro.org --- arch/arm64/boot/dts/qcom/sm6115.dtsi | 34 ++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm6115.dtsi b/arch/arm64/boot/dts/qcom/sm6115.dtsi index 3a9fb1780c90..5487b274836f 100644 --- a/arch/arm64/boot/dts/qcom/sm6115.dtsi +++ b/arch/arm64/boot/dts/qcom/sm6115.dtsi @@ -823,6 +823,40 @@ lpass_tlmm: pinctrl@a7c0000 { gpio-ranges = <&lpass_tlmm 0 0 26>;
status = "disabled"; + + lpi_i2s2_active: lpi-i2s2-active-state { + sck-pin { + pins = "gpio10"; + function = "i2s2_clk"; + bias-disable; + drive-strength = <8>; + output-high; + }; + + ws-pins { + pins = "gpio11"; + function = "i2s2_ws"; + bias-disable; + drive-strength = <8>; + output-high; + }; + + data-pins { + pins = "gpio12"; + function = "i2s2_data"; + bias-disable; + drive-strength = <8>; + output-high; + }; + + ext-mclk1 { + pins = "gpio18"; + function = "ext_mclk1_a"; + bias-disable; + drive-strength = <16>; + output-high; + }; + }; };
gcc: clock-controller@1400000 {
On 28/06/2024 03:07, Alexey Klimov wrote:
This is required to enable to HDMI audio playback on QRB4210 RB2 board.
This should be squashed with previous patch. You add one node of pinctrl with all of the default pins. You also miss soundwire and dmic pins.
Best regards, Krzysztof
On Fri, Jun 28, 2024 at 02:07:14AM GMT, Alexey Klimov wrote:
This is required to enable to HDMI audio playback on QRB4210 RB2 board.
Are they SoC-specific or board-specific? In the latter case it might be more suitable to move them to the board DT file.
Signed-off-by: Alexey Klimov alexey.klimov@linaro.org
arch/arm64/boot/dts/qcom/sm6115.dtsi | 34 ++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+)
Add handling of clock related to secondary MI2S_RX in sm8250_snd_startup() and sm2450_snd_shutdown().
Signed-off-by: Alexey Klimov alexey.klimov@linaro.org --- sound/soc/qcom/sm8250.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)
diff --git a/sound/soc/qcom/sm8250.c b/sound/soc/qcom/sm8250.c index 50e175fd521c..9864d803114d 100644 --- a/sound/soc/qcom/sm8250.c +++ b/sound/soc/qcom/sm8250.c @@ -55,6 +55,14 @@ static int sm8250_snd_startup(struct snd_pcm_substream *substream) struct snd_soc_dai *codec_dai = snd_soc_rtd_to_codec(rtd, 0);
switch (cpu_dai->id) { + case SECONDARY_MI2S_RX: + codec_dai_fmt |= SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_I2S; + snd_soc_dai_set_sysclk(cpu_dai, + Q6AFE_LPASS_CLK_ID_SEC_MI2S_IBIT, + MI2S_BCLK_RATE, SNDRV_PCM_STREAM_PLAYBACK); + snd_soc_dai_set_fmt(cpu_dai, fmt); + snd_soc_dai_set_fmt(codec_dai, codec_dai_fmt); + break; case TERTIARY_MI2S_RX: codec_dai_fmt |= SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_I2S; snd_soc_dai_set_sysclk(cpu_dai, @@ -77,6 +85,16 @@ static void sm2450_snd_shutdown(struct snd_pcm_substream *substream) struct sm8250_snd_data *data = snd_soc_card_get_drvdata(rtd->card); struct sdw_stream_runtime *sruntime = data->sruntime[cpu_dai->id];
+ switch (cpu_dai->id) { + case SECONDARY_MI2S_RX: + snd_soc_dai_set_sysclk(cpu_dai, + Q6AFE_LPASS_CLK_ID_SEC_MI2S_IBIT, + 0, SNDRV_PCM_STREAM_PLAYBACK); + break; + default: + break; + } + data->sruntime[cpu_dai->id] = NULL; sdw_release_stream(sruntime); }
Add sound node, dsp-related pieces and LPASS pinctrl to enable HDMI audio support on Qualcomm QRB4210 RB2 board. That is the only sound output supported for now.
Signed-off-by: Alexey Klimov alexey.klimov@linaro.org --- arch/arm64/boot/dts/qcom/qrb4210-rb2.dts | 73 ++++++++++++++++++++++++ 1 file changed, 73 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts index 2c39bb1b97db..9f4dde927be4 100644 --- a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts +++ b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts @@ -6,6 +6,8 @@ /dts-v1/;
#include <dt-bindings/leds/common.h> +#include <dt-bindings/sound/qcom,q6afe.h> +#include <dt-bindings/sound/qcom,q6asm.h> #include <dt-bindings/usb/pd.h> #include "sm4250.dtsi" #include "pm6125.dtsi" @@ -230,6 +232,10 @@ lt9611_out: endpoint { }; };
+&lpass_tlmm { + status = "okay"; +}; + &mdss { status = "okay"; }; @@ -307,6 +313,28 @@ &pon_resin { status = "okay"; };
+&q6asmdai { + dai@0 { + reg = <0>; + }; + + dai@1 { + reg = <1>; + }; + + dai@2 { + reg = <2>; + }; +}; + +/* SECONDARY I2S Uses 1 I2S SD Lines for audio on LT9611 HDMI Bridge */ +&q6afedai { + dai@20 { + reg = <SECONDARY_MI2S_RX>; + qcom,sd-lines = <0>; + }; +}; + &qupv3_id_0 { status = "okay"; }; @@ -535,6 +563,51 @@ &sleep_clk { clock-frequency = <32000>; };
+&sound { + compatible = "qcom,qrb4210-rb2-sndcard"; + pinctrl-0 = <&lpi_i2s2_active>; + pinctrl-names = "default"; + model = "Qualcomm-RB2-WSA8815-Speakers-DMIC0"; + audio-routing = "MM_DL1", "MultiMedia1 Playback", + "MM_DL2", "MultiMedia2 Playback"; + + mm1-dai-link { + link-name = "MultiMedia1"; + cpu { + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>; + }; + }; + + mm2-dai-link { + link-name = "MultiMedia2"; + cpu { + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>; + }; + }; + + mm3-dai-link { + link-name = "MultiMedia3"; + cpu { + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>; + }; + }; + + hdmi-dai-link { + link-name = "HDMI Playback"; + cpu { + sound-dai = <&q6afedai SECONDARY_MI2S_RX>; + }; + + platform { + sound-dai = <&q6routing>; + }; + + codec { + sound-dai = <<9611_codec 0>; + }; + }; +}; + &tlmm { gpio-reserved-ranges = <43 2>, <49 1>, <54 1>, <56 3>, <61 2>, <64 1>,
On 28/06/2024 03:07, Alexey Klimov wrote:
Add sound node, dsp-related pieces and LPASS pinctrl to enable HDMI audio support on Qualcomm QRB4210 RB2 board. That is the only sound output supported for now.
Signed-off-by: Alexey Klimov alexey.klimov@linaro.org
arch/arm64/boot/dts/qcom/qrb4210-rb2.dts | 73 ++++++++++++++++++++++++ 1 file changed, 73 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts index 2c39bb1b97db..9f4dde927be4 100644 --- a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts +++ b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts @@ -6,6 +6,8 @@ /dts-v1/;
#include <dt-bindings/leds/common.h> +#include <dt-bindings/sound/qcom,q6afe.h> +#include <dt-bindings/sound/qcom,q6asm.h> #include <dt-bindings/usb/pd.h> #include "sm4250.dtsi" #include "pm6125.dtsi" @@ -230,6 +232,10 @@ lt9611_out: endpoint { }; };
+&lpass_tlmm {
- status = "okay";
Why LPASS TLMM was disabled? I do not see any missing resource.
Drop.
Best regards, Krzysztof
On Fri, Jun 28, 2024 at 02:07:15AM GMT, Alexey Klimov wrote:
Add sound node, dsp-related pieces and LPASS pinctrl to enable HDMI audio support on Qualcomm QRB4210 RB2 board. That is the only sound output supported for now.
I see that you have also added the MultiMedia DAIs, which don't seem to be used with this patch.
Signed-off-by: Alexey Klimov alexey.klimov@linaro.org
arch/arm64/boot/dts/qcom/qrb4210-rb2.dts | 73 ++++++++++++++++++++++++ 1 file changed, 73 insertions(+)
+&sound {
- compatible = "qcom,qrb4210-rb2-sndcard";
- pinctrl-0 = <&lpi_i2s2_active>;
- pinctrl-names = "default";
- model = "Qualcomm-RB2-WSA8815-Speakers-DMIC0";
- audio-routing = "MM_DL1", "MultiMedia1 Playback",
"MM_DL2", "MultiMedia2 Playback";
- mm1-dai-link {
link-name = "MultiMedia1";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
};
- };
- mm2-dai-link {
link-name = "MultiMedia2";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
};
- };
- mm3-dai-link {
link-name = "MultiMedia3";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
};
- };
- hdmi-dai-link {
link-name = "HDMI Playback";
cpu {
sound-dai = <&q6afedai SECONDARY_MI2S_RX>;
};
platform {
sound-dai = <&q6routing>;
};
codec {
sound-dai = <<9611_codec 0>;
};
- };
+};
&tlmm { gpio-reserved-ranges = <43 2>, <49 1>, <54 1>, <56 3>, <61 2>, <64 1>, -- 2.45.2
On 28.06.2024 3:07 AM, Alexey Klimov wrote:
Add sound node, dsp-related pieces and LPASS pinctrl to enable HDMI audio support on Qualcomm QRB4210 RB2 board. That is the only sound output supported for now.
Signed-off-by: Alexey Klimov alexey.klimov@linaro.org
[...]
+&q6asmdai {
- dai@0 {
reg = <0>;
- };
- dai@1 {
reg = <1>;
- };
- dai@2 {
reg = <2>;
- };
Should these DAIs be moved to the SoC node?
Konrad
Add the Low Power Audio SubSystem Low Power Island (LPASS LPI) pin controller device node required for audio subsystem on Qualcomm QRB4210 RB2.
Signed-off-by: Alexey Klimov alexey.klimov@linaro.org --- arch/arm64/boot/dts/qcom/sm6115.dtsi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm6115.dtsi b/arch/arm64/boot/dts/qcom/sm6115.dtsi index c49aca3d0772..3a9fb1780c90 100644 --- a/arch/arm64/boot/dts/qcom/sm6115.dtsi +++ b/arch/arm64/boot/dts/qcom/sm6115.dtsi @@ -15,6 +15,7 @@ #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/power/qcom-rpmpd.h> #include <dt-bindings/soc/qcom,apr.h> +#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h> #include <dt-bindings/thermal/thermal.h>
/ { @@ -809,6 +810,21 @@ data-pins { }; };
+ lpass_tlmm: pinctrl@a7c0000 { + compatible = "qcom,sm4250-lpass-lpi-pinctrl"; + reg = <0x0 0xa7c0000 0x0 0x20000>, + <0x0 0xa950000 0x0 0x10000>; + + clocks = <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>; + clock-names = "audio"; + + gpio-controller; + #gpio-cells = <2>; + gpio-ranges = <&lpass_tlmm 0 0 26>; + + status = "disabled"; + }; + gcc: clock-controller@1400000 { compatible = "qcom,gcc-sm6115"; reg = <0x0 0x01400000 0x0 0x1f0000>; @@ -3068,6 +3084,9 @@ cpufreq_hw: cpufreq@f521000 { }; };
+ sound: sound { + }; + thermal-zones { mapss-thermal { polling-delay-passive = <0>;
On 28/06/2024 03:07, Alexey Klimov wrote:
Add the Low Power Audio SubSystem Low Power Island (LPASS LPI) pin controller device node required for audio subsystem on Qualcomm QRB4210 RB2.
Signed-off-by: Alexey Klimov alexey.klimov@linaro.org
gcc: clock-controller@1400000 { compatible = "qcom,gcc-sm6115"; reg = <0x0 0x01400000 0x0 0x1f0000>;
@@ -3068,6 +3084,9 @@ cpufreq_hw: cpufreq@f521000 { }; };
- sound: sound {
- };
That's not really needed and does not bring much of benefits.
Best regards, Krzysztof
On Fri, Jun 28, 2024 at 02:07:13AM GMT, Alexey Klimov wrote:
Add the Low Power Audio SubSystem Low Power Island (LPASS LPI) pin controller device node required for audio subsystem on Qualcomm QRB4210 RB2.
Signed-off-by: Alexey Klimov alexey.klimov@linaro.org
arch/arm64/boot/dts/qcom/sm6115.dtsi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm6115.dtsi b/arch/arm64/boot/dts/qcom/sm6115.dtsi index c49aca3d0772..3a9fb1780c90 100644 --- a/arch/arm64/boot/dts/qcom/sm6115.dtsi +++ b/arch/arm64/boot/dts/qcom/sm6115.dtsi @@ -15,6 +15,7 @@ #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/power/qcom-rpmpd.h> #include <dt-bindings/soc/qcom,apr.h> +#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h> #include <dt-bindings/thermal/thermal.h>
/ { @@ -809,6 +810,21 @@ data-pins { }; };
lpass_tlmm: pinctrl@a7c0000 {
compatible = "qcom,sm4250-lpass-lpi-pinctrl";
Is it so? Or should it be qcom,sm6115-lpass-lpi-pinctrl instead?
reg = <0x0 0xa7c0000 0x0 0x20000>,
<0x0 0xa950000 0x0 0x10000>;
clocks = <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
clock-names = "audio";
gpio-controller;
#gpio-cells = <2>;
gpio-ranges = <&lpass_tlmm 0 0 26>;
status = "disabled";
};
- gcc: clock-controller@1400000 { compatible = "qcom,gcc-sm6115"; reg = <0x0 0x01400000 0x0 0x1f0000>;
On 28/06/2024 09:43, Dmitry Baryshkov wrote:
On Fri, Jun 28, 2024 at 02:07:13AM GMT, Alexey Klimov wrote:
Add the Low Power Audio SubSystem Low Power Island (LPASS LPI) pin controller device node required for audio subsystem on Qualcomm QRB4210 RB2.
Signed-off-by: Alexey Klimov alexey.klimov@linaro.org
arch/arm64/boot/dts/qcom/sm6115.dtsi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm6115.dtsi b/arch/arm64/boot/dts/qcom/sm6115.dtsi index c49aca3d0772..3a9fb1780c90 100644 --- a/arch/arm64/boot/dts/qcom/sm6115.dtsi +++ b/arch/arm64/boot/dts/qcom/sm6115.dtsi @@ -15,6 +15,7 @@ #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/power/qcom-rpmpd.h> #include <dt-bindings/soc/qcom,apr.h> +#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h> #include <dt-bindings/thermal/thermal.h>
/ { @@ -809,6 +810,21 @@ data-pins { }; };
lpass_tlmm: pinctrl@a7c0000 {
compatible = "qcom,sm4250-lpass-lpi-pinctrl";
Is it so? Or should it be qcom,sm6115-lpass-lpi-pinctrl instead?
Eh, now I am confused as well... There was so much talk about Srini's patchset that I assumed it is the same device. Why were you testing sm4250?
Best regards, Krzysztof
On Fri, 28 Jun 2024 02:07:08 +0100, Alexey Klimov wrote:
First time I am doing anything like this. This series adds mising pieces here and there to allow addition of sensible sound card in qrb4210-rb2.dts and enable HDMI audio playback there.
It is planned in future to add support for other outputs and capture -- analog audio support.
The series depends on Srini's sm4250 lpi pinctrl driver: c2e5a25e8d88 (pinctrl: qcom: Introduce SM4250 LPI pinctrl driver, 2024-06-22) 2ffa7a354662 (dt-bindings: pinctrl: qcom: Add SM4250 pinctrl, 2024-06-22) As far as I understood it was already accepted and will go through pinctrl tree.
Alexey Klimov (7): ASoC: dt-bindings: qcom,sm8250: add qrb4210-rb2-sndcard ASoC: qcom: sm8250: add qrb4210-rb2-sndcard compatible string ASoC: qcom: sm8250: add handling of secondary MI2S clock arm64: dts: qcom: sm6115: add apr, its services and simple sound node arm64: dts: qcom: sm6115: add LPASS LPI pin controller arm64: dts: qcom: sm6115: add description of lpi_i2s2 pins arm64: dts: qcom: qrb4210-rb2: add HDMI audio playback support
.../bindings/sound/qcom,sm8250.yaml | 1 + arch/arm64/boot/dts/qcom/qrb4210-rb2.dts | 73 ++++++++++++ arch/arm64/boot/dts/qcom/sm6115.dtsi | 112 ++++++++++++++++++ sound/soc/qcom/sm8250.c | 19 +++ 4 files changed, 205 insertions(+)
-- 2.45.2
My bot found new DTB warnings on the .dts files added or changed in this series.
Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings are fixed by another series. Ultimately, it is up to the platform maintainer whether these warnings are acceptable or not. No need to reply unless the platform maintainer has comments.
If you already ran DT checks and didn't see these error(s), then make sure dt-schema is up to date:
pip3 install dtschema --upgrade
New warnings running 'make CHECK_DTBS=y qcom/qrb4210-rb2.dtb' for 20240628010715.438471-1-alexey.klimov@linaro.org:
arch/arm64/boot/dts/qcom/qrb4210-rb2.dtb: /soc@0/pinctrl@a7c0000: failed to match any schema with compatible: ['qcom,sm4250-lpass-lpi-pinctrl']
participants (5)
-
Alexey Klimov
-
Dmitry Baryshkov
-
Konrad Dybcio
-
Krzysztof Kozlowski
-
Krzysztof Kozlowski
-
Rob Herring (Arm)