2022-03-28 20:37:29

by Sameer Pujar

[permalink] [raw]
Subject: [RFC PATCH v2 1/6] ASoC: dt-bindings: Convert rt5659 bindings to YAML schema

Convert rt5659.txt DT binding to YAML schema. This binding is applicable
to rt5658 and rt5659 audio CODECs.

Signed-off-by: Sameer Pujar <[email protected]>
Cc: Oder Chiou <[email protected]>
---
.../devicetree/bindings/sound/realtek,rt5659.yaml | 112 +++++++++++++++++++++
Documentation/devicetree/bindings/sound/rt5659.txt | 89 ----------------
2 files changed, 112 insertions(+), 89 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/realtek,rt5659.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/rt5659.txt

diff --git a/Documentation/devicetree/bindings/sound/realtek,rt5659.yaml b/Documentation/devicetree/bindings/sound/realtek,rt5659.yaml
new file mode 100644
index 0000000..3bd9b6f
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/realtek,rt5659.yaml
@@ -0,0 +1,112 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/realtek,rt5659.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: RT5658 and RT5659 audio CODECs
+
+description: This device supports I2C only.
+
+maintainers:
+ - Oder Chiou <[email protected]>
+
+allOf:
+ - $ref: name-prefix.yaml#
+
+properties:
+ compatible:
+ enum:
+ - realtek,rt5658
+ - realtek,rt5659
+
+ reg:
+ description: The I2C address of the device
+ maxItems: 1
+
+ interrupts:
+ description: The CODEC's interrupt output
+ maxItems: 1
+
+ clocks:
+ items:
+ - description: Master clock (MCLK) to the CODEC
+
+ clock-names:
+ items:
+ - const: mclk
+
+ realtek,in1-differential:
+ description: MIC1 input is differntial and not single-ended.
+ type: boolean
+
+ realtek,in3-differential:
+ description: MIC3 input is differntial and not single-ended.
+ type: boolean
+
+ realtek,in4-differential:
+ description: MIC3 input is differntial and not single-ended.
+ type: boolean
+
+ realtek,dmic1-data-pin:
+ description: DMIC1 data pin usage
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum:
+ - 0 # dmic1 is not used
+ - 1 # using IN2N pin as dmic1 data pin
+ - 2 # using GPIO5 pin as dmic1 data pin
+ - 3 # using GPIO9 pin as dmic1 data pin
+ - 4 # using GPIO11 pin as dmic1 data pin
+
+ realtek,dmic2-data-pin:
+ description: DMIC2 data pin usage
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum:
+ - 0 # dmic2 is not used
+ - 1 # using IN2P pin as dmic2 data pin
+ - 2 # using GPIO6 pin as dmic2 data pin
+ - 3 # using GPIO10 pin as dmic2 data pin
+ - 4 # using GPIO12 pin as dmic2 data pin
+
+ realtek,jd-src:
+ description: Jack detect source
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum:
+ - 0 # No JD is used
+ - 1 # using JD3 as JD source
+ - 2 # JD source for Intel HDA header
+
+ realtek,ldo1-en-gpios:
+ description: The GPIO that controls the CODEC's LDO1_EN pin.
+
+ realtek,reset-gpios:
+ description: The GPIO that controls the CODEC's RESET pin.
+
+ sound-name-prefix: true
+
+additionalProperties: false
+
+required:
+ - compatible
+ - reg
+ - interrupts
+
+examples:
+ - |
+ #include<dt-bindings/gpio/tegra194-gpio.h>
+ #include<dt-bindings/clock/tegra194-clock.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ audio-codec@1a {
+ compatible = "realtek,rt5658";
+ reg = <0x1a>;
+ interrupt-parent = <&gpio>;
+ interrupts = <TEGRA194_MAIN_GPIO(S, 5) GPIO_ACTIVE_HIGH>;
+ clocks = <&bpmp TEGRA194_CLK_AUD_MCLK>;
+ clock-names = "mclk";
+ realtek,jd-src = <2>;
+ };
+ };
diff --git a/Documentation/devicetree/bindings/sound/rt5659.txt b/Documentation/devicetree/bindings/sound/rt5659.txt
deleted file mode 100644
index 013f534..0000000
--- a/Documentation/devicetree/bindings/sound/rt5659.txt
+++ /dev/null
@@ -1,89 +0,0 @@
-RT5659/RT5658 audio CODEC
-
-This device supports I2C only.
-
-Required properties:
-
-- compatible : One of "realtek,rt5659" or "realtek,rt5658".
-
-- reg : The I2C address of the device.
-
-- interrupts : The CODEC's interrupt output.
-
-Optional properties:
-
-- clocks: The phandle of the master clock to the CODEC
-- clock-names: Should be "mclk"
-
-- realtek,in1-differential
-- realtek,in3-differential
-- realtek,in4-differential
- Boolean. Indicate MIC1/3/4 input are differential, rather than single-ended.
-
-- realtek,dmic1-data-pin
- 0: dmic1 is not used
- 1: using IN2N pin as dmic1 data pin
- 2: using GPIO5 pin as dmic1 data pin
- 3: using GPIO9 pin as dmic1 data pin
- 4: using GPIO11 pin as dmic1 data pin
-
-- realtek,dmic2-data-pin
- 0: dmic2 is not used
- 1: using IN2P pin as dmic2 data pin
- 2: using GPIO6 pin as dmic2 data pin
- 3: using GPIO10 pin as dmic2 data pin
- 4: using GPIO12 pin as dmic2 data pin
-
-- realtek,jd-src
- 0: No JD is used
- 1: using JD3 as JD source
- 2: JD source for Intel HDA header
-
-- realtek,ldo1-en-gpios : The GPIO that controls the CODEC's LDO1_EN pin.
-- realtek,reset-gpios : The GPIO that controls the CODEC's RESET pin.
-
-- sound-name-prefix: Please refer to name-prefix.yaml
-
-- ports: A Codec may have a single or multiple I2S interfaces. These
- interfaces on Codec side can be described under 'ports' or 'port'.
- When the SoC or host device is connected to multiple interfaces of
- the Codec, the connectivity can be described using 'ports' property.
- If a single interface is used, then 'port' can be used. The usage
- depends on the platform or board design.
- Please refer to Documentation/devicetree/bindings/graph.txt
-
-Pins on the device (for linking into audio routes) for RT5659/RT5658:
-
- * DMIC L1
- * DMIC R1
- * DMIC L2
- * DMIC R2
- * IN1P
- * IN1N
- * IN2P
- * IN2N
- * IN3P
- * IN3N
- * IN4P
- * IN4N
- * HPOL
- * HPOR
- * SPOL
- * SPOR
- * LOUTL
- * LOUTR
- * MONOOUT
- * PDML
- * PDMR
- * SPDIF
-
-Example:
-
-rt5659 {
- compatible = "realtek,rt5659";
- reg = <0x1b>;
- interrupt-parent = <&gpio>;
- interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_LEVEL_HIGH>;
- realtek,ldo1-en-gpios =
- <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
-};
--
2.7.4


2022-03-28 20:58:05

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [RFC PATCH v2 1/6] ASoC: dt-bindings: Convert rt5659 bindings to YAML schema

On Mon, 28 Mar 2022 11:44:05 +0530, Sameer Pujar wrote:
> Convert rt5659.txt DT binding to YAML schema. This binding is applicable
> to rt5658 and rt5659 audio CODECs.
>
> Signed-off-by: Sameer Pujar <[email protected]>
> Cc: Oder Chiou <[email protected]>
> ---
> .../devicetree/bindings/sound/realtek,rt5659.yaml | 112 +++++++++++++++++++++
> Documentation/devicetree/bindings/sound/rt5659.txt | 89 ----------------
> 2 files changed, 112 insertions(+), 89 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/sound/realtek,rt5659.yaml
> delete mode 100644 Documentation/devicetree/bindings/sound/rt5659.txt
>

Running 'make dtbs_check' with the schema in this patch gives the
following warnings. Consider if they are expected or the schema is
incorrect. These may not be new warnings.

Note that it is not yet a requirement to have 0 warnings for dtbs_check.
This will change in the future.

Full log is available here: https://patchwork.ozlabs.org/patch/1610026


audio-codec@1a: 'port' does not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm64/boot/dts/nvidia/tegra194-p2972-0000.dt.yaml

2022-03-28 21:17:16

by Sameer Pujar

[permalink] [raw]
Subject: Re: [RFC PATCH v2 1/6] ASoC: dt-bindings: Convert rt5659 bindings to YAML schema


On 28-03-2022 18:21, Rob Herring wrote:
> On Mon, 28 Mar 2022 11:44:05 +0530, Sameer Pujar wrote:
>> Convert rt5659.txt DT binding to YAML schema. This binding is applicable
>> to rt5658 and rt5659 audio CODECs.
>>
>> Signed-off-by: Sameer Pujar <[email protected]>
>> Cc: Oder Chiou <[email protected]>
>> ---
>> .../devicetree/bindings/sound/realtek,rt5659.yaml | 112 +++++++++++++++++++++
>> Documentation/devicetree/bindings/sound/rt5659.txt | 89 ----------------
>> 2 files changed, 112 insertions(+), 89 deletions(-)
>> create mode 100644 Documentation/devicetree/bindings/sound/realtek,rt5659.yaml
>> delete mode 100644 Documentation/devicetree/bindings/sound/rt5659.txt
>>
> Running 'make dtbs_check' with the schema in this patch gives the
> following warnings. Consider if they are expected or the schema is
> incorrect. These may not be new warnings.
>
> Note that it is not yet a requirement to have 0 warnings for dtbs_check.
> This will change in the future.
>
> Full log is available here: https://patchwork.ozlabs.org/patch/1610026
>
>
> audio-codec@1a: 'port' does not match any of the regexes: 'pinctrl-[0-9]+'
> arch/arm64/boot/dts/nvidia/tegra194-p2972-0000.dt.yaml

The port/ports binding is not added in 'patch v2 1/6'. I will fix this
in next revision by squashing 'patch v2 1/6' and 'patch v2 2/6'. Thanks.

2022-03-28 22:51:22

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [RFC PATCH v2 1/6] ASoC: dt-bindings: Convert rt5659 bindings to YAML schema

On 28/03/2022 08:14, Sameer Pujar wrote:
> Convert rt5659.txt DT binding to YAML schema. This binding is applicable
> to rt5658 and rt5659 audio CODECs.
>
> Signed-off-by: Sameer Pujar <[email protected]>
> Cc: Oder Chiou <[email protected]>
> ---
> .../devicetree/bindings/sound/realtek,rt5659.yaml | 112 +++++++++++++++++++++
> Documentation/devicetree/bindings/sound/rt5659.txt | 89 ----------------
> 2 files changed, 112 insertions(+), 89 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/sound/realtek,rt5659.yaml
> delete mode 100644 Documentation/devicetree/bindings/sound/rt5659.txt
>
> diff --git a/Documentation/devicetree/bindings/sound/realtek,rt5659.yaml b/Documentation/devicetree/bindings/sound/realtek,rt5659.yaml
> new file mode 100644
> index 0000000..3bd9b6f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/realtek,rt5659.yaml
> @@ -0,0 +1,112 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/realtek,rt5659.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: RT5658 and RT5659 audio CODECs
> +
> +description: This device supports I2C only.
> +
> +maintainers:
> + - Oder Chiou <[email protected]>
> +
> +allOf:
> + - $ref: name-prefix.yaml#
> +
> +properties:
> + compatible:
> + enum:
> + - realtek,rt5658
> + - realtek,rt5659
> +
> + reg:
> + description: The I2C address of the device

Skip the description, it's obvious.

> + maxItems: 1
> +
> + interrupts:
> + description: The CODEC's interrupt output

Ditto.

> + maxItems: 1
> +
> + clocks:
> + items:
> + - description: Master clock (MCLK) to the CODEC
> +
> + clock-names:
> + items:
> + - const: mclk
> +
> + realtek,in1-differential:
> + description: MIC1 input is differntial and not single-ended.

typo (differential)

> + type: boolean
> +
> + realtek,in3-differential:
> + description: MIC3 input is differntial and not single-ended.
> + type: boolean
> +
> + realtek,in4-differential:
> + description: MIC3 input is differntial and not single-ended.

MIC4?

> + type: boolean
> +
> + realtek,dmic1-data-pin:
> + description: DMIC1 data pin usage
> + $ref: /schemas/types.yaml#/definitions/uint32
> + enum:
> + - 0 # dmic1 is not used
> + - 1 # using IN2N pin as dmic1 data pin
> + - 2 # using GPIO5 pin as dmic1 data pin
> + - 3 # using GPIO9 pin as dmic1 data pin
> + - 4 # using GPIO11 pin as dmic1 data pin
> +
> + realtek,dmic2-data-pin:
> + description: DMIC2 data pin usage
> + $ref: /schemas/types.yaml#/definitions/uint32
> + enum:
> + - 0 # dmic2 is not used
> + - 1 # using IN2P pin as dmic2 data pin
> + - 2 # using GPIO6 pin as dmic2 data pin
> + - 3 # using GPIO10 pin as dmic2 data pin
> + - 4 # using GPIO12 pin as dmic2 data pin
> +
> + realtek,jd-src:
> + description: Jack detect source
> + $ref: /schemas/types.yaml#/definitions/uint32
> + enum:
> + - 0 # No JD is used
> + - 1 # using JD3 as JD source
> + - 2 # JD source for Intel HDA header
> +
> + realtek,ldo1-en-gpios:
> + description: The GPIO that controls the CODEC's LDO1_EN pin.

maxItems

> +
> + realtek,reset-gpios:
> + description: The GPIO that controls the CODEC's RESET pin.

maxItems

What about the ports node?


Best regards,
Krzysztof