[PATCH] ASoC: dt-bindings: ak4613: switch to yaml base Documentation

2020-06-18 Thread Kuninori Morimoto
From: Kuninori Morimoto 

This patch switches from .txt base to .yaml base Document.

Signed-off-by: Kuninori Morimoto 
---
v1 -> v2

- use patternProperties

 .../devicetree/bindings/sound/ak4613.txt  | 27 --
 .../devicetree/bindings/sound/ak4613.yaml | 49 +++
 2 files changed, 49 insertions(+), 27 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/sound/ak4613.txt
 create mode 100644 Documentation/devicetree/bindings/sound/ak4613.yaml

diff --git a/Documentation/devicetree/bindings/sound/ak4613.txt 
b/Documentation/devicetree/bindings/sound/ak4613.txt
deleted file mode 100644
index 49a2e74fd9cb..
--- a/Documentation/devicetree/bindings/sound/ak4613.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-AK4613 I2C transmitter
-
-This device supports I2C mode only.
-
-Required properties:
-
-- compatible : "asahi-kasei,ak4613"
-- reg : The chip select number on the I2C bus
-
-Optional properties:
-- asahi-kasei,in1-single-end   : Boolean. Indicate input / output pins are 
single-ended.
-- asahi-kasei,in2-single-end rather than differential.
-- asahi-kasei,out1-single-end
-- asahi-kasei,out2-single-end
-- asahi-kasei,out3-single-end
-- asahi-kasei,out4-single-end
-- asahi-kasei,out5-single-end
-- asahi-kasei,out6-single-end
-
-Example:
-
-&i2c {
-   ak4613: ak4613@10 {
-   compatible = "asahi-kasei,ak4613";
-   reg = <0x10>;
-   };
-};
diff --git a/Documentation/devicetree/bindings/sound/ak4613.yaml 
b/Documentation/devicetree/bindings/sound/ak4613.yaml
new file mode 100644
index ..eb915377bc5d
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/ak4613.yaml
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/ak4613.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: AK4613 I2C transmitter Device Tree Bindings
+
+maintainers:
+  - Kuninori Morimoto 
+
+properties:
+  compatible:
+const: asahi-kasei,ak4613
+
+  reg:
+maxItems: 1
+
+  clocks:
+maxItems: 1
+
+  "#sound-dai-cells":
+const: 0
+
+patternProperties:
+  "^asahi-kasei,in[1-2]-single-end$":
+description: Input Pin 1 - 2.
+$ref: /schemas/types.yaml#/definitions/flag
+
+  "^asahi-kasei,out[1-6]-single-end$":
+description: Output Pin 1 - 6.
+$ref: /schemas/types.yaml#/definitions/flag
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+i2c {
+#address-cells = <1>;
+#size-cells = <0>;
+ak4613: ak4613@10 {
+compatible = "asahi-kasei,ak4613";
+reg = <0x10>;
+};
+};
-- 
2.25.1



Re: [PATCH] ASoC: dt-bindings: ak4613: switch to yaml base Documentation

2020-05-01 Thread Rob Herring
On Tue, Apr 21, 2020 at 02:17:43PM +0900, Kuninori Morimoto wrote:
> From: Kuninori Morimoto 
> 
> This patch switches from .txt base to .yaml base Document.
> 
> Signed-off-by: Kuninori Morimoto 
> ---
>  .../devicetree/bindings/sound/ak4613.txt  | 27 
>  .../devicetree/bindings/sound/ak4613.yaml | 65 +++
>  2 files changed, 65 insertions(+), 27 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/sound/ak4613.txt
>  create mode 100644 Documentation/devicetree/bindings/sound/ak4613.yaml
> 
> diff --git a/Documentation/devicetree/bindings/sound/ak4613.txt 
> b/Documentation/devicetree/bindings/sound/ak4613.txt
> deleted file mode 100644
> index 49a2e74fd9cb..
> --- a/Documentation/devicetree/bindings/sound/ak4613.txt
> +++ /dev/null
> @@ -1,27 +0,0 @@
> -AK4613 I2C transmitter
> -
> -This device supports I2C mode only.
> -
> -Required properties:
> -
> -- compatible : "asahi-kasei,ak4613"
> -- reg : The chip select number on the I2C bus
> -
> -Optional properties:
> -- asahi-kasei,in1-single-end : Boolean. Indicate input / output pins are 
> single-ended.
> -- asahi-kasei,in2-single-end   rather than differential.
> -- asahi-kasei,out1-single-end
> -- asahi-kasei,out2-single-end
> -- asahi-kasei,out3-single-end
> -- asahi-kasei,out4-single-end
> -- asahi-kasei,out5-single-end
> -- asahi-kasei,out6-single-end
> -
> -Example:
> -
> -&i2c {
> - ak4613: ak4613@10 {
> - compatible = "asahi-kasei,ak4613";
> - reg = <0x10>;
> - };
> -};
> diff --git a/Documentation/devicetree/bindings/sound/ak4613.yaml 
> b/Documentation/devicetree/bindings/sound/ak4613.yaml
> new file mode 100644
> index ..b5929239505e
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/ak4613.yaml
> @@ -0,0 +1,65 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/ak4613.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: AK4613 I2C transmitter Device Tree Bindings
> +
> +maintainers:
> +  - Kuninori Morimoto 
> +
> +properties:
> +  compatible:
> +const: asahi-kasei,ak4613
> +
> +  reg:
> +maxItems: 1
> +
> +  clocks:
> +maxItems: 1
> +
> +  "#sound-dai-cells":
> +const: 0
> +
> +  # for OF-graph
> +  port:
> +$ref: "audio-graph-card.yaml#definitions/port"
> +  ports:
> +$ref: "audio-graph-card.yaml#definitions/ports"

There was no indication any of this applied on the old binding.

I'd rather not get into these arbitrary custom definitions. I think the 
above file probably needs to be split between the card and codec 
schemas. Then in each codec you have just:

allOf:
  - $ref: audio-codec.yaml#

A codec binding should work whether the codec is part of a simple-card 
or graph-card.

> +
> +# use patternProperties to avoid naming "xxx,yyy" issue

What's the issue other than you need a 'description'?

We need to fix it rather than find holes in the meta-schema.

> +patternProperties:
> +  "^asahi-kasei,in1-single-end$":
> +$ref: /schemas/types.yaml#/definitions/flag
> +  "^asahi-kasei,in2-single-end$":
> +$ref: /schemas/types.yaml#/definitions/flag
> +  "^asahi-kasei,out1-single-end$":
> +$ref: /schemas/types.yaml#/definitions/flag
> +  "^asahi-kasei,out2-single-end$":
> +$ref: /schemas/types.yaml#/definitions/flag
> +  "^asahi-kasei,out3-single-end$":
> +$ref: /schemas/types.yaml#/definitions/flag
> +  "^asahi-kasei,out4-single-end$":
> +$ref: /schemas/types.yaml#/definitions/flag
> +  "^asahi-kasei,out5-single-end$":
> +$ref: /schemas/types.yaml#/definitions/flag
> +  "^asahi-kasei,out6-single-end$":
> +$ref: /schemas/types.yaml#/definitions/flag

Though you could make these an actual pattern: in[1-2] and out[1-6]

> +
> +required:
> +  - compatible
> +  - reg
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +i2c {
> +#address-cells = <1>;
> +#size-cells = <0>;
> +ak4613: ak4613@10 {

audio-codec@10

> +compatible = "asahi-kasei,ak4613";
> +reg = <0x10>;
> +};
> +};
> -- 
> 2.17.1
>