alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/3] ASoC: dt-bindings: audio-graph-card: switch to yaml base Documentation
@ 2020-10-22  0:45 Kuninori Morimoto
  2020-10-22  0:46 ` [PATCH v3 1/3] " Kuninori Morimoto
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2020-10-22  0:45 UTC (permalink / raw)
  To: Rob Herring, Mark Brown; +Cc: devicetree, alsa-devel, Sameer Pujar


Hi Rob, Mark
Cc: Sameer

These are v3 of switch to yaml base Documentation for
audio-graph-card and renesas,rsnd which uses audio-graph-card.

v2 -> v3
	- fixuped Rob's pointed points

v1 -> v2
	- upgrade dt-schema, and fixup errors for [2/2] patch


Kuninori Morimoto (3):
  ASoC: dt-bindings: audio-graph-card: switch to yaml base Documentation
  ASoC: dt-bindings: renesas,rsnd: switch to yaml base Documentation
  dt-bindings: ASoC: renesas,rsnd: Add r8a77961 support

 .../bindings/sound/audio-graph-card.txt       | 337 ------------
 .../bindings/sound/audio-graph-card.yaml      | 165 ++++++
 .../bindings/sound/renesas,rsnd.txt           | 520 ------------------
 .../bindings/sound/renesas,rsnd.yaml          | 457 +++++++++++++++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +-
 5 files changed, 623 insertions(+), 858 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/sound/audio-graph-card.txt
 create mode 100644 Documentation/devicetree/bindings/sound/audio-graph-card.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/renesas,rsnd.yaml

-- 
2.25.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v3 1/3] ASoC: dt-bindings: audio-graph-card: switch to yaml base Documentation
  2020-10-22  0:45 [PATCH v3 0/3] ASoC: dt-bindings: audio-graph-card: switch to yaml base Documentation Kuninori Morimoto
@ 2020-10-22  0:46 ` Kuninori Morimoto
  2020-10-22  5:19   ` Sameer Pujar
  2020-10-23 13:52   ` Sameer Pujar
  2020-10-22  0:46 ` [PATCH v3 2/3] ASoC: dt-bindings: renesas, rsnd: " Kuninori Morimoto
  2020-10-22  0:46 ` [PATCH v3 3/3] dt-bindings: ASoC: renesas,rsnd: Add r8a77961 support Kuninori Morimoto
  2 siblings, 2 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2020-10-22  0:46 UTC (permalink / raw)
  To: Rob Herring, Mark Brown; +Cc: devicetree, alsa-devel, Sameer Pujar

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

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

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 .../bindings/sound/audio-graph-card.txt       | 337 ------------------
 .../bindings/sound/audio-graph-card.yaml      | 165 +++++++++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +-
 3 files changed, 166 insertions(+), 338 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/sound/audio-graph-card.txt
 create mode 100644 Documentation/devicetree/bindings/sound/audio-graph-card.yaml

diff --git a/Documentation/devicetree/bindings/sound/audio-graph-card.txt b/Documentation/devicetree/bindings/sound/audio-graph-card.txt
deleted file mode 100644
index d5f6919a2d69..000000000000
--- a/Documentation/devicetree/bindings/sound/audio-graph-card.txt
+++ /dev/null
@@ -1,337 +0,0 @@
-Audio Graph Card:
-
-Audio Graph Card specifies audio DAI connections of SoC <-> codec.
-It is based on common bindings for device graphs.
-see ${LINUX}/Documentation/devicetree/bindings/graph.txt
-
-Basically, Audio Graph Card property is same as Simple Card.
-see ${LINUX}/Documentation/devicetree/bindings/sound/simple-card.yaml
-
-Below are same as Simple-Card.
-
-- label
-- widgets
-- routing
-- dai-format
-- frame-master
-- bitclock-master
-- bitclock-inversion
-- frame-inversion
-- mclk-fs
-- hp-det-gpio
-- mic-det-gpio
-- dai-tdm-slot-num
-- dai-tdm-slot-width
-- clocks / system-clock-frequency
-
-Required properties:
-
-- compatible				: "audio-graph-card";
-- dais					: list of CPU DAI port{s}
-
-Optional properties:
-- pa-gpios: GPIO used to control external amplifier.
-
------------------------
-Example: Single DAI case
------------------------
-
-	sound_card {
-		compatible = "audio-graph-card";
-
-		dais = <&cpu_port>;
-	};
-
-	dai-controller {
-		...
-		cpu_port: port {
-			cpu_endpoint: endpoint {
-				remote-endpoint = <&codec_endpoint>;
-
-				dai-format = "left_j";
-				...
-			};
-		};
-	};
-
-	audio-codec {
-		...
-		port {
-			codec_endpoint: endpoint {
-				remote-endpoint = <&cpu_endpoint>;
-			};
-		};
-	};
-
------------------------
-Example: Multi DAI case
------------------------
-
-	sound-card {
-		compatible = "audio-graph-card";
-
-		label = "sound-card";
-
-		dais = <&cpu_port0
-			&cpu_port1
-			&cpu_port2>;
-	};
-
-	audio-codec@0 {
-		...
-		port {
-			codec0_endpoint: endpoint {
-				remote-endpoint = <&cpu_endpoint0>;
-			};
-		};
-	};
-
-	audio-codec@1 {
-		...
-		port {
-			codec1_endpoint: endpoint {
-				remote-endpoint = <&cpu_endpoint1>;
-			};
-		};
-	};
-
-	audio-codec@2 {
-		...
-		port {
-			codec2_endpoint: endpoint {
-				remote-endpoint = <&cpu_endpoint2>;
-			};
-		};
-	};
-
-	dai-controller {
-		...
-		ports {
-			cpu_port0: port@0 {
-				cpu_endpoint0: endpoint {
-					remote-endpoint = <&codec0_endpoint>;
-
-					dai-format = "left_j";
-					...
-				};
-			};
-			cpu_port1: port@1 {
-				cpu_endpoint1: endpoint {
-					remote-endpoint = <&codec1_endpoint>;
-
-					dai-format = "i2s";
-					...
-				};
-			};
-			cpu_port2: port@2 {
-				cpu_endpoint2: endpoint {
-					remote-endpoint = <&codec2_endpoint>;
-
-					dai-format = "i2s";
-					...
-				};
-			};
-		};
-	};
-
-
------------------------
-Example: Sampling Rate Conversion
------------------------
-
-	sound_card {
-		compatible = "audio-graph-card";
-
-		label = "sound-card";
-		prefix = "codec";
-		routing = "codec Playback", "DAI0 Playback",
-			  "DAI0 Capture",   "codec Capture";
-		convert-rate = <48000>;
-
-		dais = <&cpu_port>;
-	};
-
-	audio-codec {
-		...
-		port {
-			codec_endpoint: endpoint {
-				remote-endpoint = <&cpu_endpoint>;
-			};
-		};
-	};
-
-	dai-controller {
-		...
-		cpu_port: port {
-			cpu_endpoint: endpoint {
-				remote-endpoint = <&codec_endpoint>;
-
-				dai-format = "left_j";
-				...
-			};
-		};
-	};
-
------------------------
-Example: 2 CPU 1 Codec (Mixing)
------------------------
-
-	sound_card {
-		compatible = "audio-graph-card";
-
-		label = "sound-card";
-		routing = "codec Playback", "DAI0 Playback",
-			  "codec Playback", "DAI1 Playback",
-			  "DAI0 Capture",   "codec Capture";
-
-		dais = <&cpu_port>;
-	};
-
-	audio-codec {
-		...
-
-		audio-graph-card,prefix = "codec";
-		audio-graph-card,convert-rate = <48000>;
-		port {
-			reg = <0>;
-			codec_endpoint0: endpoint@0 {
-				remote-endpoint = <&cpu_endpoint0>;
-			};
-			codec_endpoint1: endpoint@1 {
-				remote-endpoint = <&cpu_endpoint1>;
-			};
-		};
-	};
-
-	dai-controller {
-		...
-		cpu_port: port {
-			cpu_endpoint0: endpoint@0 {
-				remote-endpoint = <&codec_endpoint0>;
-
-				dai-format = "left_j";
-				...
-			};
-			cpu_endpoint1: endpoint@1 {
-				remote-endpoint = <&codec_endpoint1>;
-
-				dai-format = "left_j";
-				...
-			};
-		};
-	};
-
------------------------
-Example: Multi DAI with DPCM
------------------------
-
-	CPU0 ------ ak4613
-	CPU1 ------ HDMI
-	CPU2 ------ PCM3168A-p	/* DPCM 1ch/2ch */
-	CPU3 --/		/* DPCM 3ch/4ch */
-	CPU4 --/		/* DPCM 5ch/6ch */
-	CPU5 --/		/* DPCM 7ch/8ch */
-	CPU6 ------ PCM3168A-c
-
-	sound_card: sound {
-		compatible = "audio-graph-card";
-
-		label = "sound-card";
-
-		routing =	"pcm3168a Playback", "DAI2 Playback",
-				"pcm3168a Playback", "DAI3 Playback",
-				"pcm3168a Playback", "DAI4 Playback",
-				"pcm3168a Playback", "DAI5 Playback";
-
-		dais = <&snd_port0	/* ak4613 */
-			&snd_port1	/* HDMI0  */
-			&snd_port2	/* pcm3168a playback */
-			&snd_port3	/* pcm3168a capture  */
-			>;
-	};
-
-	ak4613: codec@10 {
-		...
-		port {
-			ak4613_endpoint: endpoint {
-				remote-endpoint = <&rsnd_endpoint0>;
-			};
-		};
-	};
-
-	pcm3168a: audio-codec@44 {
-		...
-		audio-graph-card,prefix = "pcm3168a";
-		audio-graph-card,convert-channels = <8>; /* TDM Split */
-		ports {
-			port@0 {
-				reg = <0>;
-				pcm3168a_endpoint_p1: endpoint@1 {
-					remote-endpoint = <&rsnd_endpoint2>;
-					...
-				};
-				pcm3168a_endpoint_p2: endpoint@2 {
-					remote-endpoint = <&rsnd_endpoint3>;
-					...
-				};
-				pcm3168a_endpoint_p3: endpoint@3 {
-					remote-endpoint = <&rsnd_endpoint4>;
-					...
-				};
-				pcm3168a_endpoint_p4: endpoint@4 {
-					remote-endpoint = <&rsnd_endpoint5>;
-					...
-				};
-			};
-			port@1 {
-				reg = <1>;
-				pcm3168a_endpoint_c: endpoint {
-					remote-endpoint = <&rsnd_endpoint6>;
-					...
-				};
-			};
-		};
-	};
-
-	&sound {
-		ports {
-			snd_port0: port@0 {
-				rsnd_endpoint0: endpoint {
-					remote-endpoint = <&ak4613_endpoint>;
-					...
-				};
-			};
-			snd_port1: port@1 {
-				rsnd_endpoint1: endpoint {
-					remote-endpoint = <&dw_hdmi0_snd_in>;
-					...
-				};
-			};
-			snd_port2: port@2 {
-				#address-cells = <1>;
-				#size-cells = <0>;
-				rsnd_endpoint2: endpoint@2 {
-					remote-endpoint = <&pcm3168a_endpoint_p1>;
-					...
-				};
-				rsnd_endpoint3: endpoint@3 {
-					remote-endpoint = <&pcm3168a_endpoint_p2>;
-					...
-				};
-				rsnd_endpoint4: endpoint@4 {
-					remote-endpoint = <&pcm3168a_endpoint_p3>;
-					...
-				};
-				rsnd_endpoint5: endpoint@5 {
-					remote-endpoint = <&pcm3168a_endpoint_p4>;
-					...
-				};
-			};
-			snd_port3: port@6 {
-				rsnd_endpoint6: endpoint {
-					remote-endpoint = <&pcm3168a_endpoint_c>;
-					...
-				};
-			};
-		};
-	};
diff --git a/Documentation/devicetree/bindings/sound/audio-graph-card.yaml b/Documentation/devicetree/bindings/sound/audio-graph-card.yaml
new file mode 100644
index 000000000000..9ccffbda86a8
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/audio-graph-card.yaml
@@ -0,0 +1,165 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/audio-graph-card.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Audio Graph Card Driver Device Tree Bindings
+
+maintainers:
+  - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+
+properties:
+  compatible:
+    enum:
+      - audio-graph-card
+      - audio-graph-scu-card
+
+  dais:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+  label:
+    maxItems: 1
+  prefix:
+    description: "device name prefix"
+    $ref: /schemas/types.yaml#/definitions/string
+  "audio-graph-card,prefix":
+    description: "device name prefix"
+    $ref: /schemas/types.yaml#/definitions/string
+  routing:
+    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.
+    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
+  widgets:
+    description: User specified audio sound widgets.
+    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
+  convert-rate:
+    description: CPU to Codec rate convert.
+    $ref: /schemas/types.yaml#/definitions/uint32
+  "audio-graph-card,convert-rate":
+    description: CPU to Codec rate convert.
+    $ref: /schemas/types.yaml#/definitions/uint32
+  convert-channels:
+    description: CPU to Codec rate channels.
+    $ref: /schemas/types.yaml#/definitions/uint32
+  "audio-graph-card,convert-channels":
+    description: CPU to Codec rate channels.
+    $ref: /schemas/types.yaml#/definitions/uint32
+  pa-gpios:
+    maxItems: 1
+  hp-det-gpio:
+    maxItems: 1
+  mic-det-gpio:
+    maxItems: 1
+
+  endpoint:
+    type: object
+    properties:
+      remote-endpoint:
+        maxItems: 1
+      mclk-fs:
+        description: |
+          Multiplication factor between stream rate and codec mclk.
+          When defined, mclk-fs property defined in dai-link sub nodes are ignored.
+        $ref: /schemas/types.yaml#/definitions/uint32
+      frame-inversion:
+        description: dai-link uses frame clock inversion
+        $ref: /schemas/types.yaml#/definitions/flag
+      bitclock-inversion:
+        description: dai-link uses bit clock inversion
+        $ref: /schemas/types.yaml#/definitions/flag
+      frame-master:
+        description: Indicates dai-link frame master.
+        $ref: /schemas/types.yaml#/definitions/phandle-array
+        maxItems: 1
+      bitclock-master:
+        description: Indicates dai-link bit clock master
+        $ref: /schemas/types.yaml#/definitions/phandle-array
+        maxItems: 1
+      dai-format:
+        description: audio format.
+        items:
+          enum:
+            - i2s
+            - right_j
+            - left_j
+            - dsp_a
+            - dsp_b
+            - ac97
+            - pdm
+            - msb
+            - lsb
+      convert-rate:
+        description: CPU to Codec rate convert.
+        $ref: /schemas/types.yaml#/definitions/uint32
+      convert-channels:
+        description: CPU to Codec rate channels.
+        $ref: /schemas/types.yaml#/definitions/uint32
+    required:
+      - remote-endpoint
+
+  port:
+    description: single OF-Graph subnode
+    type: object
+    properties:
+      reg:
+        maxItems: 1
+      prefix:
+        description: "device name prefix"
+        $ref: /schemas/types.yaml#/definitions/string
+      convert-rate:
+        description: CPU to Codec rate convert.
+        $ref: /schemas/types.yaml#/definitions/uint32
+      convert-channels:
+        description: CPU to Codec rate channels.
+        $ref: /schemas/types.yaml#/definitions/uint32
+    patternProperties:
+      "^endpoint(@[0-9a-f]+)?":
+        $ref: "#/properties/endpoint"
+
+  ports:
+    description: multi OF-Graph subnode
+    type: object
+    patternProperties:
+      "^port(@[0-9a-f]+)?":
+        $ref: "#/properties/port"
+
+required:
+  - compatible
+  - dais
+
+additionalProperties: false
+
+examples:
+  - |
+    sound {
+        compatible = "audio-graph-card";
+
+        dais = <&cpu_port_a>;
+    };
+
+    cpu {
+        /*
+         * dai-controller own settings
+         */
+
+        port {
+            cpu_endpoint: endpoint {
+                remote-endpoint = <&codec_endpoint>;
+                dai-format = "left_j";
+            };
+        };
+    };
+
+    codec {
+        /*
+         * codec own settings
+         */
+
+        port {
+            codec_endpoint: endpoint {
+                remote-endpoint = <&cpu_endpoint>;
+            };
+        };
+    };
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index 63996ab03521..5ada35ddac7e 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -20,7 +20,7 @@ patternProperties:
   "^(keypad|m25p|max8952|max8997|max8998|mpmc),.*": true
   "^(pinctrl-single|#pinctrl-single|PowerPC),.*": true
   "^(pl022|pxa-mmc|rcar_sound|rotary-encoder|s5m8767|sdhci),.*": true
-  "^(simple-audio-card|st-plgpio|st-spics|ts),.*": true
+  "^(simple-audio-card|audio-graph-card|st-plgpio|st-spics|ts),.*": true
 
   # Keep list in alphabetical order.
   "^70mai,.*":
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v3 2/3] ASoC: dt-bindings: renesas, rsnd: switch to yaml base Documentation
  2020-10-22  0:45 [PATCH v3 0/3] ASoC: dt-bindings: audio-graph-card: switch to yaml base Documentation Kuninori Morimoto
  2020-10-22  0:46 ` [PATCH v3 1/3] " Kuninori Morimoto
@ 2020-10-22  0:46 ` Kuninori Morimoto
  2020-10-23 16:06   ` Rob Herring
  2020-10-22  0:46 ` [PATCH v3 3/3] dt-bindings: ASoC: renesas,rsnd: Add r8a77961 support Kuninori Morimoto
  2 siblings, 1 reply; 16+ messages in thread
From: Kuninori Morimoto @ 2020-10-22  0:46 UTC (permalink / raw)
  To: Rob Herring, Mark Brown; +Cc: devicetree, alsa-devel, Sameer Pujar

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

This patch switches from .txt base to .yaml base Document.
It is still keeping detail explanations at .txt

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 .../bindings/sound/renesas,rsnd.txt           | 520 ------------------
 .../bindings/sound/renesas,rsnd.yaml          | 456 +++++++++++++++
 2 files changed, 456 insertions(+), 520 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/sound/renesas,rsnd.yaml

diff --git a/Documentation/devicetree/bindings/sound/renesas,rsnd.txt b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt
index b39743d3f7c4..b731f16aea84 100644
--- a/Documentation/devicetree/bindings/sound/renesas,rsnd.txt
+++ b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt
@@ -253,523 +253,3 @@ This is example of TDM 6ch.
 Driver can automatically switches TDM <-> stereo mode in this case.
 
 see "Example: simple sound card for TDM"
-
-=============================================
-Required properties:
-=============================================
-
-- compatible			: "renesas,rcar_sound-<soctype>", fallbacks
-				  "renesas,rcar_sound-gen1" if generation1, and
-				  "renesas,rcar_sound-gen2" if generation2 (or RZ/G1)
-				  "renesas,rcar_sound-gen3" if generation3 (or RZ/G2)
-				  Examples with soctypes are:
-				    - "renesas,rcar_sound-r8a7742" (RZ/G1H)
-				    - "renesas,rcar_sound-r8a7743" (RZ/G1M)
-				    - "renesas,rcar_sound-r8a7744" (RZ/G1N)
-				    - "renesas,rcar_sound-r8a7745" (RZ/G1E)
-				    - "renesas,rcar_sound-r8a77470" (RZ/G1C)
-				    - "renesas,rcar_sound-r8a774a1" (RZ/G2M)
-				    - "renesas,rcar_sound-r8a774b1" (RZ/G2N)
-				    - "renesas,rcar_sound-r8a774c0" (RZ/G2E)
-				    - "renesas,rcar_sound-r8a774e1" (RZ/G2H)
-				    - "renesas,rcar_sound-r8a7778" (R-Car M1A)
-				    - "renesas,rcar_sound-r8a7779" (R-Car H1)
-				    - "renesas,rcar_sound-r8a7790" (R-Car H2)
-				    - "renesas,rcar_sound-r8a7791" (R-Car M2-W)
-				    - "renesas,rcar_sound-r8a7793" (R-Car M2-N)
-				    - "renesas,rcar_sound-r8a7794" (R-Car E2)
-				    - "renesas,rcar_sound-r8a7795" (R-Car H3)
-				    - "renesas,rcar_sound-r8a7796" (R-Car M3-W)
-				    - "renesas,rcar_sound-r8a77965" (R-Car M3-N)
-				    - "renesas,rcar_sound-r8a77990" (R-Car E3)
-				    - "renesas,rcar_sound-r8a77995" (R-Car D3)
-- reg				: Should contain the register physical address.
-				  required register is
-				   SRU/ADG/SSI      if generation1
-				   SRU/ADG/SSIU/SSI/AUDIO-DMAC-periperi if generation2/generation3
-				   Select extended AUDIO-DMAC-periperi address if SoC has it,
-				   otherwise select normal AUDIO-DMAC-periperi address.
-- reg-names			: Should contain the register names.
-				   scu/adg/ssi	if generation1
-				   scu/adg/ssiu/ssi/audmapp if generation2/generation3
-- rcar_sound,ssi		: Should contain SSI feature.
-				  The number of SSI subnode should be same as HW.
-				  see below for detail.
-- rcar_sound,ssiu		: Should contain SSIU feature.
-				  The number of SSIU subnode should be same as HW.
-				  see below for detail.
-- rcar_sound,src		: Should contain SRC feature.
-				  The number of SRC subnode should be same as HW.
-				  see below for detail.
-- rcar_sound,ctu		: Should contain CTU feature.
-				  The number of CTU subnode should be same as HW.
-				  see below for detail.
-- rcar_sound,mix		: Should contain MIX feature.
-				  The number of MIX subnode should be same as HW.
-				  see below for detail.
-- rcar_sound,dvc		: Should contain DVC feature.
-				  The number of DVC subnode should be same as HW.
-				  see below for detail.
-- rcar_sound,dai		: DAI contents.
-				  The number of DAI subnode should be same as HW.
-				  see below for detail.
-- #sound-dai-cells		: it must be 0 if your system is using single DAI
-				  it must be 1 if your system is using multi  DAI
-- clocks			: References to SSI/SRC/MIX/CTU/DVC/AUDIO_CLK clocks.
-- clock-names			: List of necessary clock names.
-				  "ssi-all", "ssi.X", "src.X", "mix.X", "ctu.X",
-				  "dvc.X", "clk_a", "clk_b", "clk_c", "clk_i"
-
-Optional properties:
-- #clock-cells			: it must be 0 if your system has audio_clkout
-				  it must be 1 if your system has audio_clkout0/1/2/3
-- clock-frequency		: for all audio_clkout0/1/2/3
-- clkout-lr-asynchronous	: boolean property. it indicates that audio_clkoutn
-				  is asynchronizes with lr-clock.
-- resets			: References to SSI resets.
-- reset-names			: List of valid reset names.
-				  "ssi-all", "ssi.X"
-
-SSI subnode properties:
-- interrupts			: Should contain SSI interrupt for PIO transfer
-- shared-pin			: if shared clock pin
-- pio-transfer			: use PIO transfer mode
-- no-busif			: BUSIF is not ussed when [mem -> SSI] via DMA case
-- dma				: Should contain Audio DMAC entry
-- dma-names			: SSI  case "rx"  (=playback), "tx"  (=capture)
-				  Deprecated: see SSIU subnode properties
-				  SSIU case "rxu" (=playback), "txu" (=capture)
-
-SSIU subnode properties:
-- dma				: Should contain Audio DMAC entry
-- dma-names			: "rx" (=playback), "tx" (=capture)
-
-SRC subnode properties:
-- dma				: Should contain Audio DMAC entry
-- dma-names			: "rx" (=playback), "tx" (=capture)
-
-DVC subnode properties:
-- dma				: Should contain Audio DMAC entry
-- dma-names			: "tx" (=playback/capture)
-
-DAI subnode properties:
-- playback			: list of playback modules
-- capture			: list of capture  modules
-
-
-=============================================
-Example:
-=============================================
-
-rcar_sound: sound@ec500000 {
-	#sound-dai-cells = <1>;
-	compatible = "renesas,rcar_sound-r8a7791", "renesas,rcar_sound-gen2";
-	reg =	<0 0xec500000 0 0x1000>, /* SCU */
-		<0 0xec5a0000 0 0x100>,  /* ADG */
-		<0 0xec540000 0 0x1000>, /* SSIU */
-		<0 0xec541000 0 0x1280>, /* SSI */
-		<0 0xec740000 0 0x200>;  /* Audio DMAC peri peri*/
-	reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
-
-	clocks = <&mstp10_clks R8A7790_CLK_SSI_ALL>,
-		<&mstp10_clks R8A7790_CLK_SSI9>, <&mstp10_clks R8A7790_CLK_SSI8>,
-		<&mstp10_clks R8A7790_CLK_SSI7>, <&mstp10_clks R8A7790_CLK_SSI6>,
-		<&mstp10_clks R8A7790_CLK_SSI5>, <&mstp10_clks R8A7790_CLK_SSI4>,
-		<&mstp10_clks R8A7790_CLK_SSI3>, <&mstp10_clks R8A7790_CLK_SSI2>,
-		<&mstp10_clks R8A7790_CLK_SSI1>, <&mstp10_clks R8A7790_CLK_SSI0>,
-		<&mstp10_clks R8A7790_CLK_SCU_SRC9>, <&mstp10_clks R8A7790_CLK_SCU_SRC8>,
-		<&mstp10_clks R8A7790_CLK_SCU_SRC7>, <&mstp10_clks R8A7790_CLK_SCU_SRC6>,
-		<&mstp10_clks R8A7790_CLK_SCU_SRC5>, <&mstp10_clks R8A7790_CLK_SCU_SRC4>,
-		<&mstp10_clks R8A7790_CLK_SCU_SRC3>, <&mstp10_clks R8A7790_CLK_SCU_SRC2>,
-		<&mstp10_clks R8A7790_CLK_SCU_SRC1>, <&mstp10_clks R8A7790_CLK_SCU_SRC0>,
-		<&mstp10_clks R8A7790_CLK_SCU_DVC0>, <&mstp10_clks R8A7790_CLK_SCU_DVC1>,
-		<&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>;
-	clock-names = "ssi-all",
-			"ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5",
-			"ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0",
-			"src.9", "src.8", "src.7", "src.6", "src.5",
-			"src.4", "src.3", "src.2", "src.1", "src.0",
-			"dvc.0", "dvc.1",
-			"clk_a", "clk_b", "clk_c", "clk_i";
-
-	rcar_sound,dvc {
-		dvc0: dvc-0 {
-			dmas = <&audma0 0xbc>;
-			dma-names = "tx";
-		};
-		dvc1: dvc-1 {
-			dmas = <&audma0 0xbe>;
-			dma-names = "tx";
-		};
-	};
-
-	rcar_sound,mix {
-		mix0: mix-0 { };
-		mix1: mix-1 { };
-	};
-
-	rcar_sound,ctu {
-		ctu00: ctu-0 { };
-		ctu01: ctu-1 { };
-		ctu02: ctu-2 { };
-		ctu03: ctu-3 { };
-		ctu10: ctu-4 { };
-		ctu11: ctu-5 { };
-		ctu12: ctu-6 { };
-		ctu13: ctu-7 { };
-	};
-
-	rcar_sound,src {
-		src0: src-0 {
-			interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>;
-			dmas = <&audma0 0x85>, <&audma1 0x9a>;
-			dma-names = "rx", "tx";
-		};
-		src1: src-1 {
-			interrupts = <0 353 IRQ_TYPE_LEVEL_HIGH>;
-			dmas = <&audma0 0x87>, <&audma1 0x9c>;
-			dma-names = "rx", "tx";
-		};
-		src2: src-2 {
-			interrupts = <0 354 IRQ_TYPE_LEVEL_HIGH>;
-			dmas = <&audma0 0x89>, <&audma1 0x9e>;
-			dma-names = "rx", "tx";
-		};
-		src3: src-3 {
-			interrupts = <0 355 IRQ_TYPE_LEVEL_HIGH>;
-			dmas = <&audma0 0x8b>, <&audma1 0xa0>;
-			dma-names = "rx", "tx";
-		};
-		src4: src-4 {
-			interrupts = <0 356 IRQ_TYPE_LEVEL_HIGH>;
-			dmas = <&audma0 0x8d>, <&audma1 0xb0>;
-			dma-names = "rx", "tx";
-		};
-		src5: src-5 {
-			interrupts = <0 357 IRQ_TYPE_LEVEL_HIGH>;
-			dmas = <&audma0 0x8f>, <&audma1 0xb2>;
-			dma-names = "rx", "tx";
-		};
-		src6: src-6 {
-			interrupts = <0 358 IRQ_TYPE_LEVEL_HIGH>;
-			dmas = <&audma0 0x91>, <&audma1 0xb4>;
-			dma-names = "rx", "tx";
-		};
-		src7: src-7 {
-			interrupts = <0 359 IRQ_TYPE_LEVEL_HIGH>;
-			dmas = <&audma0 0x93>, <&audma1 0xb6>;
-			dma-names = "rx", "tx";
-		};
-		src8: src-8 {
-			interrupts = <0 360 IRQ_TYPE_LEVEL_HIGH>;
-			dmas = <&audma0 0x95>, <&audma1 0xb8>;
-			dma-names = "rx", "tx";
-		};
-		src9: src-9 {
-			interrupts = <0 361 IRQ_TYPE_LEVEL_HIGH>;
-			dmas = <&audma0 0x97>, <&audma1 0xba>;
-			dma-names = "rx", "tx";
-		};
-	};
-
-	rcar_sound,ssiu {
-		ssiu00: ssiu-0 {
-			dmas = <&audma0 0x15>, <&audma1 0x16>;
-			dma-names = "rx", "tx";
-		};
-		ssiu01: ssiu-1 {
-			dmas = <&audma0 0x35>, <&audma1 0x36>;
-			dma-names = "rx", "tx";
-		};
-
-		...
-
-		ssiu95: ssiu-49 {
-			dmas = <&audma0 0xA5>, <&audma1 0xA6>;
-			dma-names = "rx", "tx";
-		};
-		ssiu96: ssiu-50 {
-			dmas = <&audma0 0xA7>, <&audma1 0xA8>;
-			dma-names = "rx", "tx";
-		};
-		ssiu97: ssiu-51 {
-			dmas = <&audma0 0xA9>, <&audma1 0xAA>;
-			dma-names = "rx", "tx";
-		};
-	};
-
-	rcar_sound,ssi {
-		ssi0: ssi-0 {
-			interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>;
-			dmas = <&audma0 0x01>, <&audma1 0x02>;
-			dma-names = "rx", "tx";
-		};
-		ssi1: ssi-1 {
-			interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>;
-			dmas = <&audma0 0x03>, <&audma1 0x04>;
-			dma-names = "rx", "tx";
-		};
-
-		...
-
-		ssi8: ssi-8 {
-			interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>;
-			dmas = <&audma0 0x11>, <&audma1 0x12>;
-			dma-names = "rx", "tx";
-		};
-		ssi9: ssi-9 {
-			interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>;
-			dmas = <&audma0 0x13>, <&audma1 0x14>;
-			dma-names = "rx", "tx";
-		};
-	};
-
-	rcar_sound,dai {
-		dai0 {
-			playback = <&ssi5 &src5>;
-			capture  = <&ssi6>;
-		};
-		dai1 {
-			playback = <&ssi3>;
-		};
-		dai2 {
-			capture  = <&ssi4>;
-		};
-		dai3 {
-			playback = <&ssi7>;
-		};
-		dai4 {
-			capture  = <&ssi8>;
-		};
-	};
-};
-
-=============================================
-Example: simple sound card
-=============================================
-
-	rsnd_ak4643: sound {
-		compatible = "simple-audio-card";
-
-		simple-audio-card,format = "left_j";
-		simple-audio-card,bitclock-master = <&sndcodec>;
-		simple-audio-card,frame-master = <&sndcodec>;
-
-		sndcpu: simple-audio-card,cpu {
-			sound-dai = <&rcar_sound>;
-		};
-
-		sndcodec: simple-audio-card,codec {
-			sound-dai = <&ak4643>;
-			clocks = <&audio_clock>;
-		};
-	};
-
-&rcar_sound {
-	pinctrl-0 = <&sound_pins &sound_clk_pins>;
-	pinctrl-names = "default";
-
-	/* Single DAI */
-	#sound-dai-cells = <0>;
-
-
-	rcar_sound,dai {
-		dai0 {
-			playback = <&ssi0 &src2 &dvc0>;
-			capture  = <&ssi1 &src3 &dvc1>;
-		};
-	};
-};
-
-&ssi1 {
-	shared-pin;
-};
-
-=============================================
-Example: simple sound card for Asynchronous mode
-=============================================
-
-sound {
-	compatible = "simple-scu-audio-card";
-	...
-	/*
-	 * SRC Asynchronous mode setting
-	 * Playback:
-	 * All input data will be converted to 48kHz
-	 * Capture:
-	 * Inputed 48kHz data will be converted to
-	 * system specified Hz
-	 */
-	simple-audio-card,convert-rate = <48000>;
-	...
-	simple-audio-card,cpu {
-		sound-dai = <&rcar_sound>;
-	};
-	simple-audio-card,codec {
-		...
-	};
-};
-
-=============================================
-Example: simple sound card for channel convert
-=============================================
-
-sound {
-	compatible = "simple-scu-audio-card";
-	...
-	/*
-	 * CTU setting
-	 * All input data will be converted to 2ch
-	 * as output data
-	 */
-	simple-audio-card,convert-channels = <2>;
-	...
-	simple-audio-card,cpu {
-		sound-dai = <&rcar_sound>;
-	};
-	simple-audio-card,codec {
-		...
-	};
-};
-
-=============================================
-Example: simple sound card for MIXer
-=============================================
-
-sound {
-	compatible = "simple-scu-audio-card";
-	...
-	simple-audio-card,cpu@0 {
-		sound-dai = <&rcar_sound 0>;
-	};
-	simple-audio-card,cpu@1 {
-		sound-dai = <&rcar_sound 1>;
-	};
-	simple-audio-card,codec {
-		...
-	};
-};
-
-&rcar_sound {
-	...
-	rcar_sound,dai {
-		dai0 {
-			playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>;
-		};
-		dai1 {
-			playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>;
-		};
-	};
-};
-
-=============================================
-Example: simple sound card for TDM
-=============================================
-
-rsnd_tdm: sound {
-	compatible = "simple-audio-card";
-
-	simple-audio-card,format = "left_j";
-	simple-audio-card,bitclock-master = <&sndcodec>;
-	simple-audio-card,frame-master = <&sndcodec>;
-
-	sndcpu: simple-audio-card,cpu {
-		sound-dai = <&rcar_sound>;
-		dai-tdm-slot-num = <6>;
-	};
-
-	sndcodec: simple-audio-card,codec {
-		sound-dai = <&xxx>;
-	};
-};
-
-=============================================
-Example: simple sound card for TDM Split
-=============================================
-
-sound_card: sound {
-	compatible = "audio-graph-scu-card";
-	prefix = "xxxx";
-	routing = "xxxx Playback", "DAI0 Playback",
-		  "xxxx Playback", "DAI1 Playback",
-		  "xxxx Playback", "DAI2 Playback",
-		  "xxxx Playback", "DAI3 Playback";
-	convert-channels = <8>; /* TDM Split */
-
-	dais = <&rsnd_port0     /* playback ch1/ch2 */
-		&rsnd_port1     /* playback ch3/ch4 */
-		&rsnd_port2     /* playback ch5/ch6 */
-		&rsnd_port3     /* playback ch7/ch8 */
-		>;
-};
-
-audio-codec {
-	...
-	port {
-		codec_0: endpoint@1 {
-			remote-endpoint = <&rsnd_ep0>;
-		};
-		codec_1: endpoint@2 {
-			remote-endpoint = <&rsnd_ep1>;
-		};
-		codec_2: endpoint@3 {
-			remote-endpoint = <&rsnd_ep2>;
-		};
-		codec_3: endpoint@4 {
-			remote-endpoint = <&rsnd_ep3>;
-		};
-	};
-};
-
-&rcar_sound {
-	...
-	ports {
-		rsnd_port0: port@0 {
-			rsnd_ep0: endpoint {
-				remote-endpoint = <&codec_0>;
-				...
-				playback = <&ssiu30 &ssi3>;
-			};
-		};
-		rsnd_port1: port@1 {
-			rsnd_ep1: endpoint {
-				remote-endpoint = <&codec_1>;
-				...
-				playback = <&ssiu31 &ssi3>;
-			};
-		};
-		rsnd_port2: port@2 {
-			rsnd_ep2: endpoint {
-				remote-endpoint = <&codec_2>;
-				...
-				playback = <&ssiu32 &ssi3>;
-			};
-		};
-		rsnd_port3: port@3 {
-			rsnd_ep3: endpoint {
-				remote-endpoint = <&codec_3>;
-				...
-				playback = <&ssiu33 &ssi3>;
-			};
-		};
-	};
-};
-
-=============================================
-Example: simple sound card for Multi channel
-=============================================
-
-&rcar_sound {
-	pinctrl-0 = <&sound_pins &sound_clk_pins>;
-	pinctrl-names = "default";
-
-	/* Single DAI */
-	#sound-dai-cells = <0>;
-
-
-	rcar_sound,dai {
-		dai0 {
-			playback = <&ssi0 &ssi1 &ssi2 &src0 &dvc0>;
-		};
-	};
-};
diff --git a/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml b/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml
new file mode 100644
index 000000000000..6311938f61b1
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml
@@ -0,0 +1,456 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/renesas,rsnd.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Renesas R-Car Sound Driver Device Tree Bindings
+
+maintainers:
+  - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+
+properties:
+
+  compatible:
+    oneOf:
+      # for Gen1 SoC
+      - items:
+          - enum:
+            - renesas,rcar_sound-r8a7778   # R-Car M1A
+            - renesas,rcar_sound-r8a7779   # R-Car H1
+          - enum:
+            - renesas,rcar_sound-gen1
+      # for Gen2 SoC
+      - items:
+          - enum:
+              - renesas,rcar_sound-r8a7742   # RZ/G1H
+              - renesas,rcar_sound-r8a7743   # RZ/G1M
+              - renesas,rcar_sound-r8a7744   # RZ/G1N
+              - renesas,rcar_sound-r8a7745   # RZ/G1E
+              - renesas,rcar_sound-r8a77470  # RZ/G1C
+              - renesas,rcar_sound-r8a7790   # R-Car H2
+              - renesas,rcar_sound-r8a7791   # R-Car M2-W
+              - renesas,rcar_sound-r8a7793   # R-Car M2-N
+              - renesas,rcar_sound-r8a7794   # R-Car E2
+          - enum:
+              - renesas,rcar_sound-gen2
+      # for Gen3 SoC
+      - items:
+          - enum:
+              - renesas,rcar_sound-r8a774a1  # RZ/G2M
+              - renesas,rcar_sound-r8a774b1  # RZ/G2N
+              - renesas,rcar_sound-r8a774c0  # RZ/G2E
+              - renesas,rcar_sound-r8a774e1  # RZ/G2H
+              - renesas,rcar_sound-r8a7795   # R-Car H3
+              - renesas,rcar_sound-r8a7796   # R-Car M3-W
+              - renesas,rcar_sound-r8a77965  # R-Car M3-N
+              - renesas,rcar_sound-r8a77990  # R-Car E3
+              - renesas,rcar_sound-r8a77995  # R-Car D3
+          - enum:
+              - renesas,rcar_sound-gen3
+      # for Generic
+      - items:
+          - enum:
+              - renesas,rcar_sound-gen1
+              - renesas,rcar_sound-gen2
+              - renesas,rcar_sound-gen3
+
+  reg:
+    minItems: 1
+    maxItems: 5
+
+  reg-names:
+    minItems: 1
+    maxItems: 5
+
+  "#sound-dai-cells":
+    description: |
+      it must be 0 if your system is using single DAI
+      it must be 1 if your system is using multi  DAIs
+    enum: [0, 1]
+
+  "#clock-cells":
+    description: |
+      it must be 0 if your system has audio_clkout
+      it must be 1 if your system has audio_clkout0/1/2/3
+    enum: [0, 1]
+
+  clock-frequency:
+    description: for audio_clkout0/1/2/3
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+
+  clkout-lr-asynchronous:
+    description: audio_clkoutn is asynchronizes with lr-clock.
+    $ref: /schemas/types.yaml#/definitions/flag
+
+  power-domains: true
+
+  resets:
+    maxItems: 11
+
+  reset-names:
+    maxItems: 11
+
+  clocks:
+    description: References to SSI/SRC/MIX/CTU/DVC/AUDIO_CLK clocks.
+    minItems:  1
+    maxItems: 31
+
+  clock-names:
+    description: List of necessary clock names.
+    minItems:  1
+    maxItems: 31
+    items:
+      oneOf:
+        - const:   ssi-all
+        - pattern: '^ssi\.[0-9]$'
+        - pattern: '^src\.[0-9]$'
+        - pattern: '^mix\.[0-1]$'
+        - pattern: '^ctu\.[0-1]$'
+        - pattern: '^dvc\.[0-1]$'
+        - pattern: '^clk_(a|b|c|i)$'
+
+  port:
+    description: OF-Graph subnode
+    $ref: "audio-graph-card.yaml#/properties/port"
+
+  ports:
+    description: multi OF-Graph subnode
+    $ref: "audio-graph-card.yaml#/properties/ports"
+
+# use patternProperties to avoid naming "xxx,yyy" issue
+patternProperties:
+  "^rcar_sound,dvc$":
+    description: DVC subnode.
+    type: object
+    patternProperties:
+      "^dvc-[0-1]$":
+        type: object
+        properties:
+          dmas:
+            maxItems: 1
+          dma-names:
+            const: "tx"
+        required:
+          - dmas
+          - dma-names
+    additionalProperties: false
+
+  "^rcar_sound,mix$":
+    description: MIX subnode.
+    type: object
+    patternProperties:
+      "^mix-[0-1]$":
+        type: object
+        # no propaties
+    additionalProperties: false
+
+  "^rcar_sound,ctu$":
+    description: CTU subnode.
+    type: object
+    patternProperties:
+      "^ctu-[0-7]$":
+        type: object
+        # no propaties
+    additionalProperties: false
+
+  "^rcar_sound,src$":
+    description: SRC subnode.
+    type: object
+    patternProperties:
+      "^src-[0-9]$":
+        type: object
+        properties:
+          interrupts:
+            maxItems: 1
+          dmas:
+            maxItems: 2
+          dma-names:
+            allOf:
+              - items:
+                  enum:
+                    - tx
+                    - rx
+        allOf:
+          - if:
+              properties:
+                status:
+                  const: "ok"
+            then:
+              required:
+                - interrupts
+                - dmas
+                - dma-names
+    additionalProperties: false
+
+  "^rcar_sound,ssiu$":
+    description: SSIU subnode.
+    type: object
+    patternProperties:
+      "^ssiu-[0-9]+$":
+        type: object
+        properties:
+          dmas:
+            maxItems: 2
+          dma-names:
+            allOf:
+              - items:
+                  enum:
+                    - tx
+                    - rx
+        required:
+          - dmas
+          - dma-names
+    additionalProperties: false
+
+  "^rcar_sound,ssi$":
+    description: SSI subnode.
+    type: object
+    patternProperties:
+      "^ssi-[0-9]$":
+        type: object
+        properties:
+          interrupts:
+            maxItems: 1
+          dmas:
+            minItems: 2
+            maxItems: 4
+          dma-names:
+            allOf:
+              - items:
+                  enum:
+                    - tx
+                    - rx
+                    - txu # if no ssiu node
+                    - rxu # if no ssiu node
+
+          shared-pin:
+            description: shared clock pin
+            $ref: /schemas/types.yaml#/definitions/flag
+          pio-transfer:
+            description: PIO transfer mode
+            $ref: /schemas/types.yaml#/definitions/flag
+          no-busif:
+            description: BUSIF is not used when [mem -> SSI] via DMA case
+            $ref: /schemas/types.yaml#/definitions/flag
+        required:
+          - interrupts
+          - dmas
+          - dma-names
+    additionalProperties: false
+
+  # For DAI base
+  "^rcar_sound,dai$":
+    description: DAI subnode.
+    type: object
+    patternProperties:
+      "^dai([0-9]+)?$":
+        type: object
+        properties:
+          playback:
+            $ref: /schemas/types.yaml#/definitions/phandle-array
+          capture:
+            $ref: /schemas/types.yaml#/definitions/phandle-array
+        anyOf:
+          - required:
+              - playback
+          - required:
+              - capture
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - clocks
+  - clock-names
+  - "#sound-dai-cells"
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,rcar_sound-gen1
+    then:
+      properties:
+        reg:
+          maxItems: 3
+        reg-names:
+          maxItems: 3
+          items:
+            enum:
+              - scu
+              - ssi
+              - adg
+    else:
+      properties:
+        reg:
+          maxItems: 5
+        reg-names:
+          maxItems: 5
+          items:
+            enum:
+              - scu
+              - adg
+              - ssiu
+              - ssi
+              - audmapp
+
+additionalProperties: false
+
+examples:
+  - |
+    rcar_sound: sound@ec500000 {
+        #sound-dai-cells = <1>;
+        compatible = "renesas,rcar_sound-r8a7790", "renesas,rcar_sound-gen2";
+        reg = <0xec500000 0x1000>, /* SCU  */
+              <0xec5a0000 0x100>,  /* ADG  */
+              <0xec540000 0x1000>, /* SSIU */
+              <0xec541000 0x1280>, /* SSI  */
+              <0xec740000 0x200>;  /* Audio DMAC peri peri*/
+        reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
+
+        clocks = <&mstp10_clks 1005>,                      /* SSI-ALL    */
+                 <&mstp10_clks 1006>, <&mstp10_clks 1007>, /* SSI9, SSI8 */
+                 <&mstp10_clks 1008>, <&mstp10_clks 1009>, /* SSI7, SSI6 */
+                 <&mstp10_clks 1010>, <&mstp10_clks 1011>, /* SSI5, SSI4 */
+                 <&mstp10_clks 1012>, <&mstp10_clks 1013>, /* SSI3, SSI2 */
+                 <&mstp10_clks 1014>, <&mstp10_clks 1015>, /* SSI1, SSI0 */
+                 <&mstp10_clks 1022>, <&mstp10_clks 1023>, /* SRC9, SRC8 */
+                 <&mstp10_clks 1024>, <&mstp10_clks 1025>, /* SRC7, SRC6 */
+                 <&mstp10_clks 1026>, <&mstp10_clks 1027>, /* SRC5, SRC4 */
+                 <&mstp10_clks 1028>, <&mstp10_clks 1029>, /* SRC3, SRC2 */
+                 <&mstp10_clks 1030>, <&mstp10_clks 1031>, /* SRC1, SRC0 */
+                 <&mstp10_clks 1020>, <&mstp10_clks 1021>, /* MIX1, MIX0 */
+                 <&mstp10_clks 1020>, <&mstp10_clks 1021>, /* CTU1, CTU0 */
+                 <&mstp10_clks 1019>, <&mstp10_clks 1018>, /* DVC0, DVC1 */
+                 <&audio_clk_a>, <&audio_clk_b>,           /* CLKA, CLKB */
+                 <&audio_clk_c>, <&audio_clk_i>;           /* CLKC, CLKI */
+
+        clock-names = "ssi-all",
+                      "ssi.9", "ssi.8",
+                      "ssi.7", "ssi.6",
+                      "ssi.5", "ssi.4",
+                      "ssi.3", "ssi.2",
+                      "ssi.1", "ssi.0",
+                      "src.9", "src.8",
+                      "src.7", "src.6",
+                      "src.5", "src.4",
+                      "src.3", "src.2",
+                      "src.1", "src.0",
+                      "mix.1", "mix.0",
+                      "ctu.1", "ctu.0",
+                      "dvc.0", "dvc.1",
+                      "clk_a", "clk_b",
+                      "clk_c", "clk_i";
+
+        rcar_sound,dvc {
+               dvc0: dvc-0 {
+                    dmas = <&audma0 0xbc>;
+                    dma-names = "tx";
+               };
+               dvc1: dvc-1 {
+                    dmas = <&audma0 0xbe>;
+                    dma-names = "tx";
+               };
+        };
+
+        rcar_sound,mix {
+            mix0: mix-0 { };
+            mix1: mix-1 { };
+        };
+
+        rcar_sound,ctu {
+            ctu00: ctu-0 { };
+            ctu01: ctu-1 { };
+            ctu02: ctu-2 { };
+            ctu03: ctu-3 { };
+            ctu10: ctu-4 { };
+            ctu11: ctu-5 { };
+            ctu12: ctu-6 { };
+            ctu13: ctu-7 { };
+        };
+
+        rcar_sound,src {
+            src0: src-0 {
+                status = "disabled";
+            };
+            src1: src-1 {
+                interrupts = <0 353 0>;
+                dmas = <&audma0 0x87>, <&audma1 0x9c>;
+                dma-names = "rx", "tx";
+            };
+            /* skip after src-2 */
+        };
+
+        rcar_sound,ssiu {
+            ssiu00: ssiu-0 {
+                dmas = <&audma0 0x15>, <&audma1 0x16>;
+                dma-names = "rx", "tx";
+            };
+            ssiu01: ssiu-1 {
+                dmas = <&audma0 0x35>, <&audma1 0x36>;
+                dma-names = "rx", "tx";
+            };
+            /* skip after ssiu-2 */
+        };
+
+        rcar_sound,ssi {
+            ssi0: ssi-0 {
+                interrupts = <0 370 1>;
+                dmas = <&audma0 0x01>, <&audma1 0x02>;
+                dma-names = "rx", "tx";
+            };
+            ssi1: ssi-1 {
+                interrupts = <0 371 1>;
+                dmas = <&audma0 0x03>, <&audma1 0x04>;
+                dma-names = "rx", "tx";
+            };
+            /* skip other ssi-2 */
+        };
+
+        /* DAI base */
+        rcar_sound,dai {
+            dai0 {
+                playback = <&ssi5 &src5>;
+                capture  = <&ssi6>;
+            };
+            dai1 {
+                playback = <&ssi3>;
+            };
+            dai2 {
+                capture  = <&ssi4>;
+            };
+            dai3 {
+                playback = <&ssi7>;
+            };
+            dai4 {
+                capture  = <&ssi8>;
+            };
+        };
+
+        /* assume audio-graph */
+        port {
+            rsnd_endpoint: endpoint {
+                remote-endpoint = <&codec_endpoint>;
+
+                dai-format = "left_j";
+                bitclock-master = <&rsnd_endpoint0>;
+                frame-master = <&rsnd_endpoint0>;
+
+                playback = <&ssi0 &src0 &dvc0>;
+                capture  = <&ssi1 &src1 &dvc1>;
+            };
+        };
+    };
+
+
+    /* assume audio-graph */
+    codec {
+        port {
+            codec_endpoint: endpoint {
+                remote-endpoint = <&rsnd_endpoint>;
+            };
+        };
+    };
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v3 3/3] dt-bindings: ASoC: renesas,rsnd: Add r8a77961 support
  2020-10-22  0:45 [PATCH v3 0/3] ASoC: dt-bindings: audio-graph-card: switch to yaml base Documentation Kuninori Morimoto
  2020-10-22  0:46 ` [PATCH v3 1/3] " Kuninori Morimoto
  2020-10-22  0:46 ` [PATCH v3 2/3] ASoC: dt-bindings: renesas, rsnd: " Kuninori Morimoto
@ 2020-10-22  0:46 ` Kuninori Morimoto
  2 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2020-10-22  0:46 UTC (permalink / raw)
  To: Rob Herring, Mark Brown; +Cc: devicetree, alsa-devel, Sameer Pujar


From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

Document R-Car M3-W+ (R8A77961) SoC bindings.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 Documentation/devicetree/bindings/sound/renesas,rsnd.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml b/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml
index 6311938f61b1..c1581d0f9b21 100644
--- a/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml
+++ b/Documentation/devicetree/bindings/sound/renesas,rsnd.yaml
@@ -43,6 +43,7 @@ properties:
               - renesas,rcar_sound-r8a774e1  # RZ/G2H
               - renesas,rcar_sound-r8a7795   # R-Car H3
               - renesas,rcar_sound-r8a7796   # R-Car M3-W
+              - renesas,rcar_sound-r8a77961  # R-Car M3-W+
               - renesas,rcar_sound-r8a77965  # R-Car M3-N
               - renesas,rcar_sound-r8a77990  # R-Car E3
               - renesas,rcar_sound-r8a77995  # R-Car D3
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH v3 1/3] ASoC: dt-bindings: audio-graph-card: switch to yaml base Documentation
  2020-10-22  0:46 ` [PATCH v3 1/3] " Kuninori Morimoto
@ 2020-10-22  5:19   ` Sameer Pujar
  2020-10-27  4:52     ` Kuninori Morimoto
  2020-10-27  5:32     ` Kuninori Morimoto
  2020-10-23 13:52   ` Sameer Pujar
  1 sibling, 2 replies; 16+ messages in thread
From: Sameer Pujar @ 2020-10-22  5:19 UTC (permalink / raw)
  To: Kuninori Morimoto, Rob Herring, Mark Brown; +Cc: devicetree, alsa-devel

Hi Morimoto-san,

> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
>
> This patch switches from .txt base to .yaml base Document.
>
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> ---
>   .../bindings/sound/audio-graph-card.txt       | 337 ------------------
>   .../bindings/sound/audio-graph-card.yaml      | 165 +++++++++
>   .../devicetree/bindings/vendor-prefixes.yaml  |   2 +-
>   3 files changed, 166 insertions(+), 338 deletions(-)
>   delete mode 100644 Documentation/devicetree/bindings/sound/audio-graph-card.txt
>   create mode 100644 Documentation/devicetree/bindings/sound/audio-graph-card.yaml
>
> diff --git a/Documentation/devicetree/bindings/sound/audio-graph-card.txt b/Documentation/devicetree/bindings/sound/audio-graph-card.txt
> deleted file mode 100644
> index d5f6919a2d69..000000000000
> --- a/Documentation/devicetree/bindings/sound/audio-graph-card.txt
> +++ /dev/null
> @@ -1,337 +0,0 @@
...
> diff --git a/Documentation/devicetree/bindings/sound/audio-graph-card.yaml b/Documentation/devicetree/bindings/sound/audio-graph-card.yaml
> new file mode 100644
> index 000000000000..9ccffbda86a8
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/audio-graph-card.yaml
> @@ -0,0 +1,165 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/audio-graph-card.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Audio Graph Card Driver Device Tree Bindings
> +
> +maintainers:
> +  - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> +

> +properties:
> +  compatible:
> +    enum:
> +      - audio-graph-card
> +      - audio-graph-scu-card

Since I am trying to re-use most of audio-graph for Tegra, can 
'compatible' be moved to a separate schema?
For example,
audio-graph.yaml -> defines all the common stuff
audio-graph-card.yaml -> audio-graph.yaml + 'compatible' property
Similarly, tegra-audio-graph-card.yaml -> audio-graph.yaml + Tegra 
'compatible' property

> +
> +  dais:
> +    $ref: /schemas/types.yaml#/definitions/phandle-array
> +  label:
> +    maxItems: 1
> +  prefix:
> +    description: "device name prefix"
> +    $ref: /schemas/types.yaml#/definitions/string
> +  "audio-graph-card,prefix":
> +    description: "device name prefix"
> +    $ref: /schemas/types.yaml#/definitions/string
> +  routing:
> +    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.
> +    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
> +  widgets:
> +    description: User specified audio sound widgets.
> +    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
> +  convert-rate:
> +    description: CPU to Codec rate convert.
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +  "audio-graph-card,convert-rate":
> +    description: CPU to Codec rate convert.
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +  convert-channels:
> +    description: CPU to Codec rate channels.
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +  "audio-graph-card,convert-channels":
> +    description: CPU to Codec rate channels.
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +  pa-gpios:
> +    maxItems: 1
> +  hp-det-gpio:
> +    maxItems: 1
> +  mic-det-gpio:
> +    maxItems: 1
> +

> +  endpoint:
> +    type: object
> +    properties:
> +      remote-endpoint:
> +        maxItems: 1
> +      mclk-fs:
> +        description: |
> +          Multiplication factor between stream rate and codec mclk.
> +          When defined, mclk-fs property defined in dai-link sub nodes are ignored.
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +      frame-inversion:
> +        description: dai-link uses frame clock inversion
> +        $ref: /schemas/types.yaml#/definitions/flag
> +      bitclock-inversion:
> +        description: dai-link uses bit clock inversion
> +        $ref: /schemas/types.yaml#/definitions/flag
> +      frame-master:
> +        description: Indicates dai-link frame master.
> +        $ref: /schemas/types.yaml#/definitions/phandle-array
> +        maxItems: 1
> +      bitclock-master:
> +        description: Indicates dai-link bit clock master
> +        $ref: /schemas/types.yaml#/definitions/phandle-array
> +        maxItems: 1
> +      dai-format:
> +        description: audio format.
> +        items:
> +          enum:
> +            - i2s
> +            - right_j
> +            - left_j
> +            - dsp_a
> +            - dsp_b
> +            - ac97
> +            - pdm
> +            - msb
> +            - lsb
> +      convert-rate:
> +        description: CPU to Codec rate convert.
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +      convert-channels:
> +        description: CPU to Codec rate channels.
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +    required:
> +      - remote-endpoint

Is it possible to have endpoint without port nodes?

> +
> +  port:
> +    description: single OF-Graph subnode
> +    type: object
> +    properties:
> +      reg:
> +        maxItems: 1
> +      prefix:
> +        description: "device name prefix"
> +        $ref: /schemas/types.yaml#/definitions/string
> +      convert-rate:
> +        description: CPU to Codec rate convert.
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +      convert-channels:
> +        description: CPU to Codec rate channels.
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +    patternProperties:
> +      "^endpoint(@[0-9a-f]+)?":
> +        $ref: "#/properties/endpoint"
> +
> +  ports:
> +    description: multi OF-Graph subnode
> +    type: object
> +    patternProperties:
> +      "^port(@[0-9a-f]+)?":
> +        $ref: "#/properties/port"
> +
> +required:
> +  - compatible
> +  - dais
> +

> +additionalProperties: false
> +

This needs to be true when other files want to reference this schema 
and/or define some additional properties.

> +examples:
> +  - |
> +    sound {
> +        compatible = "audio-graph-card";
> +
> +        dais = <&cpu_port_a>;
> +    };
> +
> +    cpu {
> +        /*
> +         * dai-controller own settings
> +         */
> +
> +        port {
> +            cpu_endpoint: endpoint {
> +                remote-endpoint = <&codec_endpoint>;
> +                dai-format = "left_j";
> +            };
> +        };
> +    };
> +
> +    codec {
> +        /*
> +         * codec own settings
> +         */
> +
> +        port {
> +            codec_endpoint: endpoint {
> +                remote-endpoint = <&cpu_endpoint>;
> +            };
> +        };
> +    };
> diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
> index 63996ab03521..5ada35ddac7e 100644
> --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
> +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
> @@ -20,7 +20,7 @@ patternProperties:
>     "^(keypad|m25p|max8952|max8997|max8998|mpmc),.*": true
>     "^(pinctrl-single|#pinctrl-single|PowerPC),.*": true
>     "^(pl022|pxa-mmc|rcar_sound|rotary-encoder|s5m8767|sdhci),.*": true
> -  "^(simple-audio-card|st-plgpio|st-spics|ts),.*": true
> +  "^(simple-audio-card|audio-graph-card|st-plgpio|st-spics|ts),.*": true
>
>     # Keep list in alphabetical order.
>     "^70mai,.*":
> --
> 2.25.1
>


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v3 1/3] ASoC: dt-bindings: audio-graph-card: switch to yaml base Documentation
  2020-10-22  0:46 ` [PATCH v3 1/3] " Kuninori Morimoto
  2020-10-22  5:19   ` Sameer Pujar
@ 2020-10-23 13:52   ` Sameer Pujar
  2020-10-25 23:07     ` Kuninori Morimoto
  1 sibling, 1 reply; 16+ messages in thread
From: Sameer Pujar @ 2020-10-23 13:52 UTC (permalink / raw)
  To: Kuninori Morimoto, Rob Herring, Mark Brown; +Cc: devicetree, alsa-devel

Hi Morimoto-san,

> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
>
> This patch switches from .txt base to .yaml base Document.
>
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> ---
>   .../bindings/sound/audio-graph-card.txt       | 337 ------------------
>   .../bindings/sound/audio-graph-card.yaml      | 165 +++++++++
>   .../devicetree/bindings/vendor-prefixes.yaml  |   2 +-
>   3 files changed, 166 insertions(+), 338 deletions(-)
>   delete mode 100644 Documentation/devicetree/bindings/sound/audio-graph-card.txt
>   create mode 100644 Documentation/devicetree/bindings/sound/audio-graph-card.yaml

...

> +
> +  port:
> +    description: single OF-Graph subnode
> +    type: object
> +    properties:
> +      reg:
> +        maxItems: 1
> +      prefix:
> +        description: "device name prefix"
> +        $ref: /schemas/types.yaml#/definitions/string
> +      convert-rate:
> +        description: CPU to Codec rate convert.
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +      convert-channels:
> +        description: CPU to Codec rate channels.
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +    patternProperties:
> +      "^endpoint(@[0-9a-f]+)?":
> +        $ref: "#/properties/endpoint"
> +
> +  ports:
> +    description: multi OF-Graph subnode
> +    type: object
> +    patternProperties:
> +      "^port(@[0-9a-f]+)?":
> +        $ref: "#/properties/port"
> +

Can these be referenced from graph.yaml (port and ports properties) and 
only additonal properties (specific to audio-graph) could be populated here?

...

> diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
> index 63996ab03521..5ada35ddac7e 100644
> --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
> +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
> @@ -20,7 +20,7 @@ patternProperties:
>     "^(keypad|m25p|max8952|max8997|max8998|mpmc),.*": true
>     "^(pinctrl-single|#pinctrl-single|PowerPC),.*": true
>     "^(pl022|pxa-mmc|rcar_sound|rotary-encoder|s5m8767|sdhci),.*": true
> -  "^(simple-audio-card|st-plgpio|st-spics|ts),.*": true
> +  "^(simple-audio-card|audio-graph-card|st-plgpio|st-spics|ts),.*": true
>
>     # Keep list in alphabetical order.
>     "^70mai,.*":
> --
> 2.25.1
>


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v3 2/3] ASoC: dt-bindings: renesas, rsnd: switch to yaml base Documentation
  2020-10-22  0:46 ` [PATCH v3 2/3] ASoC: dt-bindings: renesas, rsnd: " Kuninori Morimoto
@ 2020-10-23 16:06   ` Rob Herring
  0 siblings, 0 replies; 16+ messages in thread
From: Rob Herring @ 2020-10-23 16:06 UTC (permalink / raw)
  To: Kuninori Morimoto
  Cc: devicetree, alsa-devel, Mark Brown, Sameer Pujar, Rob Herring

On Thu, 22 Oct 2020 09:46:36 +0900, Kuninori Morimoto wrote:
> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> 
> This patch switches from .txt base to .yaml base Document.
> It is still keeping detail explanations at .txt
> 
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> ---
>  .../bindings/sound/renesas,rsnd.txt           | 520 ------------------
>  .../bindings/sound/renesas,rsnd.yaml          | 456 +++++++++++++++
>  2 files changed, 456 insertions(+), 520 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/sound/renesas,rsnd.yaml
> 


My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:
./Documentation/devicetree/bindings/sound/renesas,rsnd.yaml:19:13: [warning] wrong indentation: expected 14 but found 12 (indentation)
./Documentation/devicetree/bindings/sound/renesas,rsnd.yaml:22:13: [warning] wrong indentation: expected 14 but found 12 (indentation)
./Documentation/devicetree/bindings/sound/renesas,rsnd.yaml:96:15: [warning] too many spaces after colon (colons)
./Documentation/devicetree/bindings/sound/renesas,rsnd.yaml:101:15: [warning] too many spaces after colon (colons)
./Documentation/devicetree/bindings/sound/renesas,rsnd.yaml:105:19: [warning] too many spaces after colon (colons)

dtschema/dtc warnings/errors:


See https://patchwork.ozlabs.org/patch/1385840

The base for the patch is generally the last rc1. Any dependencies
should be noted.

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.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v3 1/3] ASoC: dt-bindings: audio-graph-card: switch to yaml base Documentation
  2020-10-23 13:52   ` Sameer Pujar
@ 2020-10-25 23:07     ` Kuninori Morimoto
  2020-10-26  2:49       ` Sameer Pujar
  0 siblings, 1 reply; 16+ messages in thread
From: Kuninori Morimoto @ 2020-10-25 23:07 UTC (permalink / raw)
  To: Sameer Pujar; +Cc: devicetree, Mark Brown, Rob Herring, alsa-devel


Hi Sameer

Thank you for your proposal.

> > From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> > 
> > This patch switches from .txt base to .yaml base Document.
> > 
> > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> > ---
> >   .../bindings/sound/audio-graph-card.txt       | 337 ------------------
> >   .../bindings/sound/audio-graph-card.yaml      | 165 +++++++++
> >   .../devicetree/bindings/vendor-prefixes.yaml  |   2 +-
> >   3 files changed, 166 insertions(+), 338 deletions(-)
> >   delete mode 100644 Documentation/devicetree/bindings/sound/audio-graph-card.txt
> >   create mode 100644 Documentation/devicetree/bindings/sound/audio-graph-card.yaml
> 
> ...
> 
> > +
> > +  port:
> > +    description: single OF-Graph subnode
> > +    type: object
> > +    properties:
> > +      reg:
> > +        maxItems: 1
> > +      prefix:
> > +        description: "device name prefix"
> > +        $ref: /schemas/types.yaml#/definitions/string
> > +      convert-rate:
> > +        description: CPU to Codec rate convert.
> > +        $ref: /schemas/types.yaml#/definitions/uint32
> > +      convert-channels:
> > +        description: CPU to Codec rate channels.
> > +        $ref: /schemas/types.yaml#/definitions/uint32
> > +    patternProperties:
> > +      "^endpoint(@[0-9a-f]+)?":
> > +        $ref: "#/properties/endpoint"
> > +
> > +  ports:
> > +    description: multi OF-Graph subnode
> > +    type: object
> > +    patternProperties:
> > +      "^port(@[0-9a-f]+)?":
> > +        $ref: "#/properties/port"
> > +
> 
> Can these be referenced from graph.yaml (port and ports properties)
> and only additonal properties (specific to audio-graph) could be
> populated here?

Yes of course.
In such case, I need to wait graph.yaml first I think.

Thank you for your help !!

Best regards
---
Kuninori Morimoto

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v3 1/3] ASoC: dt-bindings: audio-graph-card: switch to yaml base Documentation
  2020-10-25 23:07     ` Kuninori Morimoto
@ 2020-10-26  2:49       ` Sameer Pujar
  2020-10-27  5:22         ` Kuninori Morimoto
  0 siblings, 1 reply; 16+ messages in thread
From: Sameer Pujar @ 2020-10-26  2:49 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: devicetree, Mark Brown, Rob Herring, alsa-devel

Hi Morimoto-san,

>>> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
>>>
>>> This patch switches from .txt base to .yaml base Document.
>>>
>>> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
>>> ---
>>>    .../bindings/sound/audio-graph-card.txt       | 337 ------------------
>>>    .../bindings/sound/audio-graph-card.yaml      | 165 +++++++++
>>>    .../devicetree/bindings/vendor-prefixes.yaml  |   2 +-
>>>    3 files changed, 166 insertions(+), 338 deletions(-)
>>>    delete mode 100644 Documentation/devicetree/bindings/sound/audio-graph-card.txt
>>>    create mode 100644 Documentation/devicetree/bindings/sound/audio-graph-card.yaml
>> ...
>>
>>> +
>>> +  port:
>>> +    description: single OF-Graph subnode
>>> +    type: object
>>> +    properties:
>>> +      reg:
>>> +        maxItems: 1
>>> +      prefix:
>>> +        description: "device name prefix"
>>> +        $ref: /schemas/types.yaml#/definitions/string
>>> +      convert-rate:
>>> +        description: CPU to Codec rate convert.
>>> +        $ref: /schemas/types.yaml#/definitions/uint32
>>> +      convert-channels:
>>> +        description: CPU to Codec rate channels.
>>> +        $ref: /schemas/types.yaml#/definitions/uint32
>>> +    patternProperties:
>>> +      "^endpoint(@[0-9a-f]+)?":
>>> +        $ref: "#/properties/endpoint"
>>> +
>>> +  ports:
>>> +    description: multi OF-Graph subnode
>>> +    type: object
>>> +    patternProperties:
>>> +      "^port(@[0-9a-f]+)?":
>>> +        $ref: "#/properties/port"
>>> +
>> Can these be referenced from graph.yaml (port and ports properties)
>> and only additonal properties (specific to audio-graph) could be
>> populated here?
> Yes of course.
> In such case, I need to wait graph.yaml first I think.

Yes we first need to add graph.yaml, which I started to add in series 
https://lkml.org/lkml/2020/10/16/645
Since there is cyclic dependency between your patch and my series, I 
could probably pull out graph.yaml out of my series and independently 
submit that first.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v3 1/3] ASoC: dt-bindings: audio-graph-card: switch to yaml base Documentation
  2020-10-22  5:19   ` Sameer Pujar
@ 2020-10-27  4:52     ` Kuninori Morimoto
  2020-10-27  6:15       ` Sameer Pujar
  2020-10-27  5:32     ` Kuninori Morimoto
  1 sibling, 1 reply; 16+ messages in thread
From: Kuninori Morimoto @ 2020-10-27  4:52 UTC (permalink / raw)
  To: Sameer Pujar; +Cc: devicetree, Mark Brown, Rob Herring, alsa-devel


Hi Sameer

> > From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> > 
> > This patch switches from .txt base to .yaml base Document.
> > 
> > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> > ---
(snip)
> > +additionalProperties: false
> > +
> 
> This needs to be true when other files want to reference this schema
> and/or define some additional properties.

*Current* audio-graph-card doesn't assume such case.
I think you need to update it when you support tegra-audio-graph

Thank you for your help !!

Best regards
---
Kuninori Morimoto

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v3 1/3] ASoC: dt-bindings: audio-graph-card: switch to yaml base Documentation
  2020-10-26  2:49       ` Sameer Pujar
@ 2020-10-27  5:22         ` Kuninori Morimoto
  0 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2020-10-27  5:22 UTC (permalink / raw)
  To: Sameer Pujar; +Cc: devicetree, Mark Brown, Rob Herring, alsa-devel


Hi Sameer

> >> Can these be referenced from graph.yaml (port and ports properties)
> >> and only additonal properties (specific to audio-graph) could be
> >> populated here?
> > Yes of course.
> > In such case, I need to wait graph.yaml first I think.
> 
> Yes we first need to add graph.yaml, which I started to add in series
> https://lkml.org/lkml/2020/10/16/645
> Since there is cyclic dependency between your patch and my series, I
> could probably pull out graph.yaml out of my series and independently
> submit that first.

I noticed that graph.yaml is not enough for audio-graph.
Because audio-graph needs extra propaties for endpoint,
and your endpoint is defined under port.
Maybe can't add additonal propaties (?) for it ?

Maybe we can, but I'm not expert of Json-Schema.
It is very difficult for me to create even *standard* ones.
I will continue current style to avoid unknown error
(It always indicates me unknown error :()

Thank you for your help !!

Best regards
---
Kuninori Morimoto

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v3 1/3] ASoC: dt-bindings: audio-graph-card: switch to yaml base Documentation
  2020-10-22  5:19   ` Sameer Pujar
  2020-10-27  4:52     ` Kuninori Morimoto
@ 2020-10-27  5:32     ` Kuninori Morimoto
  2020-10-27  6:03       ` Sameer Pujar
  1 sibling, 1 reply; 16+ messages in thread
From: Kuninori Morimoto @ 2020-10-27  5:32 UTC (permalink / raw)
  To: Sameer Pujar; +Cc: devicetree, Mark Brown, Rob Herring, alsa-devel


Hi Sameer

> > From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> > 
> > This patch switches from .txt base to .yaml base Document.
> > 
> > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
(snip)
> Since I am trying to re-use most of audio-graph for Tegra, can
> 'compatible' be moved to a separate schema?
> For example,
> audio-graph.yaml -> defines all the common stuff
> audio-graph-card.yaml -> audio-graph.yaml + 'compatible' property
> Similarly, tegra-audio-graph-card.yaml -> audio-graph.yaml + Tegra
> 'compatible' property

I'm not expert of Json-Schema, and it sound very expert technique for me.
(It always indicates me unknown errors...)
I'm posting this patch since many month ago, and not yet accepted
for many reasons (audio-graph DT is very complex).
I spend many times for it and finally come to the point where it
can (might) be accepted. 
I'm sorry but I want to finish this work,
this means I don't want to customize it any more.
If I try it, it needs more month...

Thank you for your help !!

Best regards
---
Kuninori Morimoto

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v3 1/3] ASoC: dt-bindings: audio-graph-card: switch to yaml base Documentation
  2020-10-27  5:32     ` Kuninori Morimoto
@ 2020-10-27  6:03       ` Sameer Pujar
  2020-10-28 16:04         ` Rob Herring
  0 siblings, 1 reply; 16+ messages in thread
From: Sameer Pujar @ 2020-10-27  6:03 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: devicetree, Mark Brown, Rob Herring, alsa-devel

Hi Morimoto-san,

>>> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
>>>
>>> This patch switches from .txt base to .yaml base Document.
>>>
>>> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> (snip)
>> Since I am trying to re-use most of audio-graph for Tegra, can
>> 'compatible' be moved to a separate schema?
>> For example,
>> audio-graph.yaml -> defines all the common stuff
>> audio-graph-card.yaml -> audio-graph.yaml + 'compatible' property
>> Similarly, tegra-audio-graph-card.yaml -> audio-graph.yaml + Tegra
>> 'compatible' property
> I'm not expert of Json-Schema, and it sound very expert technique for me.
> (It always indicates me unknown errors...)
> I'm posting this patch since many month ago, and not yet accepted
> for many reasons (audio-graph DT is very complex).
> I spend many times for it and finally come to the point where it
> can (might) be accepted.
> I'm sorry but I want to finish this work,
> this means I don't want to customize it any more.
> If I try it, it needs more month...

I am not a json-schema expert either :) From earlier comments on Tegra 
audio graph series, above re-use is possible I suppose. I depend on your 
audio-graph documentation and for 'compatible' I am seeing error. So I 
thought it may be fine to split audio-graph into two json-schemas now 
itself. Otherwise I need to do it separately in my series if I want to 
re-use your audio-graph, which is fine with me.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v3 1/3] ASoC: dt-bindings: audio-graph-card: switch to yaml base Documentation
  2020-10-27  4:52     ` Kuninori Morimoto
@ 2020-10-27  6:15       ` Sameer Pujar
  0 siblings, 0 replies; 16+ messages in thread
From: Sameer Pujar @ 2020-10-27  6:15 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: devicetree, Mark Brown, Rob Herring, alsa-devel

Hi Morimoto-san,

>>> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
>>>
>>> This patch switches from .txt base to .yaml base Document.
>>>
>>> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
>>> ---
> (snip)
>>> +additionalProperties: false
>>> +
>> This needs to be true when other files want to reference this schema
>> and/or define some additional properties.
> *Current* audio-graph-card doesn't assume such case.
> I think you need to update it when you support tegra-audio-graph
This would be applicable when we want to split audio graph documentation 
into two schemas now itself. May be I will do this in my series.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v3 1/3] ASoC: dt-bindings: audio-graph-card: switch to yaml base Documentation
  2020-10-27  6:03       ` Sameer Pujar
@ 2020-10-28 16:04         ` Rob Herring
  2020-10-28 23:33           ` Kuninori Morimoto
  0 siblings, 1 reply; 16+ messages in thread
From: Rob Herring @ 2020-10-28 16:04 UTC (permalink / raw)
  To: Sameer Pujar; +Cc: devicetree, alsa-devel, Mark Brown, Kuninori Morimoto

On Tue, Oct 27, 2020 at 11:33:49AM +0530, Sameer Pujar wrote:
> Hi Morimoto-san,
> 
> > > > From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> > > > 
> > > > This patch switches from .txt base to .yaml base Document.
> > > > 
> > > > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> > (snip)
> > > Since I am trying to re-use most of audio-graph for Tegra, can
> > > 'compatible' be moved to a separate schema?
> > > For example,
> > > audio-graph.yaml -> defines all the common stuff
> > > audio-graph-card.yaml -> audio-graph.yaml + 'compatible' property
> > > Similarly, tegra-audio-graph-card.yaml -> audio-graph.yaml + Tegra
> > > 'compatible' property
> > I'm not expert of Json-Schema, and it sound very expert technique for me.
> > (It always indicates me unknown errors...)
> > I'm posting this patch since many month ago, and not yet accepted
> > for many reasons (audio-graph DT is very complex).
> > I spend many times for it and finally come to the point where it
> > can (might) be accepted.
> > I'm sorry but I want to finish this work,
> > this means I don't want to customize it any more.
> > If I try it, it needs more month...
> 
> I am not a json-schema expert either :) From earlier comments on Tegra audio
> graph series, above re-use is possible I suppose. I depend on your
> audio-graph documentation and for 'compatible' I am seeing error. So I
> thought it may be fine to split audio-graph into two json-schemas now
> itself. Otherwise I need to do it separately in my series if I want to
> re-use your audio-graph, which is fine with me.

I think this part must be sorted out. Defining the graph schema could 
come later though.

With compatible dropped from audio-graph.yaml, 
audio-graph-scu-card.yaml would look like this:

allOf:
  - $ref: audio-graph.yaml

properties:
  compatible:
    const: audio-graph-scu-card

unevaluatedProperties: false


However, What is 'audio-graph-scu-card' supposed to mean compared to 
'audio-graph-card'. It's never used by the driver or in any dts file.

Rob


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v3 1/3] ASoC: dt-bindings: audio-graph-card: switch to yaml base Documentation
  2020-10-28 16:04         ` Rob Herring
@ 2020-10-28 23:33           ` Kuninori Morimoto
  0 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2020-10-28 23:33 UTC (permalink / raw)
  To: Rob Herring; +Cc: devicetree, Sameer Pujar, Mark Brown, alsa-devel


Hi Rob

> However, What is 'audio-graph-scu-card' supposed to mean compared to 
> 'audio-graph-card'. It's never used by the driver or in any dts file.

It supports advanced use case of audio-graph-card,
but because of it, no *upstream* code is using it so far
(user need to select it locally for now).
Now I'm planning to remove it, but it will be next year.

Thank you for your help !!

Best regards
---
Kuninori Morimoto

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2020-10-28 23:34 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-22  0:45 [PATCH v3 0/3] ASoC: dt-bindings: audio-graph-card: switch to yaml base Documentation Kuninori Morimoto
2020-10-22  0:46 ` [PATCH v3 1/3] " Kuninori Morimoto
2020-10-22  5:19   ` Sameer Pujar
2020-10-27  4:52     ` Kuninori Morimoto
2020-10-27  6:15       ` Sameer Pujar
2020-10-27  5:32     ` Kuninori Morimoto
2020-10-27  6:03       ` Sameer Pujar
2020-10-28 16:04         ` Rob Herring
2020-10-28 23:33           ` Kuninori Morimoto
2020-10-23 13:52   ` Sameer Pujar
2020-10-25 23:07     ` Kuninori Morimoto
2020-10-26  2:49       ` Sameer Pujar
2020-10-27  5:22         ` Kuninori Morimoto
2020-10-22  0:46 ` [PATCH v3 2/3] ASoC: dt-bindings: renesas, rsnd: " Kuninori Morimoto
2020-10-23 16:06   ` Rob Herring
2020-10-22  0:46 ` [PATCH v3 3/3] dt-bindings: ASoC: renesas,rsnd: Add r8a77961 support Kuninori Morimoto

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).