Add devicetree bindings documentation file for sc7280 sound card
registration.
Signed-off-by: Srinivasa Rao Mandadapu <[email protected]>
---
.../bindings/sound/google,sc7280-herobrine.yaml | 169 +++++++++++++++++++++
1 file changed, 169 insertions(+)
create mode 100644 Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
diff --git a/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml b/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
new file mode 100644
index 0000000..e0d705f
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
@@ -0,0 +1,169 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/google,sc7280-herobrine.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Google SC7280-Herobrine ASoC sound card driver
+
+maintainers:
+ - Srinivasa Rao Mandadapu <[email protected]>
+ - Judy Hsiao <[email protected]>
+
+description:
+ This binding describes the SC7280 sound card which uses LPASS for audio.
+
+properties:
+ compatible:
+ enum:
+ - google,sc7280-herobrine
+
+ 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.
+
+ model:
+ $ref: /schemas/types.yaml#/definitions/string
+ description: User specified audio sound card name
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+patternProperties:
+ "^dai-link@[0-9a-f]$":
+ 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
+
+ reg:
+ maxItems: 1
+ description: dai link address.
+
+ cpu:
+ description: Holds subnode which indicates cpu 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
+ - codec
+
+ additionalProperties: false
+
+required:
+ - compatible
+ - model
+ - "#address-cells"
+ - "#size-cells"
+
+additionalProperties: false
+
+examples:
+
+ - |
+ #include <dt-bindings/sound/qcom,lpass.h>
+ sound {
+ compatible = "google,sc7280-herobrine";
+ model = "sc7280-wcd938x-max98360a-4dmic";
+
+ audio-routing =
+ "IN1_HPHL", "HPHL_OUT",
+ "IN2_HPHR", "HPHR_OUT",
+ "AMIC1", "MIC BIAS1",
+ "AMIC2", "MIC BIAS2",
+ "VA DMIC0", "MIC BIAS3",
+ "VA DMIC1", "MIC BIAS3",
+ "VA DMIC2", "MIC BIAS4",
+ "VA DMIC3", "MIC BIAS4",
+ "TX SWR_ADC0", "ADC1_OUTPUT",
+ "TX SWR_ADC1", "ADC2_OUTPUT",
+ "TX SWR_ADC2", "ADC3_OUTPUT",
+ "TX SWR_DMIC0", "DMIC1_OUTPUT",
+ "TX SWR_DMIC1", "DMIC2_OUTPUT",
+ "TX SWR_DMIC2", "DMIC3_OUTPUT",
+ "TX SWR_DMIC3", "DMIC4_OUTPUT";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ dai-link@0 {
+ link-name = "WCD Playback";
+ reg = <LPASS_CDC_DMA_RX0>;
+ cpu {
+ sound-dai = <&lpass_cpu LPASS_CDC_DMA_RX0>;
+ };
+
+ codec {
+ sound-dai = <&wcd938x 0>, <&swr0 0>, <&rxmacro 0>;
+ };
+ };
+ dai-link@1 {
+ link-name = "WCD Capture";
+ reg = <LPASS_CDC_DMA_TX3>;
+ cpu {
+ sound-dai = <&lpass_cpu LPASS_CDC_DMA_TX3>;
+ };
+
+ codec {
+ sound-dai = <&wcd938x 1>, <&swr1 0>, <&txmacro 0>;
+ };
+ };
+
+ dai-link@2 {
+ link-name = "MI2S Playback";
+ reg = <MI2S_SECONDARY>;
+ cpu {
+ sound-dai = <&lpass_cpu MI2S_SECONDARY>;
+ };
+
+ codec {
+ sound-dai = <&max98360a>;
+ };
+ };
+
+ dai-link@3 {
+ link-name = "DMIC Capture";
+ reg = <LPASS_CDC_DMA_VA_TX0>;
+ cpu {
+ sound-dai = <&lpass_cpu LPASS_CDC_DMA_VA_TX0>;
+ };
+
+ codec {
+ sound-dai = <&vamacro 0>;
+ };
+ };
+
+ dai-link@5 {
+ link-name = "DP Playback";
+ reg = <LPASS_DP_RX>;
+ cpu {
+ sound-dai = <&lpass_cpu LPASS_DP_RX>;
+ };
+
+ codec {
+ sound-dai = <&mdss_dp>;
+ };
+ };
+ };
--
Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc.,
is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.
Quoting Srinivasa Rao Mandadapu (2021-09-13 06:17:41)
> diff --git a/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml b/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
> new file mode 100644
> index 0000000..e0d705f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
> @@ -0,0 +1,169 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/google,sc7280-herobrine.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Google SC7280-Herobrine ASoC sound card driver
> +
> +maintainers:
> + - Srinivasa Rao Mandadapu <[email protected]>
> + - Judy Hsiao <[email protected]>
> +
> +description:
> + This binding describes the SC7280 sound card which uses LPASS for audio.
> +
> +properties:
> + compatible:
> + enum:
> + - google,sc7280-herobrine
> +
> + 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.
> +
> + model:
> + $ref: /schemas/types.yaml#/definitions/string
> + description: User specified audio sound card name
> +
> + "#address-cells":
> + const: 1
> +
> + "#size-cells":
> + const: 0
> +
> +patternProperties:
> + "^dai-link@[0-9a-f]$":
> + 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
> +
> + reg:
> + maxItems: 1
> + description: dai link address.
> +
> + cpu:
> + description: Holds subnode which indicates cpu dai.
> + type: object
> + properties:
> + sound-dai: true
Shouldn't sound-dai be required?
> +
> + codec:
> + description: Holds subnode which indicates codec dai.
> + type: object
> + properties:
> + sound-dai: true
Shouldn't sound-dai be required? I don't know but maybe also additional
properties is false for this node too?
> +
> + required:
> + - link-name
> + - cpu
> + - codec
Should 'reg' be required?
> +
> + additionalProperties: false
On Mon, 13 Sep 2021 18:47:41 +0530, Srinivasa Rao Mandadapu wrote:
> Add devicetree bindings documentation file for sc7280 sound card
> registration.
>
> Signed-off-by: Srinivasa Rao Mandadapu <[email protected]>
> ---
> .../bindings/sound/google,sc7280-herobrine.yaml | 169 +++++++++++++++++++++
> 1 file changed, 169 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
>
My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):
yamllint warnings/errors:
dtschema/dtc warnings/errors:
Error: Documentation/devicetree/bindings/sound/google,sc7280-herobrine.example.dts:46.24-25 syntax error
FATAL ERROR: Unable to parse input tree
make[1]: *** [scripts/Makefile.lib:385: Documentation/devicetree/bindings/sound/google,sc7280-herobrine.example.dt.yaml] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:1441: dt_binding_check] Error 2
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/patch/1527380
This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit.
On 9/14/2021 1:21 AM, Stephen Boyd wrote:
> Quoting Srinivasa Rao Mandadapu (2021-09-13 06:17:41)
>> diff --git a/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml b/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
>> new file mode 100644
>> index 0000000..e0d705f
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
>> @@ -0,0 +1,169 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/sound/google,sc7280-herobrine.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Google SC7280-Herobrine ASoC sound card driver
>> +
>> +maintainers:
>> + - Srinivasa Rao Mandadapu <[email protected]>
>> + - Judy Hsiao <[email protected]>
>> +
>> +description:
>> + This binding describes the SC7280 sound card which uses LPASS for audio.
>> +
>> +properties:
>> + compatible:
>> + enum:
>> + - google,sc7280-herobrine
>> +
>> + 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.
>> +
>> + model:
>> + $ref: /schemas/types.yaml#/definitions/string
>> + description: User specified audio sound card name
>> +
>> + "#address-cells":
>> + const: 1
>> +
>> + "#size-cells":
>> + const: 0
>> +
>> +patternProperties:
>> + "^dai-link@[0-9a-f]$":
>> + 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
>> +
>> + reg:
>> + maxItems: 1
>> + description: dai link address.
>> +
>> + cpu:
>> + description: Holds subnode which indicates cpu dai.
>> + type: object
>> + properties:
>> + sound-dai: true
> Shouldn't sound-dai be required?
Sorry. I didn't get your Query. You mean in below "required:" properties
need to add sound-dai also?
>
>> +
>> + codec:
>> + description: Holds subnode which indicates codec dai.
>> + type: object
>> + properties:
>> + sound-dai: true
> Shouldn't sound-dai be required? I don't know but maybe also additional
> properties is false for this node too?
>
>> +
>> + required:
>> + - link-name
>> + - cpu
>> + - codec
> Should 'reg' be required?
Okay. I think reg is required. will check and update it.
>
>> +
>> + additionalProperties: false
--
Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc.,
is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.
Quoting Srinivasa Rao Mandadapu (2021-09-15 04:15:43)
>
> On 9/14/2021 1:21 AM, Stephen Boyd wrote:
> > Quoting Srinivasa Rao Mandadapu (2021-09-13 06:17:41)
> >> diff --git a/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml b/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
> >> new file mode 100644
> >> index 0000000..e0d705f
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
> >> +patternProperties:
> >> + "^dai-link@[0-9a-f]$":
> >> + 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
> >> +
> >> + reg:
> >> + maxItems: 1
> >> + description: dai link address.
> >> +
> >> + cpu:
> >> + description: Holds subnode which indicates cpu dai.
> >> + type: object
> >> + properties:
> >> + sound-dai: true
> > Shouldn't sound-dai be required?
> Sorry. I didn't get your Query. You mean in below "required:" properties
> need to add sound-dai also?
I'd expect there to be a required: list for the 'cpu' and 'codec'
objects that says sound-dai, unless that is implicit somehow. I'm
definitely not an expert in the DT yaml, but I suspect two more
'required:' sections are needed so that 'sound-dai' isn't an optional
property.