All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Sameer Pujar <spujar@nvidia.com>
Cc: devicetree@vger.kernel.org, alsa-devel@alsa-project.org,
	atalambedu@nvidia.com, linux-kernel@vger.kernel.org,
	tiwai@suse.com, lgirdwood@gmail.com, jonathanh@nvidia.com,
	viswanathl@nvidia.com, sharadg@nvidia.com, broonie@kernel.org,
	thierry.reding@gmail.com, linux-tegra@vger.kernel.org,
	digetx@gmail.com, rlokhande@nvidia.com, mkumard@nvidia.com,
	dramesh@nvidia.com
Subject: Re: [PATCH v3 01/10] dt-bindings: sound: tegra: add DT binding for AHUB
Date: Wed, 26 Feb 2020 10:02:52 -0600	[thread overview]
Message-ID: <20200226160252.GA3671@bogus> (raw)
In-Reply-To: <1582180492-25297-2-git-send-email-spujar@nvidia.com>

On Thu, Feb 20, 2020 at 12:04:43PM +0530, Sameer Pujar wrote:
> Audio Hub (AHUB) comprises a collection of hardware accelerators for audio
> pre-processing and post-processing and a programmable full crossbar for
> audio routing across these accelerators. This patch adds YAML schema for DT
> binding of AHUB and few of its following components. These devices will be
> registered as ASoC components.
>  * ADMAIF
>  * I2S
>  * DMIC
>  * DSPK
> 
> Signed-off-by: Sameer Pujar <spujar@nvidia.com>
> ---
>  .../bindings/sound/nvidia,tegra186-dspk.yaml       |  88 +++++++++++
>  .../bindings/sound/nvidia,tegra210-admaif.yaml     | 163 +++++++++++++++++++++
>  .../bindings/sound/nvidia,tegra210-ahub.yaml       | 110 ++++++++++++++
>  .../bindings/sound/nvidia,tegra210-dmic.yaml       |  88 +++++++++++
>  .../bindings/sound/nvidia,tegra210-i2s.yaml        | 101 +++++++++++++
>  5 files changed, 550 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra186-dspk.yaml
>  create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-admaif.yaml
>  create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml
>  create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-dmic.yaml
>  create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-i2s.yaml
> 
> diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra186-dspk.yaml b/Documentation/devicetree/bindings/sound/nvidia,tegra186-dspk.yaml
> new file mode 100644
> index 0000000..79c720d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra186-dspk.yaml
> @@ -0,0 +1,88 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/nvidia,tegra186-dspk.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Tegra186 DSPK Controller Device Tree Bindings
> +
> +description: |
> +  The Digital Speaker Controller (DSPK) can be viewed as a Pulse
> +  Density Modulation (PDM) transmitter that up-samples the input to
> +  the desired sampling rate by interpolation and then converts the
> +  over sampled Pulse Code Modulation (PCM) input to the desired 1-bit
> +  output via Delta Sigma Modulation (DSM).
> +
> +maintainers:
> +  - Jon Hunter <jonathanh@nvidia.com>
> +  - Sameer Pujar <spujar@nvidia.com>
> +
> +properties:
> +  $nodename:
> +    pattern: "^dspk@[0-9a-f]*$"
> +
> +  compatible:
> +    oneOf:
> +      - const: nvidia,tegra186-dspk
> +      - items:
> +          - const: nvidia,tegra194-dspk
> +          - const: nvidia,tegra186-dspk
> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    description: DSPK interface clock

Needs: 

maxItems: 1

I'd drop the description too. It's pretty generic...

> +
> +  clock-names:
> +    const: dspk
> +

> +  assigned-clocks:
> +    description: DSPK interface clock
> +
> +  assigned-clock-parents:
> +    description: Parent for DSPK interface clock
> +
> +  assigned-clock-rates:
> +    description: Initial rate of DSPK interface clock

maxItems: 1 for these 3.

> +
> +  "#sound-dai-cells":
> +    const: 1
> +
> +  sound-name-prefix:
> +    pattern: "^DSPK[1-9]$"
> +    allOf:
> +      - $ref: /schemas/types.yaml#/definitions/string
> +    description:
> +      Used as prefix for sink/source names of the component. Must be a
> +      unique string among multiple instances of the same component.
> +      The name can be "DSPK1" or "DSPKx", where x depends on the maximum
> +      available instances on a Tegra SoC.
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - clock-names
> +  - assigned-clocks
> +  - assigned-clock-parents
> +  - "#sound-dai-cells"
> +  - sound-name-prefix
> +
> +examples:
> +  - |
> +    #include<dt-bindings/clock/tegra186-clock.h>
> +
> +    dspk@2905000 {
> +        compatible = "nvidia,tegra186-dspk";
> +        reg = <0x2905000 0x100>;
> +        clocks = <&bpmp TEGRA186_CLK_DSPK1>;
> +        clock-names = "dspk";
> +        assigned-clocks = <&bpmp TEGRA186_CLK_DSPK1>;
> +        assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
> +        assigned-clock-rates = <12288000>;
> +        #sound-dai-cells = <1>;
> +        sound-name-prefix = "DSPK1";
> +    };
> +
> +...
> diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra210-admaif.yaml b/Documentation/devicetree/bindings/sound/nvidia,tegra210-admaif.yaml
> new file mode 100644
> index 0000000..46637c6a
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra210-admaif.yaml
> @@ -0,0 +1,163 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/nvidia,tegra210-admaif.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Tegra210 ADMAIF Device Tree Bindings
> +
> +description: |
> +  ADMAIF is the interface between ADMA and AHUB. Each ADMA channel
> +  that sends/receives data to/from AHUB must interface through an
> +  ADMAIF channel. ADMA channel sending data to AHUB pairs with ADMAIF
> +  Tx channel and ADMA channel receiving data from AHUB pairs with
> +  ADMAIF Rx channel.
> +
> +maintainers:
> +  - Jon Hunter <jonathanh@nvidia.com>
> +  - Sameer Pujar <spujar@nvidia.com>
> +
> +properties:
> +  $nodename:
> +    pattern: "^admaif@[0-9a-f]*$"
> +
> +  compatible:
> +    oneOf:
> +      - enum:
> +          - nvidia,tegra210-admaif
> +          - nvidia,tegra186-admaif
> +      - items:
> +          - const: nvidia,tegra194-admaif
> +          - const: nvidia,tegra186-admaif
> +
> +  reg:
> +    maxItems: 1
> +
> +  dmas: true
> +
> +  dma-names: true
> +
> +  "#sound-dai-cells":
> +    const: 1
> +
> +if:
> +  properties:
> +    compatible:
> +      contains:
> +        const: nvidia,tegra210-admaif
> +
> +then:
> +  properties:
> +    dmas:
> +      description:
> +        DMA channel specifiers, equally divided for Tx and Rx.
> +      minItems: 1
> +      maxItems: 20
> +    dma-names:
> +      items:
> +        pattern: "^[rt]x(10|[1-9])$"
> +      description:
> +        Should be "rx1", "rx2" ... "rx10" for DMA Rx channel
> +        Should be "tx1", "tx2" ... "tx10" for DMA Tx channel
> +      minItems: 1
> +      maxItems: 20
> +
> +else:
> +  properties:
> +    dmas:
> +      description:
> +        DMA channel specifiers, equally divided for Tx and Rx.
> +      minItems: 1
> +      maxItems: 40
> +    dma-names:
> +      items:
> +        pattern: "^[rt]x(1[0-9]|[1-9]|20)$"
> +      description:
> +        Should be "rx1", "rx2" ... "rx20" for DMA Rx channel
> +        Should be "tx1", "tx2" ... "tx20" for DMA Tx channel
> +      minItems: 1
> +      maxItems: 40
> +
> +required:
> +  - compatible
> +  - reg
> +  - dmas
> +  - dma-names
> +  - "#sound-dai-cells"
> +
> +examples:
> +  - |
> +    admaif@702d0000 {
> +        compatible = "nvidia,tegra210-admaif";
> +        reg = <0x702d0000 0x800>;
> +        dmas = <&adma 1>,  <&adma 1>,
> +               <&adma 2>,  <&adma 2>,
> +               <&adma 3>,  <&adma 3>,
> +               <&adma 4>,  <&adma 4>,
> +               <&adma 5>,  <&adma 5>,
> +               <&adma 6>,  <&adma 6>,
> +               <&adma 7>,  <&adma 7>,
> +               <&adma 8>,  <&adma 8>,
> +               <&adma 9>,  <&adma 9>,
> +               <&adma 10>, <&adma 10>;
> +        dma-names = "rx1",  "tx1",
> +                    "rx2",  "tx2",
> +                    "rx3",  "tx3",
> +                    "rx4",  "tx4",
> +                    "rx5",  "tx5",
> +                    "rx6",  "tx6",
> +                    "rx7",  "tx7",
> +                    "rx8",  "tx8",
> +                    "rx9",  "tx9",
> +                    "rx10", "tx10";
> +        #sound-dai-cells = <1>;
> +    };
> +
> +  - |
> +    admaif@290f000 {
> +        compatible = "nvidia,tegra186-admaif";
> +        reg = <0x0290f000 0x1000>;
> +        dmas = <&adma 1>, <&adma 1>,
> +               <&adma 2>, <&adma 2>,
> +               <&adma 3>, <&adma 3>,
> +               <&adma 4>, <&adma 4>,
> +               <&adma 5>, <&adma 5>,
> +               <&adma 6>, <&adma 6>,
> +               <&adma 7>, <&adma 7>,
> +               <&adma 8>, <&adma 8>,
> +               <&adma 9>, <&adma 9>,
> +               <&adma 10>, <&adma 10>,
> +               <&adma 11>, <&adma 11>,
> +               <&adma 12>, <&adma 12>,
> +               <&adma 13>, <&adma 13>,
> +               <&adma 14>, <&adma 14>,
> +               <&adma 15>, <&adma 15>,
> +               <&adma 16>, <&adma 16>,
> +               <&adma 17>, <&adma 17>,
> +               <&adma 18>, <&adma 18>,
> +               <&adma 19>, <&adma 19>,
> +               <&adma 20>, <&adma 20>;
> +        dma-names = "rx1", "tx1",
> +                    "rx2", "tx2",
> +                    "rx3", "tx3",
> +                    "rx4", "tx4",
> +                    "rx5", "tx5",
> +                    "rx6", "tx6",
> +                    "rx7", "tx7",
> +                    "rx8", "tx8",
> +                    "rx9", "tx9",
> +                    "rx10", "tx10",
> +                    "rx11", "tx11",
> +                    "rx12", "tx12",
> +                    "rx13", "tx13",
> +                    "rx14", "tx14",
> +                    "rx15", "tx15",
> +                    "rx16", "tx16",
> +                    "rx17", "tx17",
> +                    "rx18", "tx18",
> +                    "rx19", "tx19",
> +                    "rx20", "tx20";
> +        #sound-dai-cells = <1>;
> +    };

I don't see a lot of value in having 2 examples.

> +
> +...
> diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml b/Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml
> new file mode 100644
> index 0000000..5f3e1ed
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml

Same prior comments apply here.

> @@ -0,0 +1,110 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/nvidia,tegra210-ahub.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Tegra210 AHUB Device Tree Bindings
> +
> +description: |
> +  The Audio Hub (AHUB) comprises a collection of hardware accelerators
> +  for audio pre-processing, post-processing and a programmable full
> +  crossbar for routing audio data across these accelerators. It has
> +  external interfaces such as I2S, DMIC, DSPK. It interfaces with ADMA
> +  engine through ADMAIF.
> +
> +maintainers:
> +  - Jon Hunter <jonathanh@nvidia.com>
> +  - Sameer Pujar <spujar@nvidia.com>
> +
> +properties:
> +  $nodename:
> +    pattern: "^ahub@[0-9a-f]*$"
> +
> +  compatible:
> +    oneOf:
> +      - enum:
> +          - nvidia,tegra210-ahub
> +          - nvidia,tegra186-ahub
> +      - items:
> +          - const: nvidia,tegra194-ahub
> +          - const: nvidia,tegra186-ahub
> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    description: AHUB module clock
> +
> +  clock-names:
> +    const: ahub
> +
> +  assigned-clocks:
> +    description: AHUB module clock
> +
> +  assigned-clock-parents:
> +    description: parent for AHUB module clock
> +
> +  assigned-clock-rates:
> +    description: AHUB module clock rate
> +
> +  "#address-cells":
> +    const: 1
> +
> +  "#size-cells":
> +    const: 1
> +
> +  ranges:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array

ranges already has a type.

> +    description: Specify address range for the node and its children

Drop. That's every 'ranges'.

> +    minItems: 1
> +
> +  "#sound-dai-cells":
> +    const: 1
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - clock-names
> +  - assigned-clocks
> +  - assigned-clock-parents
> +  - "#address-cells"
> +  - "#size-cells"
> +  - ranges
> +  - "#sound-dai-cells"
> +
> +examples:
> +  - |
> +    #include<dt-bindings/clock/tegra210-car.h>
> +
> +    ahub@702d0800 {
> +        compatible = "nvidia,tegra210-ahub";
> +        reg = <0x702d0800 0x800>;
> +        clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>;
> +        clock-names = "ahub";
> +        assigned-clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>;
> +        assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;

> +        #address-cells = <1>;
> +        #size-cells = <1>;
> +        ranges = <0x702d0000 0x702d0000 0x0000e400>;

These properties imply you have child nodes, but none are defined.

> +        #sound-dai-cells = <1>;
> +    };
> +
> +  - |
> +    #include<dt-bindings/clock/tegra186-clock.h>
> +
> +    ahub@2900800 {
> +        compatible = "nvidia,tegra186-ahub";
> +        reg = <0x02900800 0x800>;
> +        clocks = <&bpmp TEGRA186_CLK_AHUB>;
> +        clock-names = "ahub";
> +        assigned-clocks = <&bpmp TEGRA186_CLK_AHUB>;
> +        assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
> +        #address-cells = <1>;
> +        #size-cells = <1>;
> +        ranges = <0x02900800 0x02900800 0x11800>;
> +        #sound-dai-cells = <1>;
> +    };

Really need 2 examples?

> +
> +...

Same comments apply to the rest.

WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Sameer Pujar <spujar-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Cc: perex-/Fr2/VpizcU@public.gmane.org,
	tiwai-IBi9RG/b67k@public.gmane.org,
	broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	lgirdwood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
	thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
	jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
	digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
	alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	sharadg-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
	mkumard-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
	viswanathl-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
	rlokhande-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
	dramesh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
	atalambedu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org
Subject: Re: [PATCH v3 01/10] dt-bindings: sound: tegra: add DT binding for AHUB
Date: Wed, 26 Feb 2020 10:02:52 -0600	[thread overview]
Message-ID: <20200226160252.GA3671@bogus> (raw)
In-Reply-To: <1582180492-25297-2-git-send-email-spujar-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>

On Thu, Feb 20, 2020 at 12:04:43PM +0530, Sameer Pujar wrote:
> Audio Hub (AHUB) comprises a collection of hardware accelerators for audio
> pre-processing and post-processing and a programmable full crossbar for
> audio routing across these accelerators. This patch adds YAML schema for DT
> binding of AHUB and few of its following components. These devices will be
> registered as ASoC components.
>  * ADMAIF
>  * I2S
>  * DMIC
>  * DSPK
> 
> Signed-off-by: Sameer Pujar <spujar-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
> ---
>  .../bindings/sound/nvidia,tegra186-dspk.yaml       |  88 +++++++++++
>  .../bindings/sound/nvidia,tegra210-admaif.yaml     | 163 +++++++++++++++++++++
>  .../bindings/sound/nvidia,tegra210-ahub.yaml       | 110 ++++++++++++++
>  .../bindings/sound/nvidia,tegra210-dmic.yaml       |  88 +++++++++++
>  .../bindings/sound/nvidia,tegra210-i2s.yaml        | 101 +++++++++++++
>  5 files changed, 550 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra186-dspk.yaml
>  create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-admaif.yaml
>  create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml
>  create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-dmic.yaml
>  create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-i2s.yaml
> 
> diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra186-dspk.yaml b/Documentation/devicetree/bindings/sound/nvidia,tegra186-dspk.yaml
> new file mode 100644
> index 0000000..79c720d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra186-dspk.yaml
> @@ -0,0 +1,88 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/nvidia,tegra186-dspk.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Tegra186 DSPK Controller Device Tree Bindings
> +
> +description: |
> +  The Digital Speaker Controller (DSPK) can be viewed as a Pulse
> +  Density Modulation (PDM) transmitter that up-samples the input to
> +  the desired sampling rate by interpolation and then converts the
> +  over sampled Pulse Code Modulation (PCM) input to the desired 1-bit
> +  output via Delta Sigma Modulation (DSM).
> +
> +maintainers:
> +  - Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
> +  - Sameer Pujar <spujar-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
> +
> +properties:
> +  $nodename:
> +    pattern: "^dspk@[0-9a-f]*$"
> +
> +  compatible:
> +    oneOf:
> +      - const: nvidia,tegra186-dspk
> +      - items:
> +          - const: nvidia,tegra194-dspk
> +          - const: nvidia,tegra186-dspk
> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    description: DSPK interface clock

Needs: 

maxItems: 1

I'd drop the description too. It's pretty generic...

> +
> +  clock-names:
> +    const: dspk
> +

> +  assigned-clocks:
> +    description: DSPK interface clock
> +
> +  assigned-clock-parents:
> +    description: Parent for DSPK interface clock
> +
> +  assigned-clock-rates:
> +    description: Initial rate of DSPK interface clock

maxItems: 1 for these 3.

> +
> +  "#sound-dai-cells":
> +    const: 1
> +
> +  sound-name-prefix:
> +    pattern: "^DSPK[1-9]$"
> +    allOf:
> +      - $ref: /schemas/types.yaml#/definitions/string
> +    description:
> +      Used as prefix for sink/source names of the component. Must be a
> +      unique string among multiple instances of the same component.
> +      The name can be "DSPK1" or "DSPKx", where x depends on the maximum
> +      available instances on a Tegra SoC.
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - clock-names
> +  - assigned-clocks
> +  - assigned-clock-parents
> +  - "#sound-dai-cells"
> +  - sound-name-prefix
> +
> +examples:
> +  - |
> +    #include<dt-bindings/clock/tegra186-clock.h>
> +
> +    dspk@2905000 {
> +        compatible = "nvidia,tegra186-dspk";
> +        reg = <0x2905000 0x100>;
> +        clocks = <&bpmp TEGRA186_CLK_DSPK1>;
> +        clock-names = "dspk";
> +        assigned-clocks = <&bpmp TEGRA186_CLK_DSPK1>;
> +        assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
> +        assigned-clock-rates = <12288000>;
> +        #sound-dai-cells = <1>;
> +        sound-name-prefix = "DSPK1";
> +    };
> +
> +...
> diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra210-admaif.yaml b/Documentation/devicetree/bindings/sound/nvidia,tegra210-admaif.yaml
> new file mode 100644
> index 0000000..46637c6a
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra210-admaif.yaml
> @@ -0,0 +1,163 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/nvidia,tegra210-admaif.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Tegra210 ADMAIF Device Tree Bindings
> +
> +description: |
> +  ADMAIF is the interface between ADMA and AHUB. Each ADMA channel
> +  that sends/receives data to/from AHUB must interface through an
> +  ADMAIF channel. ADMA channel sending data to AHUB pairs with ADMAIF
> +  Tx channel and ADMA channel receiving data from AHUB pairs with
> +  ADMAIF Rx channel.
> +
> +maintainers:
> +  - Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
> +  - Sameer Pujar <spujar-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
> +
> +properties:
> +  $nodename:
> +    pattern: "^admaif@[0-9a-f]*$"
> +
> +  compatible:
> +    oneOf:
> +      - enum:
> +          - nvidia,tegra210-admaif
> +          - nvidia,tegra186-admaif
> +      - items:
> +          - const: nvidia,tegra194-admaif
> +          - const: nvidia,tegra186-admaif
> +
> +  reg:
> +    maxItems: 1
> +
> +  dmas: true
> +
> +  dma-names: true
> +
> +  "#sound-dai-cells":
> +    const: 1
> +
> +if:
> +  properties:
> +    compatible:
> +      contains:
> +        const: nvidia,tegra210-admaif
> +
> +then:
> +  properties:
> +    dmas:
> +      description:
> +        DMA channel specifiers, equally divided for Tx and Rx.
> +      minItems: 1
> +      maxItems: 20
> +    dma-names:
> +      items:
> +        pattern: "^[rt]x(10|[1-9])$"
> +      description:
> +        Should be "rx1", "rx2" ... "rx10" for DMA Rx channel
> +        Should be "tx1", "tx2" ... "tx10" for DMA Tx channel
> +      minItems: 1
> +      maxItems: 20
> +
> +else:
> +  properties:
> +    dmas:
> +      description:
> +        DMA channel specifiers, equally divided for Tx and Rx.
> +      minItems: 1
> +      maxItems: 40
> +    dma-names:
> +      items:
> +        pattern: "^[rt]x(1[0-9]|[1-9]|20)$"
> +      description:
> +        Should be "rx1", "rx2" ... "rx20" for DMA Rx channel
> +        Should be "tx1", "tx2" ... "tx20" for DMA Tx channel
> +      minItems: 1
> +      maxItems: 40
> +
> +required:
> +  - compatible
> +  - reg
> +  - dmas
> +  - dma-names
> +  - "#sound-dai-cells"
> +
> +examples:
> +  - |
> +    admaif@702d0000 {
> +        compatible = "nvidia,tegra210-admaif";
> +        reg = <0x702d0000 0x800>;
> +        dmas = <&adma 1>,  <&adma 1>,
> +               <&adma 2>,  <&adma 2>,
> +               <&adma 3>,  <&adma 3>,
> +               <&adma 4>,  <&adma 4>,
> +               <&adma 5>,  <&adma 5>,
> +               <&adma 6>,  <&adma 6>,
> +               <&adma 7>,  <&adma 7>,
> +               <&adma 8>,  <&adma 8>,
> +               <&adma 9>,  <&adma 9>,
> +               <&adma 10>, <&adma 10>;
> +        dma-names = "rx1",  "tx1",
> +                    "rx2",  "tx2",
> +                    "rx3",  "tx3",
> +                    "rx4",  "tx4",
> +                    "rx5",  "tx5",
> +                    "rx6",  "tx6",
> +                    "rx7",  "tx7",
> +                    "rx8",  "tx8",
> +                    "rx9",  "tx9",
> +                    "rx10", "tx10";
> +        #sound-dai-cells = <1>;
> +    };
> +
> +  - |
> +    admaif@290f000 {
> +        compatible = "nvidia,tegra186-admaif";
> +        reg = <0x0290f000 0x1000>;
> +        dmas = <&adma 1>, <&adma 1>,
> +               <&adma 2>, <&adma 2>,
> +               <&adma 3>, <&adma 3>,
> +               <&adma 4>, <&adma 4>,
> +               <&adma 5>, <&adma 5>,
> +               <&adma 6>, <&adma 6>,
> +               <&adma 7>, <&adma 7>,
> +               <&adma 8>, <&adma 8>,
> +               <&adma 9>, <&adma 9>,
> +               <&adma 10>, <&adma 10>,
> +               <&adma 11>, <&adma 11>,
> +               <&adma 12>, <&adma 12>,
> +               <&adma 13>, <&adma 13>,
> +               <&adma 14>, <&adma 14>,
> +               <&adma 15>, <&adma 15>,
> +               <&adma 16>, <&adma 16>,
> +               <&adma 17>, <&adma 17>,
> +               <&adma 18>, <&adma 18>,
> +               <&adma 19>, <&adma 19>,
> +               <&adma 20>, <&adma 20>;
> +        dma-names = "rx1", "tx1",
> +                    "rx2", "tx2",
> +                    "rx3", "tx3",
> +                    "rx4", "tx4",
> +                    "rx5", "tx5",
> +                    "rx6", "tx6",
> +                    "rx7", "tx7",
> +                    "rx8", "tx8",
> +                    "rx9", "tx9",
> +                    "rx10", "tx10",
> +                    "rx11", "tx11",
> +                    "rx12", "tx12",
> +                    "rx13", "tx13",
> +                    "rx14", "tx14",
> +                    "rx15", "tx15",
> +                    "rx16", "tx16",
> +                    "rx17", "tx17",
> +                    "rx18", "tx18",
> +                    "rx19", "tx19",
> +                    "rx20", "tx20";
> +        #sound-dai-cells = <1>;
> +    };

I don't see a lot of value in having 2 examples.

> +
> +...
> diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml b/Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml
> new file mode 100644
> index 0000000..5f3e1ed
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml

Same prior comments apply here.

> @@ -0,0 +1,110 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/nvidia,tegra210-ahub.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Tegra210 AHUB Device Tree Bindings
> +
> +description: |
> +  The Audio Hub (AHUB) comprises a collection of hardware accelerators
> +  for audio pre-processing, post-processing and a programmable full
> +  crossbar for routing audio data across these accelerators. It has
> +  external interfaces such as I2S, DMIC, DSPK. It interfaces with ADMA
> +  engine through ADMAIF.
> +
> +maintainers:
> +  - Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
> +  - Sameer Pujar <spujar-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
> +
> +properties:
> +  $nodename:
> +    pattern: "^ahub@[0-9a-f]*$"
> +
> +  compatible:
> +    oneOf:
> +      - enum:
> +          - nvidia,tegra210-ahub
> +          - nvidia,tegra186-ahub
> +      - items:
> +          - const: nvidia,tegra194-ahub
> +          - const: nvidia,tegra186-ahub
> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    description: AHUB module clock
> +
> +  clock-names:
> +    const: ahub
> +
> +  assigned-clocks:
> +    description: AHUB module clock
> +
> +  assigned-clock-parents:
> +    description: parent for AHUB module clock
> +
> +  assigned-clock-rates:
> +    description: AHUB module clock rate
> +
> +  "#address-cells":
> +    const: 1
> +
> +  "#size-cells":
> +    const: 1
> +
> +  ranges:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array

ranges already has a type.

> +    description: Specify address range for the node and its children

Drop. That's every 'ranges'.

> +    minItems: 1
> +
> +  "#sound-dai-cells":
> +    const: 1
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - clock-names
> +  - assigned-clocks
> +  - assigned-clock-parents
> +  - "#address-cells"
> +  - "#size-cells"
> +  - ranges
> +  - "#sound-dai-cells"
> +
> +examples:
> +  - |
> +    #include<dt-bindings/clock/tegra210-car.h>
> +
> +    ahub@702d0800 {
> +        compatible = "nvidia,tegra210-ahub";
> +        reg = <0x702d0800 0x800>;
> +        clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>;
> +        clock-names = "ahub";
> +        assigned-clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>;
> +        assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;

> +        #address-cells = <1>;
> +        #size-cells = <1>;
> +        ranges = <0x702d0000 0x702d0000 0x0000e400>;

These properties imply you have child nodes, but none are defined.

> +        #sound-dai-cells = <1>;
> +    };
> +
> +  - |
> +    #include<dt-bindings/clock/tegra186-clock.h>
> +
> +    ahub@2900800 {
> +        compatible = "nvidia,tegra186-ahub";
> +        reg = <0x02900800 0x800>;
> +        clocks = <&bpmp TEGRA186_CLK_AHUB>;
> +        clock-names = "ahub";
> +        assigned-clocks = <&bpmp TEGRA186_CLK_AHUB>;
> +        assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
> +        #address-cells = <1>;
> +        #size-cells = <1>;
> +        ranges = <0x02900800 0x02900800 0x11800>;
> +        #sound-dai-cells = <1>;
> +    };

Really need 2 examples?

> +
> +...

Same comments apply to the rest.

WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Sameer Pujar <spujar@nvidia.com>
Cc: perex@perex.cz, tiwai@suse.com, broonie@kernel.org,
	lgirdwood@gmail.com, thierry.reding@gmail.com,
	jonathanh@nvidia.com, digetx@gmail.com,
	alsa-devel@alsa-project.org, devicetree@vger.kernel.org,
	linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org,
	sharadg@nvidia.com, mkumard@nvidia.com, viswanathl@nvidia.com,
	rlokhande@nvidia.com, dramesh@nvidia.com, atalambedu@nvidia.com
Subject: Re: [PATCH v3 01/10] dt-bindings: sound: tegra: add DT binding for AHUB
Date: Wed, 26 Feb 2020 10:02:52 -0600	[thread overview]
Message-ID: <20200226160252.GA3671@bogus> (raw)
In-Reply-To: <1582180492-25297-2-git-send-email-spujar@nvidia.com>

On Thu, Feb 20, 2020 at 12:04:43PM +0530, Sameer Pujar wrote:
> Audio Hub (AHUB) comprises a collection of hardware accelerators for audio
> pre-processing and post-processing and a programmable full crossbar for
> audio routing across these accelerators. This patch adds YAML schema for DT
> binding of AHUB and few of its following components. These devices will be
> registered as ASoC components.
>  * ADMAIF
>  * I2S
>  * DMIC
>  * DSPK
> 
> Signed-off-by: Sameer Pujar <spujar@nvidia.com>
> ---
>  .../bindings/sound/nvidia,tegra186-dspk.yaml       |  88 +++++++++++
>  .../bindings/sound/nvidia,tegra210-admaif.yaml     | 163 +++++++++++++++++++++
>  .../bindings/sound/nvidia,tegra210-ahub.yaml       | 110 ++++++++++++++
>  .../bindings/sound/nvidia,tegra210-dmic.yaml       |  88 +++++++++++
>  .../bindings/sound/nvidia,tegra210-i2s.yaml        | 101 +++++++++++++
>  5 files changed, 550 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra186-dspk.yaml
>  create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-admaif.yaml
>  create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml
>  create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-dmic.yaml
>  create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-i2s.yaml
> 
> diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra186-dspk.yaml b/Documentation/devicetree/bindings/sound/nvidia,tegra186-dspk.yaml
> new file mode 100644
> index 0000000..79c720d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra186-dspk.yaml
> @@ -0,0 +1,88 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/nvidia,tegra186-dspk.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Tegra186 DSPK Controller Device Tree Bindings
> +
> +description: |
> +  The Digital Speaker Controller (DSPK) can be viewed as a Pulse
> +  Density Modulation (PDM) transmitter that up-samples the input to
> +  the desired sampling rate by interpolation and then converts the
> +  over sampled Pulse Code Modulation (PCM) input to the desired 1-bit
> +  output via Delta Sigma Modulation (DSM).
> +
> +maintainers:
> +  - Jon Hunter <jonathanh@nvidia.com>
> +  - Sameer Pujar <spujar@nvidia.com>
> +
> +properties:
> +  $nodename:
> +    pattern: "^dspk@[0-9a-f]*$"
> +
> +  compatible:
> +    oneOf:
> +      - const: nvidia,tegra186-dspk
> +      - items:
> +          - const: nvidia,tegra194-dspk
> +          - const: nvidia,tegra186-dspk
> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    description: DSPK interface clock

Needs: 

maxItems: 1

I'd drop the description too. It's pretty generic...

> +
> +  clock-names:
> +    const: dspk
> +

> +  assigned-clocks:
> +    description: DSPK interface clock
> +
> +  assigned-clock-parents:
> +    description: Parent for DSPK interface clock
> +
> +  assigned-clock-rates:
> +    description: Initial rate of DSPK interface clock

maxItems: 1 for these 3.

> +
> +  "#sound-dai-cells":
> +    const: 1
> +
> +  sound-name-prefix:
> +    pattern: "^DSPK[1-9]$"
> +    allOf:
> +      - $ref: /schemas/types.yaml#/definitions/string
> +    description:
> +      Used as prefix for sink/source names of the component. Must be a
> +      unique string among multiple instances of the same component.
> +      The name can be "DSPK1" or "DSPKx", where x depends on the maximum
> +      available instances on a Tegra SoC.
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - clock-names
> +  - assigned-clocks
> +  - assigned-clock-parents
> +  - "#sound-dai-cells"
> +  - sound-name-prefix
> +
> +examples:
> +  - |
> +    #include<dt-bindings/clock/tegra186-clock.h>
> +
> +    dspk@2905000 {
> +        compatible = "nvidia,tegra186-dspk";
> +        reg = <0x2905000 0x100>;
> +        clocks = <&bpmp TEGRA186_CLK_DSPK1>;
> +        clock-names = "dspk";
> +        assigned-clocks = <&bpmp TEGRA186_CLK_DSPK1>;
> +        assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
> +        assigned-clock-rates = <12288000>;
> +        #sound-dai-cells = <1>;
> +        sound-name-prefix = "DSPK1";
> +    };
> +
> +...
> diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra210-admaif.yaml b/Documentation/devicetree/bindings/sound/nvidia,tegra210-admaif.yaml
> new file mode 100644
> index 0000000..46637c6a
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra210-admaif.yaml
> @@ -0,0 +1,163 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/nvidia,tegra210-admaif.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Tegra210 ADMAIF Device Tree Bindings
> +
> +description: |
> +  ADMAIF is the interface between ADMA and AHUB. Each ADMA channel
> +  that sends/receives data to/from AHUB must interface through an
> +  ADMAIF channel. ADMA channel sending data to AHUB pairs with ADMAIF
> +  Tx channel and ADMA channel receiving data from AHUB pairs with
> +  ADMAIF Rx channel.
> +
> +maintainers:
> +  - Jon Hunter <jonathanh@nvidia.com>
> +  - Sameer Pujar <spujar@nvidia.com>
> +
> +properties:
> +  $nodename:
> +    pattern: "^admaif@[0-9a-f]*$"
> +
> +  compatible:
> +    oneOf:
> +      - enum:
> +          - nvidia,tegra210-admaif
> +          - nvidia,tegra186-admaif
> +      - items:
> +          - const: nvidia,tegra194-admaif
> +          - const: nvidia,tegra186-admaif
> +
> +  reg:
> +    maxItems: 1
> +
> +  dmas: true
> +
> +  dma-names: true
> +
> +  "#sound-dai-cells":
> +    const: 1
> +
> +if:
> +  properties:
> +    compatible:
> +      contains:
> +        const: nvidia,tegra210-admaif
> +
> +then:
> +  properties:
> +    dmas:
> +      description:
> +        DMA channel specifiers, equally divided for Tx and Rx.
> +      minItems: 1
> +      maxItems: 20
> +    dma-names:
> +      items:
> +        pattern: "^[rt]x(10|[1-9])$"
> +      description:
> +        Should be "rx1", "rx2" ... "rx10" for DMA Rx channel
> +        Should be "tx1", "tx2" ... "tx10" for DMA Tx channel
> +      minItems: 1
> +      maxItems: 20
> +
> +else:
> +  properties:
> +    dmas:
> +      description:
> +        DMA channel specifiers, equally divided for Tx and Rx.
> +      minItems: 1
> +      maxItems: 40
> +    dma-names:
> +      items:
> +        pattern: "^[rt]x(1[0-9]|[1-9]|20)$"
> +      description:
> +        Should be "rx1", "rx2" ... "rx20" for DMA Rx channel
> +        Should be "tx1", "tx2" ... "tx20" for DMA Tx channel
> +      minItems: 1
> +      maxItems: 40
> +
> +required:
> +  - compatible
> +  - reg
> +  - dmas
> +  - dma-names
> +  - "#sound-dai-cells"
> +
> +examples:
> +  - |
> +    admaif@702d0000 {
> +        compatible = "nvidia,tegra210-admaif";
> +        reg = <0x702d0000 0x800>;
> +        dmas = <&adma 1>,  <&adma 1>,
> +               <&adma 2>,  <&adma 2>,
> +               <&adma 3>,  <&adma 3>,
> +               <&adma 4>,  <&adma 4>,
> +               <&adma 5>,  <&adma 5>,
> +               <&adma 6>,  <&adma 6>,
> +               <&adma 7>,  <&adma 7>,
> +               <&adma 8>,  <&adma 8>,
> +               <&adma 9>,  <&adma 9>,
> +               <&adma 10>, <&adma 10>;
> +        dma-names = "rx1",  "tx1",
> +                    "rx2",  "tx2",
> +                    "rx3",  "tx3",
> +                    "rx4",  "tx4",
> +                    "rx5",  "tx5",
> +                    "rx6",  "tx6",
> +                    "rx7",  "tx7",
> +                    "rx8",  "tx8",
> +                    "rx9",  "tx9",
> +                    "rx10", "tx10";
> +        #sound-dai-cells = <1>;
> +    };
> +
> +  - |
> +    admaif@290f000 {
> +        compatible = "nvidia,tegra186-admaif";
> +        reg = <0x0290f000 0x1000>;
> +        dmas = <&adma 1>, <&adma 1>,
> +               <&adma 2>, <&adma 2>,
> +               <&adma 3>, <&adma 3>,
> +               <&adma 4>, <&adma 4>,
> +               <&adma 5>, <&adma 5>,
> +               <&adma 6>, <&adma 6>,
> +               <&adma 7>, <&adma 7>,
> +               <&adma 8>, <&adma 8>,
> +               <&adma 9>, <&adma 9>,
> +               <&adma 10>, <&adma 10>,
> +               <&adma 11>, <&adma 11>,
> +               <&adma 12>, <&adma 12>,
> +               <&adma 13>, <&adma 13>,
> +               <&adma 14>, <&adma 14>,
> +               <&adma 15>, <&adma 15>,
> +               <&adma 16>, <&adma 16>,
> +               <&adma 17>, <&adma 17>,
> +               <&adma 18>, <&adma 18>,
> +               <&adma 19>, <&adma 19>,
> +               <&adma 20>, <&adma 20>;
> +        dma-names = "rx1", "tx1",
> +                    "rx2", "tx2",
> +                    "rx3", "tx3",
> +                    "rx4", "tx4",
> +                    "rx5", "tx5",
> +                    "rx6", "tx6",
> +                    "rx7", "tx7",
> +                    "rx8", "tx8",
> +                    "rx9", "tx9",
> +                    "rx10", "tx10",
> +                    "rx11", "tx11",
> +                    "rx12", "tx12",
> +                    "rx13", "tx13",
> +                    "rx14", "tx14",
> +                    "rx15", "tx15",
> +                    "rx16", "tx16",
> +                    "rx17", "tx17",
> +                    "rx18", "tx18",
> +                    "rx19", "tx19",
> +                    "rx20", "tx20";
> +        #sound-dai-cells = <1>;
> +    };

I don't see a lot of value in having 2 examples.

> +
> +...
> diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml b/Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml
> new file mode 100644
> index 0000000..5f3e1ed
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml

Same prior comments apply here.

> @@ -0,0 +1,110 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/nvidia,tegra210-ahub.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Tegra210 AHUB Device Tree Bindings
> +
> +description: |
> +  The Audio Hub (AHUB) comprises a collection of hardware accelerators
> +  for audio pre-processing, post-processing and a programmable full
> +  crossbar for routing audio data across these accelerators. It has
> +  external interfaces such as I2S, DMIC, DSPK. It interfaces with ADMA
> +  engine through ADMAIF.
> +
> +maintainers:
> +  - Jon Hunter <jonathanh@nvidia.com>
> +  - Sameer Pujar <spujar@nvidia.com>
> +
> +properties:
> +  $nodename:
> +    pattern: "^ahub@[0-9a-f]*$"
> +
> +  compatible:
> +    oneOf:
> +      - enum:
> +          - nvidia,tegra210-ahub
> +          - nvidia,tegra186-ahub
> +      - items:
> +          - const: nvidia,tegra194-ahub
> +          - const: nvidia,tegra186-ahub
> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    description: AHUB module clock
> +
> +  clock-names:
> +    const: ahub
> +
> +  assigned-clocks:
> +    description: AHUB module clock
> +
> +  assigned-clock-parents:
> +    description: parent for AHUB module clock
> +
> +  assigned-clock-rates:
> +    description: AHUB module clock rate
> +
> +  "#address-cells":
> +    const: 1
> +
> +  "#size-cells":
> +    const: 1
> +
> +  ranges:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array

ranges already has a type.

> +    description: Specify address range for the node and its children

Drop. That's every 'ranges'.

> +    minItems: 1
> +
> +  "#sound-dai-cells":
> +    const: 1
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - clock-names
> +  - assigned-clocks
> +  - assigned-clock-parents
> +  - "#address-cells"
> +  - "#size-cells"
> +  - ranges
> +  - "#sound-dai-cells"
> +
> +examples:
> +  - |
> +    #include<dt-bindings/clock/tegra210-car.h>
> +
> +    ahub@702d0800 {
> +        compatible = "nvidia,tegra210-ahub";
> +        reg = <0x702d0800 0x800>;
> +        clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>;
> +        clock-names = "ahub";
> +        assigned-clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>;
> +        assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;

> +        #address-cells = <1>;
> +        #size-cells = <1>;
> +        ranges = <0x702d0000 0x702d0000 0x0000e400>;

These properties imply you have child nodes, but none are defined.

> +        #sound-dai-cells = <1>;
> +    };
> +
> +  - |
> +    #include<dt-bindings/clock/tegra186-clock.h>
> +
> +    ahub@2900800 {
> +        compatible = "nvidia,tegra186-ahub";
> +        reg = <0x02900800 0x800>;
> +        clocks = <&bpmp TEGRA186_CLK_AHUB>;
> +        clock-names = "ahub";
> +        assigned-clocks = <&bpmp TEGRA186_CLK_AHUB>;
> +        assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
> +        #address-cells = <1>;
> +        #size-cells = <1>;
> +        ranges = <0x02900800 0x02900800 0x11800>;
> +        #sound-dai-cells = <1>;
> +    };

Really need 2 examples?

> +
> +...

Same comments apply to the rest.

  parent reply	other threads:[~2020-02-26 16:03 UTC|newest]

Thread overview: 115+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-20  6:34 [PATCH v3 00/10] add ASoC components for AHUB Sameer Pujar
2020-02-20  6:34 ` Sameer Pujar
2020-02-20  6:34 ` Sameer Pujar
2020-02-20  6:34 ` [PATCH v3 01/10] dt-bindings: sound: tegra: add DT binding " Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-21 12:39   ` Mark Brown
2020-02-21 12:39     ` Mark Brown
2020-02-26 16:02   ` Rob Herring [this message]
2020-02-26 16:02     ` Rob Herring
2020-02-26 16:02     ` Rob Herring
2020-02-20  6:34 ` [PATCH v3 02/10] ASoC: tegra: add support for CIF programming Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-20 14:30   ` Jon Hunter
2020-02-20 14:30     ` Jon Hunter
2020-02-20 14:30     ` Jon Hunter
2020-02-21  5:27   ` Dmitry Osipenko
2020-02-21  5:27     ` Dmitry Osipenko
2020-02-21  5:27     ` Dmitry Osipenko
2020-02-20  6:34 ` [PATCH v3 03/10] ASoC: tegra: add Tegra210 based DMIC driver Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-20 14:36   ` Jon Hunter
2020-02-20 14:36     ` Jon Hunter
2020-02-20 14:36     ` Jon Hunter
2020-02-21  5:53   ` Dmitry Osipenko
2020-02-21  5:53     ` Dmitry Osipenko
2020-02-21  5:53     ` Dmitry Osipenko
2020-02-21 13:00   ` Mark Brown
2020-02-21 13:00     ` Mark Brown
2020-02-21 13:00     ` Mark Brown
2020-02-21 14:31     ` Jon Hunter
2020-02-21 14:31       ` Jon Hunter
2020-02-21 14:31       ` Jon Hunter
2020-02-21 16:55       ` Mark Brown
2020-02-21 16:55         ` Mark Brown
2020-02-21 16:55         ` Mark Brown
2020-02-24 11:28         ` Jon Hunter
2020-02-24 11:28           ` Jon Hunter
2020-02-24 11:28           ` Jon Hunter
2020-02-24 11:44           ` Mark Brown
2020-02-24 11:44             ` Mark Brown
2020-02-24 11:44             ` Mark Brown
2020-02-24 12:29             ` Sameer Pujar
2020-02-24 12:29               ` Sameer Pujar
2020-02-24 12:29               ` Sameer Pujar
2020-02-24 13:18               ` Mark Brown
2020-02-24 13:18                 ` Mark Brown
2020-02-24 13:18                 ` Mark Brown
2020-02-28  7:30     ` Viswanath L
2020-02-28  7:30       ` Viswanath L
2020-02-28  7:30       ` Viswanath L
2020-02-20  6:34 ` [PATCH v3 04/10] ASoC: tegra: add Tegra210 based I2S driver Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-20 14:45   ` Jon Hunter
2020-02-20 14:45     ` Jon Hunter
2020-02-20 14:45     ` Jon Hunter
2020-02-21 13:21   ` Mark Brown
2020-02-21 13:21     ` Mark Brown
2020-02-20  6:34 ` [PATCH v3 05/10] ASoC: tegra: add Tegra210 based AHUB driver Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-20  6:51   ` Randy Dunlap
2020-02-20  6:51     ` Randy Dunlap
2020-02-20  6:51     ` Randy Dunlap
2020-02-20 15:08   ` Jon Hunter
2020-02-20 15:08     ` Jon Hunter
2020-02-20 15:08     ` Jon Hunter
2020-02-21 13:38   ` Mark Brown
2020-02-21 13:38     ` Mark Brown
2020-02-21 13:38     ` Mark Brown
2020-02-20  6:34 ` [PATCH v3 06/10] ASoC: tegra: add Tegra186 based DSPK driver Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-20  6:53   ` Randy Dunlap
2020-02-20  6:53     ` Randy Dunlap
2020-02-20  6:53     ` Randy Dunlap
2020-02-20 15:10   ` Jon Hunter
2020-02-20 15:10     ` Jon Hunter
2020-02-20 15:10     ` Jon Hunter
2020-02-20  6:34 ` [PATCH v3 07/10] ASoC: tegra: add Tegra210 based ADMAIF driver Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-20  6:55   ` Randy Dunlap
2020-02-20  6:55     ` Randy Dunlap
2020-02-20  6:55     ` Randy Dunlap
2020-02-20 15:16   ` Jon Hunter
2020-02-20 15:16     ` Jon Hunter
2020-02-20 15:16     ` Jon Hunter
2020-02-21  6:08   ` Dmitry Osipenko
2020-02-21  6:08     ` Dmitry Osipenko
2020-02-21  6:08     ` Dmitry Osipenko
2020-02-20  6:34 ` [PATCH v3 08/10] arm64: tegra: add AHUB components for few Tegra chips Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-20 14:49   ` Jon Hunter
2020-02-20 14:49     ` Jon Hunter
2020-02-20 14:49     ` Jon Hunter
2020-02-20  6:34 ` [PATCH v3 09/10] arm64: tegra: enable AHUB modules " Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-20 14:52   ` Jon Hunter
2020-02-20 14:52     ` Jon Hunter
2020-02-20 14:52     ` Jon Hunter
2020-02-20  6:34 ` [PATCH v3 10/10] arm64: defconfig: enable AHUB components for Tegra210 and later Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-20  6:34   ` Sameer Pujar
2020-02-20 14:52   ` Jon Hunter
2020-02-20 14:52     ` Jon Hunter
2020-02-20 14:52     ` Jon Hunter
2020-02-21  5:44   ` Dmitry Osipenko
2020-02-21  5:44     ` Dmitry Osipenko
2020-02-21  5:44     ` Dmitry Osipenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200226160252.GA3671@bogus \
    --to=robh@kernel.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=atalambedu@nvidia.com \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=digetx@gmail.com \
    --cc=dramesh@nvidia.com \
    --cc=jonathanh@nvidia.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=mkumard@nvidia.com \
    --cc=rlokhande@nvidia.com \
    --cc=sharadg@nvidia.com \
    --cc=spujar@nvidia.com \
    --cc=thierry.reding@gmail.com \
    --cc=tiwai@suse.com \
    --cc=viswanathl@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.