diff mbox series

[v4,1/2] ASoC: google: dt-bindings: Add sc7280-herobrine machine bindings

Message ID 1635519876-7112-2-git-send-email-srivasam@codeaurora.org (mailing list archive)
State Superseded
Headers show
Series Machine driver to support LPASS SC7280 sound card registration | expand

Commit Message

Srinivasa Rao Mandadapu Oct. 29, 2021, 3:04 p.m. UTC
Add devicetree bindings documentation file for sc7280 sound card
registration.

Signed-off-by: Srinivasa Rao Mandadapu <srivasam@codeaurora.org>
---
 .../bindings/sound/google,sc7280-herobrine.yaml    | 170 +++++++++++++++++++++
 1 file changed, 170 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml

Comments

Stephen Boyd Oct. 29, 2021, 7:07 p.m. UTC | #1
Quoting Srinivasa Rao Mandadapu (2021-10-29 08:04:35)
> 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..3a781c8
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
> @@ -0,0 +1,170 @@
> +# 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 <srivasam@codeaurora.org>
> +  - Judy Hsiao <judyhsiao@chromium.org>
> +
> +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

Is sound-dai required? And additionalProperties is false? I think we
need that yet again.

> +
> +      codec:
> +        description: Holds subnode which indicates codec dai.
> +        type: object
> +        properties:
> +          sound-dai: true
> +

Same here.

> +    required:
> +      - link-name
> +      - cpu
> +      - codec
> +      - reg
> +
> +    additionalProperties: false
> +
Rob Herring (Arm) Oct. 29, 2021, 9:15 p.m. UTC | #2
On Fri, 29 Oct 2021 20:34:35 +0530, Srinivasa Rao Mandadapu wrote:
> Add devicetree bindings documentation file for sc7280 sound card
> registration.
> 
> Signed-off-by: Srinivasa Rao Mandadapu <srivasam@codeaurora.org>
> ---
>  .../bindings/sound/google,sc7280-herobrine.yaml    | 170 +++++++++++++++++++++
>  1 file changed, 170 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/1548069

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.
Srinivasa Rao Mandadapu Nov. 2, 2021, 10:56 a.m. UTC | #3
On 10/30/2021 12:37 AM, Stephen Boyd wrote:
Thanks for Your time Stephen!!!
> Quoting Srinivasa Rao Mandadapu (2021-10-29 08:04:35)
>> 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..3a781c8
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
>> @@ -0,0 +1,170 @@
>> +# 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 <srivasam@codeaurora.org>
>> +  - Judy Hsiao <judyhsiao@chromium.org>
>> +
>> +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
> Is sound-dai required? And additionalProperties is false? I think we
> need that yet again.
Okay. Will mark additionalPropertiesas true.
>
>> +
>> +      codec:
>> +        description: Holds subnode which indicates codec dai.
>> +        type: object
>> +        properties:
>> +          sound-dai: true
>> +
> Same here.
>
>> +    required:
>> +      - link-name
>> +      - cpu
>> +      - codec
>> +      - reg
>> +
>> +    additionalProperties: false
>> +
Rob Herring Nov. 6, 2021, 1:30 a.m. UTC | #4
On Tue, Nov 2, 2021 at 5:57 AM Srinivasa Rao Mandadapu
<srivasam@codeaurora.org> wrote:
>
>
> On 10/30/2021 12:37 AM, Stephen Boyd wrote:
> Thanks for Your time Stephen!!!
> > Quoting Srinivasa Rao Mandadapu (2021-10-29 08:04:35)
> >> 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..3a781c8
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
> >> @@ -0,0 +1,170 @@
> >> +# 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 <srivasam@codeaurora.org>
> >> +  - Judy Hsiao <judyhsiao@chromium.org>
> >> +
> >> +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
> > Is sound-dai required? And additionalProperties is false? I think we
> > need that yet again.
> Okay. Will mark additionalPropertiesas true.

'additiionalProperties: true' is almost never right. It's generally
only correct for schemas that are incomplete collections of
properties.

Rob
Srinivasa Rao Mandadapu Nov. 8, 2021, 7:35 a.m. UTC | #5
On 11/6/2021 7:00 AM, Rob Herring wrote:
Thanks for Your time Rob!!!
> On Tue, Nov 2, 2021 at 5:57 AM Srinivasa Rao Mandadapu
> <srivasam@codeaurora.org> wrote:
>>
>> On 10/30/2021 12:37 AM, Stephen Boyd wrote:
>> Thanks for Your time Stephen!!!
>>> Quoting Srinivasa Rao Mandadapu (2021-10-29 08:04:35)
>>>> 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..3a781c8
>>>> --- /dev/null
>>>> +++ b/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
>>>> @@ -0,0 +1,170 @@
>>>> +# 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 <srivasam@codeaurora.org>
>>>> +  - Judy Hsiao <judyhsiao@chromium.org>
>>>> +
>>>> +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
>>> Is sound-dai required? And additionalProperties is false? I think we
>>> need that yet again.
>> Okay. Will mark additionalPropertiesas true.
> 'additiionalProperties: true' is almost never right. It's generally
> only correct for schemas that are incomplete collections of
> properties.
>
> Rob

As per Stephen Suggestion. thought it's a solution.

The sound-dai required here, and same is fallowed in SC7180 machine 
driver bindings.

Could You please suggest better approach on this?
Rob Herring Nov. 8, 2021, 2 p.m. UTC | #6
On Mon, Nov 8, 2021 at 1:35 AM Srinivasa Rao Mandadapu
<srivasam@codeaurora.org> wrote:
>
>
> On 11/6/2021 7:00 AM, Rob Herring wrote:
> Thanks for Your time Rob!!!
> > On Tue, Nov 2, 2021 at 5:57 AM Srinivasa Rao Mandadapu
> > <srivasam@codeaurora.org> wrote:
> >>
> >> On 10/30/2021 12:37 AM, Stephen Boyd wrote:
> >> Thanks for Your time Stephen!!!
> >>> Quoting Srinivasa Rao Mandadapu (2021-10-29 08:04:35)
> >>>> 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..3a781c8
> >>>> --- /dev/null
> >>>> +++ b/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
> >>>> @@ -0,0 +1,170 @@
> >>>> +# 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 <srivasam@codeaurora.org>
> >>>> +  - Judy Hsiao <judyhsiao@chromium.org>
> >>>> +
> >>>> +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
> >>> Is sound-dai required? And additionalProperties is false? I think we
> >>> need that yet again.
> >> Okay. Will mark additionalPropertiesas true.
> > 'additiionalProperties: true' is almost never right. It's generally
> > only correct for schemas that are incomplete collections of
> > properties.
> >
> > Rob
>
> As per Stephen Suggestion. thought it's a solution.
>
> The sound-dai required here, and same is fallowed in SC7180 machine
> driver bindings.
>
> Could You please suggest better approach on this?

Exactly what Stephen said, add:

required:
  - sound-dai

additionalProperties: false
Srinivasa Rao Mandadapu Nov. 8, 2021, 2:19 p.m. UTC | #7
On 11/8/2021 7:30 PM, Rob Herring wrote:
Thanks for Your inputs Rob!!!
> On Mon, Nov 8, 2021 at 1:35 AM Srinivasa Rao Mandadapu
> <srivasam@codeaurora.org> wrote:
>>
>> On 11/6/2021 7:00 AM, Rob Herring wrote:
>> Thanks for Your time Rob!!!
>>> On Tue, Nov 2, 2021 at 5:57 AM Srinivasa Rao Mandadapu
>>> <srivasam@codeaurora.org> wrote:
>>>> On 10/30/2021 12:37 AM, Stephen Boyd wrote:
>>>> Thanks for Your time Stephen!!!
>>>>> Quoting Srinivasa Rao Mandadapu (2021-10-29 08:04:35)
>>>>>> 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..3a781c8
>>>>>> --- /dev/null
>>>>>> +++ b/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
>>>>>> @@ -0,0 +1,170 @@
>>>>>> +# 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 <srivasam@codeaurora.org>
>>>>>> +  - Judy Hsiao <judyhsiao@chromium.org>
>>>>>> +
>>>>>> +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
>>>>> Is sound-dai required? And additionalProperties is false? I think we
>>>>> need that yet again.
>>>> Okay. Will mark additionalPropertiesas true.
>>> 'additiionalProperties: true' is almost never right. It's generally
>>> only correct for schemas that are incomplete collections of
>>> properties.
>>>
>>> Rob
>> As per Stephen Suggestion. thought it's a solution.
>>
>> The sound-dai required here, and same is fallowed in SC7180 machine
>> driver bindings.
>>
>> Could You please suggest better approach on this?
> Exactly what Stephen said, add:
>
> required:
>    - sound-dai
>
> additionalProperties: false

Okay. Then changes looks like below snippet. Please correct me If I am 
wrong.

  ------
  ------

       codec:
         description: Holds subnode which indicates codec dai.
         type: object
         properties:
           sound-dai: true

     required:
       - link-name
       - cpu
       - codec
       - reg
*- sound-dai*

     additionalProperties: false

required:
   - compatible
   - model
   - "#address-cells"
   - "#size-cells"

additionalProperties: false

-------
-------
diff mbox series

Patch

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..3a781c8
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
@@ -0,0 +1,170 @@ 
+# 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 <srivasam@codeaurora.org>
+  - Judy Hsiao <judyhsiao@chromium.org>
+
+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
+      - reg
+
+    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>;
+            };
+        };
+    };