Message ID | 20201026170947.10567-2-srinivas.kandagatla@linaro.org |
---|---|
State | Accepted |
Commit | 765c37598494cdb6c8f833e8e46f494af5c7d39e |
Headers | show |
Series | ASoC: qcom: add support for QRB5165 RB5 machine | expand |
On 28/10/2020 15:01, Rob Herring wrote: > On Mon, Oct 26, 2020 at 05:09:46PM +0000, Srinivas Kandagatla wrote: >> This patch adds bindings required for SM8250 based soundcards >> for example Qualcomm Robotics RB5 Development Kit which makes >> use of ADSP and Internal LPASS codec. > > You didn't send to DT list... Ah.. my bad.. I did not realize that I missed it! > >> >> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> >> --- >> .../bindings/sound/qcom,sm8250.yaml | 161 ++++++++++++++++++ >> 1 file changed, 161 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/sound/qcom,sm8250.yaml >> >> diff --git a/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml b/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml >> new file mode 100644 >> index 000000000000..b8f97fe6e92c >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml >> @@ -0,0 +1,161 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/sound/qcom,sm8250.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Qualcomm Technologies Inc. SM8250 ASoC sound card driver >> + >> +maintainers: >> + - Srinivas Kandagatla <srinivas.kandagatla@linaro.org> >> + >> +description: >> + This bindings describes SC8250 SoC based sound cards >> + which uses LPASS internal codec for audio. >> + >> +properties: >> + compatible: >> + oneOf: >> + - const: qcom,qrb5165-rb5 >> + - items: >> + - const: qcom,sm8250 > > This collides with the top level SoC compatible resulting in: > I did run dt_binding_check before sending out this patch, I might have missed it somehow because the make dt_binding_check did not end/termnitate in any errors, however if I had scrolled 15-20 Page ups it does have this error log! > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: $nodename:0: '/' was expected > From schema: /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/arm/qcom.yaml > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible: ['qcom,qrb5165-rb5'] is not valid under any of the given schemas (Possible causes of the failure): > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible: ['qcom,qrb5165-rb5'] is too short > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,apq8016-sbc'] > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,apq8064-cm-qs600', 'qcom,apq8064-ifc6410'] > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,apq8074-dragonboard'] > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,apq8060-dragonboard', 'qcom,msm8660-surf'] > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,apq8084-mtp', 'qcom,apq8084-sbc'] > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,msm8960-cdp'] > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['fairphone,fp2', 'lge,hammerhead', 'sony,xperia-amami', 'sony,xperia-castor', 'sony,xperia-honami'] > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,msm8916-mtp/1' was expected > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['longcheer,l8150', 'samsung,a3u-eur', 'samsung,a5u-eur'] > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,msm8996-mtp' was expected > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,ipq4019-ap-dk04.1-c3', 'qcom,ipq4019-ap-dk07.1-c1', 'qcom,ipq4019-ap-dk07.1-c2', 'qcom,ipq4019-dk04.1-c1'] > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,ipq8064-ap148'] > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,ipq8074-hk01', 'qcom,ipq8074-hk10-c1', 'qcom,ipq8074-hk10-c2'] > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,sc7180-idp'] > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['xiaomi,lavender'] > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,ipq6018-cp01-c1'] > > From schema: /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/arm/qcom.yaml > Documentation/devicetree/bindings/arm/qcom.yaml does have qcom,qrb5165-rb5 entry under [qcom,sm8250] Can you help me understand why is this not a valid compatible? > Also, the indentation is off: > ./Documentation/devicetree/bindings/sound/qcom,sm8250.yaml:21:9: [warning] wrong indentation: expected 10 but found 8 (indentation) > I will fix it! --srini >> + - const: qcom,qrb5165-rb5 >> + >> + audio-routing: >> + $ref: /schemas/types.yaml#/definitions/non-unique-string-array >> + description: >> + A list of the connections between audio components. Each entry is a >> + pair of strings, the first being the connection's sink, the second >> + being the connection's source. Valid names could be power supplies, >> + MicBias of codec and the jacks on the board. >> + >> + model: >> + $ref: /schemas/types.yaml#/definitions/string >> + description: User visible long sound card name >> + >> +patternProperties: >> + ".*-dai-link$": > > '.*' at the beginning is not necessary. > >> + description: >> + Each subnode represents a dai link. Subnodes of each dai links would be >> + cpu/codec dais. >> + >> + type: object >> + >> + properties: >> + link-name: >> + description: Indicates dai-link name and PCM stream name. >> + $ref: /schemas/types.yaml#/definitions/string >> + maxItems: 1 >> + >> + cpu: >> + description: Holds subnode which indicates cpu dai. >> + type: object >> + properties: >> + sound-dai: true >> + >> + platform: >> + description: Holds subnode which indicates platform dai. >> + type: object >> + properties: >> + sound-dai: true >> + >> + codec: >> + description: Holds subnode which indicates codec dai. >> + type: object >> + properties: >> + sound-dai: true >> + >> + required: >> + - link-name >> + - cpu >> + >> + additionalProperties: false >> + >> +required: >> + - compatible >> + - model >> + >> +additionalProperties: false >> + >> +examples: >> + >> + - | >> + #include <dt-bindings/sound/qcom,q6afe.h> >> + #include <dt-bindings/sound/qcom,q6asm.h> >> + sound { >> + compatible = "qcom,qrb5165-rb5"; >> + model = "Qualcomm-qrb5165-RB5-WSA8815-Speakers-DMIC0"; >> + audio-routing = "SpkrLeft IN", "WSA_SPK1 OUT", >> + "SpkrRight IN", "WSA_SPK2 OUT", >> + "VA DMIC0", "vdd-micb", >> + "VA DMIC1", "vdd-micb", >> + "MM_DL1", "MultiMedia1 Playback", >> + "MM_DL2", "MultiMedia2 Playback", >> + "MultiMedia3 Capture", "MM_UL3"; >> + >> + mm1-dai-link { >> + link-name = "MultiMedia0"; >> + 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 TERTIARY_MI2S_RX>; >> + }; >> + >> + platform { >> + sound-dai = <&q6routing>; >> + }; >> + >> + codec { >> + sound-dai = <<9611_codec 0>; >> + }; >> + }; >> + >> + wsa-dai-link { >> + link-name = "WSA Playback"; >> + cpu { >> + sound-dai = <&q6afedai WSA_CODEC_DMA_RX_0>; >> + }; >> + >> + platform { >> + sound-dai = <&q6routing>; >> + }; >> + >> + codec { >> + sound-dai = <&left_spkr>, <&right_spkr>, <&swr0 0>, <&wsamacro>; >> + }; >> + }; >> + >> + va-dai-link { >> + link-name = "VA Capture"; >> + cpu { >> + sound-dai = <&q6afedai VA_CODEC_DMA_TX_0>; >> + }; >> + >> + platform { >> + sound-dai = <&q6routing>; >> + }; >> + >> + codec { >> + sound-dai = <&vamacro 0>; >> + }; >> + }; >> + }; >> -- >> 2.21.0 >>
On Wed, Oct 28, 2020 at 10:19 AM Srinivas Kandagatla <srinivas.kandagatla@linaro.org> wrote: > > > > On 28/10/2020 15:01, Rob Herring wrote: > > On Mon, Oct 26, 2020 at 05:09:46PM +0000, Srinivas Kandagatla wrote: > >> This patch adds bindings required for SM8250 based soundcards > >> for example Qualcomm Robotics RB5 Development Kit which makes > >> use of ADSP and Internal LPASS codec. > > > > You didn't send to DT list... > > Ah.. my bad.. I did not realize that I missed it! > > > > >> > >> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > >> --- > >> .../bindings/sound/qcom,sm8250.yaml | 161 ++++++++++++++++++ > >> 1 file changed, 161 insertions(+) > >> create mode 100644 Documentation/devicetree/bindings/sound/qcom,sm8250.yaml > >> > >> diff --git a/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml b/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml > >> new file mode 100644 > >> index 000000000000..b8f97fe6e92c > >> --- /dev/null > >> +++ b/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml > >> @@ -0,0 +1,161 @@ > >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > >> +%YAML 1.2 > >> +--- > >> +$id: http://devicetree.org/schemas/sound/qcom,sm8250.yaml# > >> +$schema: http://devicetree.org/meta-schemas/core.yaml# > >> + > >> +title: Qualcomm Technologies Inc. SM8250 ASoC sound card driver > >> + > >> +maintainers: > >> + - Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > >> + > >> +description: > >> + This bindings describes SC8250 SoC based sound cards > >> + which uses LPASS internal codec for audio. > >> + > >> +properties: > >> + compatible: > >> + oneOf: > >> + - const: qcom,qrb5165-rb5 > >> + - items: > >> + - const: qcom,sm8250 > > > > This collides with the top level SoC compatible resulting in: > > > > I did run dt_binding_check before sending out this patch, I might have > missed it somehow because the make dt_binding_check did not > end/termnitate in any errors, however if I had scrolled 15-20 Page ups > it does have this error log! make -sk :) > > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: $nodename:0: '/' was expected > > From schema: /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/arm/qcom.yaml > > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible: ['qcom,qrb5165-rb5'] is not valid under any of the given schemas (Possible causes of the failure): > > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible: ['qcom,qrb5165-rb5'] is too short > > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,apq8016-sbc'] > > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,apq8064-cm-qs600', 'qcom,apq8064-ifc6410'] > > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,apq8074-dragonboard'] > > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,apq8060-dragonboard', 'qcom,msm8660-surf'] > > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,apq8084-mtp', 'qcom,apq8084-sbc'] > > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,msm8960-cdp'] > > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['fairphone,fp2', 'lge,hammerhead', 'sony,xperia-amami', 'sony,xperia-castor', 'sony,xperia-honami'] > > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,msm8916-mtp/1' was expected > > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['longcheer,l8150', 'samsung,a3u-eur', 'samsung,a5u-eur'] > > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,msm8996-mtp' was expected > > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,ipq4019-ap-dk04.1-c3', 'qcom,ipq4019-ap-dk07.1-c1', 'qcom,ipq4019-ap-dk07.1-c2', 'qcom,ipq4019-dk04.1-c1'] > > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,ipq8064-ap148'] > > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,ipq8074-hk01', 'qcom,ipq8074-hk10-c1', 'qcom,ipq8074-hk10-c2'] > > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,sc7180-idp'] > > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['xiaomi,lavender'] > > /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/sound/qcom,sm8250.example.dt.yaml: sound: compatible:0: 'qcom,qrb5165-rb5' is not one of ['qcom,ipq6018-cp01-c1'] > > > > From schema: /builds/robherring/linux-dt-bindings/Documentation/devicetree/bindings/arm/qcom.yaml > > > Documentation/devicetree/bindings/arm/qcom.yaml does have > qcom,qrb5165-rb5 entry under [qcom,sm8250] > > Can you help me understand why is this not a valid compatible? Those compatibles are used at the top level for the SoC. You can't use the same compatible to mean 2 different things. Rob
diff --git a/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml b/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml new file mode 100644 index 000000000000..b8f97fe6e92c --- /dev/null +++ b/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml @@ -0,0 +1,161 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/sound/qcom,sm8250.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Technologies Inc. SM8250 ASoC sound card driver + +maintainers: + - Srinivas Kandagatla <srinivas.kandagatla@linaro.org> + +description: + This bindings describes SC8250 SoC based sound cards + which uses LPASS internal codec for audio. + +properties: + compatible: + oneOf: + - const: qcom,qrb5165-rb5 + - items: + - const: qcom,sm8250 + - const: qcom,qrb5165-rb5 + + audio-routing: + $ref: /schemas/types.yaml#/definitions/non-unique-string-array + description: + A list of the connections between audio components. Each entry is a + pair of strings, the first being the connection's sink, the second + being the connection's source. Valid names could be power supplies, + MicBias of codec and the jacks on the board. + + model: + $ref: /schemas/types.yaml#/definitions/string + description: User visible long sound card name + +patternProperties: + ".*-dai-link$": + description: + Each subnode represents a dai link. Subnodes of each dai links would be + cpu/codec dais. + + type: object + + properties: + link-name: + description: Indicates dai-link name and PCM stream name. + $ref: /schemas/types.yaml#/definitions/string + maxItems: 1 + + cpu: + description: Holds subnode which indicates cpu dai. + type: object + properties: + sound-dai: true + + platform: + description: Holds subnode which indicates platform dai. + type: object + properties: + sound-dai: true + + codec: + description: Holds subnode which indicates codec dai. + type: object + properties: + sound-dai: true + + required: + - link-name + - cpu + + additionalProperties: false + +required: + - compatible + - model + +additionalProperties: false + +examples: + + - | + #include <dt-bindings/sound/qcom,q6afe.h> + #include <dt-bindings/sound/qcom,q6asm.h> + sound { + compatible = "qcom,qrb5165-rb5"; + model = "Qualcomm-qrb5165-RB5-WSA8815-Speakers-DMIC0"; + audio-routing = "SpkrLeft IN", "WSA_SPK1 OUT", + "SpkrRight IN", "WSA_SPK2 OUT", + "VA DMIC0", "vdd-micb", + "VA DMIC1", "vdd-micb", + "MM_DL1", "MultiMedia1 Playback", + "MM_DL2", "MultiMedia2 Playback", + "MultiMedia3 Capture", "MM_UL3"; + + mm1-dai-link { + link-name = "MultiMedia0"; + 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 TERTIARY_MI2S_RX>; + }; + + platform { + sound-dai = <&q6routing>; + }; + + codec { + sound-dai = <<9611_codec 0>; + }; + }; + + wsa-dai-link { + link-name = "WSA Playback"; + cpu { + sound-dai = <&q6afedai WSA_CODEC_DMA_RX_0>; + }; + + platform { + sound-dai = <&q6routing>; + }; + + codec { + sound-dai = <&left_spkr>, <&right_spkr>, <&swr0 0>, <&wsamacro>; + }; + }; + + va-dai-link { + link-name = "VA Capture"; + cpu { + sound-dai = <&q6afedai VA_CODEC_DMA_TX_0>; + }; + + platform { + sound-dai = <&q6routing>; + }; + + codec { + sound-dai = <&vamacro 0>; + }; + }; + };
This patch adds bindings required for SM8250 based soundcards for example Qualcomm Robotics RB5 Development Kit which makes use of ADSP and Internal LPASS codec. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> --- .../bindings/sound/qcom,sm8250.yaml | 161 ++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/qcom,sm8250.yaml