2023-01-05 14:14:50

by Srinivasa Rao Mandadapu

[permalink] [raw]
Subject: [PATCH v2 4/8] arm64: dts: qcom: sc7280: audioreach: Update VA/RX/TX macro clock nodes

Update VA, RX and TX macro and lpass_tlmm clock properties and
enable them.

Signed-off-by: Srinivasa Rao Mandadapu <[email protected]>
Tested-by: Mohammad Rafi Shaik <[email protected]>
---
.../qcom/sc7280-herobrine-audioreach-wcd9385.dtsi | 62 ++++++++++++++++++++++
1 file changed, 62 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine-audioreach-wcd9385.dtsi b/arch/arm64/boot/dts/qcom/sc7280-herobrine-audioreach-wcd9385.dtsi
index e1fe56c..8c55753 100644
--- a/arch/arm64/boot/dts/qcom/sc7280-herobrine-audioreach-wcd9385.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280-herobrine-audioreach-wcd9385.dtsi
@@ -8,6 +8,10 @@

#include <dt-bindings/sound/qcom,q6afe.h>

+/delete-node/ &lpass_rx_macro;
+/delete-node/ &lpass_tx_macro;
+/delete-node/ &lpass_va_macro;
+
/{
/* BOARD-SPECIFIC TOP LEVEL NODES */
sound: sound {
@@ -107,3 +111,61 @@
};
};
};
+
+&soc {
+ lpass_rx_macro: codec@3200000 {
+ compatible = "qcom,sc7280-lpass-rx-macro";
+ reg = <0 0x03200000 0 0x1000>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&lpass_rx_swr_clk>, <&lpass_rx_swr_data>;
+
+ clocks = <&q6prmcc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_CLK_ID_TX_CORE_NPL_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&lpass_va_macro>;
+
+ clock-names = "mclk", "npl", "macro", "dcodec", "fsgen";
+
+ #clock-cells = <0>;
+ #sound-dai-cells = <1>;
+ };
+
+ lpass_tx_macro: codec@3220000 {
+ compatible = "qcom,sc7280-lpass-tx-macro";
+ reg = <0 0x03220000 0 0x1000>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&lpass_tx_swr_clk>, <&lpass_tx_swr_data>;
+
+ clocks = <&q6prmcc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_CLK_ID_TX_CORE_NPL_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&lpass_va_macro>;
+
+ clock-names = "mclk", "npl", "macro", "dcodec", "fsgen";
+
+ #clock-cells = <0>;
+ #sound-dai-cells = <1>;
+
+ };
+
+ lpass_va_macro: codec@3370000 {
+ compatible = "qcom,sc7280-lpass-va-macro";
+ reg = <0 0x03370000 0 0x1000>;
+
+ pinctrl-0 = <&lpass_dmic01_clk>, <&lpass_dmic01_data>;
+ pinctrl-names = "default";
+
+ clocks = <&q6prmcc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+
+ clock-names = "mclk", "macro", "dcodec";
+
+ #clock-cells = <0>;
+ #sound-dai-cells = <1>;
+ };
+};
--
2.7.4


2023-01-10 12:04:13

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2 4/8] arm64: dts: qcom: sc7280: audioreach: Update VA/RX/TX macro clock nodes

On 05/01/2023 14:37, Srinivasa Rao Mandadapu wrote:
> Update VA, RX and TX macro and lpass_tlmm clock properties and
> enable them.
>
> Signed-off-by: Srinivasa Rao Mandadapu <[email protected]>
> Tested-by: Mohammad Rafi Shaik <[email protected]>
> ---
> .../qcom/sc7280-herobrine-audioreach-wcd9385.dtsi | 62 ++++++++++++++++++++++
> 1 file changed, 62 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine-audioreach-wcd9385.dtsi b/arch/arm64/boot/dts/qcom/sc7280-herobrine-audioreach-wcd9385.dtsi
> index e1fe56c..8c55753 100644
> --- a/arch/arm64/boot/dts/qcom/sc7280-herobrine-audioreach-wcd9385.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sc7280-herobrine-audioreach-wcd9385.dtsi
> @@ -8,6 +8,10 @@
>
> #include <dt-bindings/sound/qcom,q6afe.h>
>
> +/delete-node/ &lpass_rx_macro;
> +/delete-node/ &lpass_tx_macro;
> +/delete-node/ &lpass_va_macro;
> +
> /{
> /* BOARD-SPECIFIC TOP LEVEL NODES */
> sound: sound {
> @@ -107,3 +111,61 @@
> };
> };
> };
> +
> +&soc {
> + lpass_rx_macro: codec@3200000 {

These should be properties of DTSI. The SoC either has them or not. It's
not conditional or dual-setup...

> + compatible = "qcom,sc7280-lpass-rx-macro";
> + reg = <0 0x03200000 0 0x1000>;
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&lpass_rx_swr_clk>, <&lpass_rx_swr_data>;
> +
> + clocks = <&q6prmcc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&q6prmcc LPASS_CLK_ID_TX_CORE_NPL_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&lpass_va_macro>;
> +
> + clock-names = "mclk", "npl", "macro", "dcodec", "fsgen";
> +
> + #clock-cells = <0>;
> + #sound-dai-cells = <1>;
> + };

/home/krzk/dev/linux/linux/out/arch/arm64/boot/dts/qcom/sc7280-crd-r3.dtb:
codec@3370000: clock-names: 'oneOf' conditional failed, one must be fixed:
['mclk', 'macro', 'dcodec'] is too long
'core' was expected
From schema:
/home/krzk/dev/linux/linux/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
/home/krzk/dev/linux/linux/out/arch/arm64/boot/dts/qcom/sc7280-crd-r3.dtb:
codec@3370000: Unevaluated properties are not allowed ('clock-names' was
unexpected)
From schema:
/home/krzk/dev/linux/linux/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml
/home/krzk/dev/linux/linux/out/arch/arm64/boot/dts/qcom/sc7280-crd-r3.dtb:
audio@3987000: clocks: [[218, 4], [221, 12], [221, 11], [221, 6], [221,
8], [223, 8], [223, 5], [223, 6], [223, 7], [218, 10]] is too long
From schema:
/home/krzk/dev/linux/linux/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml
/home/krzk/dev/linux/linux/out/arch/arm64/boot/dts/qcom/sc7280-crd-r3.dtb:
audio@3987000: clock-names: 'oneOf' conditional failed, one must be fixed:
['aon_cc_audio_hm_h', 'audio_cc_ext_mclk0',
'core_cc_sysnoc_mport_core', 'core_cc_ext_if0_ibit',
'core_cc_ext_if1_ibit', 'audio_cc_codec_mem', 'audio_cc_codec_mem0',
'audio_cc_codec_mem1', 'audio_cc_codec_mem2', 'aon_cc_va_mem0'] is too long
'core_cc_sysnoc_mport_core' was expected
'audio_cc_codec_mem' was expected
'audio_cc_codec_mem0' was expected
'audio_cc_codec_mem1' was expected
'audio_cc_codec_mem2' was expected
'aon_cc_va_mem0' was expected
From schema:
/home/krzk/dev/linux/linux/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml

I posted recently several fixes, so some of the warnings might be
skipped. But I think you did not test this at all...

> +
> + lpass_tx_macro: codec@3220000 {
> + compatible = "qcom,sc7280-lpass-tx-macro";
> + reg = <0 0x03220000 0 0x1000>;
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&lpass_tx_swr_clk>, <&lpass_tx_swr_data>;
> +
> + clocks = <&q6prmcc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&q6prmcc LPASS_CLK_ID_TX_CORE_NPL_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&lpass_va_macro>;
> +
> + clock-names = "mclk", "npl", "macro", "dcodec", "fsgen";
> +
> + #clock-cells = <0>;
> + #sound-dai-cells = <1>;
> +

Drop blank line

> + };
> +
> + lpass_va_macro: codec@3370000 {
> + compatible = "qcom,sc7280-lpass-va-macro";
> + reg = <0 0x03370000 0 0x1000>;
> +
> + pinctrl-0 = <&lpass_dmic01_clk>, <&lpass_dmic01_data>;
> + pinctrl-names = "default";
> +
> + clocks = <&q6prmcc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
> +
> + clock-names = "mclk", "macro", "dcodec";
> +
> + #clock-cells = <0>;
> + #sound-dai-cells = <1>;
> + };
> +};

Best regards,
Krzysztof