diff mbox series

[v2,1/9] dt-bindings: renesas,sh-msiof: Add MSIOF I2S Sound support

Message ID 87frifh5ls.wl-kuninori.morimoto.gx@renesas.com
State New
Headers show
Series ASoC: add Renesas MSIOF sound driver | expand

Commit Message

Kuninori Morimoto April 11, 2025, 1:03 a.m. UTC
Renesas MSIOF (Clock-Synchronized Serial Interface with FIFO) can work as
both SPI and I2S. MSIOF-I2S will use Audio Graph Card/Card2 driver which
uses Of-Graph in DT.

MSIOF-SPI/I2S are using same DT compatible properties.
MSIOF-I2S         uses Of-Graph for Audio-Graph-Card/Card2,
MSIOF-SPI doesn't use  Of-Graph.

Adds schema for MSIOF-I2S (= Sound).
Because MSIOF is no longer SPI specific device, remove spi specific schema

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 .../bindings/spi/renesas,sh-msiof.yaml        | 23 +++++++++++++------
 1 file changed, 16 insertions(+), 7 deletions(-)

Comments

Rob Herring April 11, 2025, 7:41 p.m. UTC | #1
On Fri, Apr 11, 2025 at 01:03:27AM +0000, Kuninori Morimoto wrote:
> Renesas MSIOF (Clock-Synchronized Serial Interface with FIFO) can work as
> both SPI and I2S. MSIOF-I2S will use Audio Graph Card/Card2 driver which
> uses Of-Graph in DT.
> 
> MSIOF-SPI/I2S are using same DT compatible properties.
> MSIOF-I2S         uses Of-Graph for Audio-Graph-Card/Card2,
> MSIOF-SPI doesn't use  Of-Graph.
> 
> Adds schema for MSIOF-I2S (= Sound).
> Because MSIOF is no longer SPI specific device, remove spi specific schema
> 
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> ---
>  .../bindings/spi/renesas,sh-msiof.yaml        | 23 +++++++++++++------
>  1 file changed, 16 insertions(+), 7 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/spi/renesas,sh-msiof.yaml b/Documentation/devicetree/bindings/spi/renesas,sh-msiof.yaml
> index 49649fc3f95a..9f73120e97c1 100644
> --- a/Documentation/devicetree/bindings/spi/renesas,sh-msiof.yaml
> +++ b/Documentation/devicetree/bindings/spi/renesas,sh-msiof.yaml
> @@ -4,14 +4,11 @@
>  $id: http://devicetree.org/schemas/spi/renesas,sh-msiof.yaml#
>  $schema: http://devicetree.org/meta-schemas/core.yaml#
>  
> -title: Renesas MSIOF SPI controller
> +title: Renesas MSIOF SPI / I2S controller
>  
>  maintainers:
>    - Geert Uytterhoeven <geert+renesas@glider.be>
>  
> -allOf:
> -  - $ref: spi-controller.yaml#

if:
  properties:
    $nodename:
      pattern: '^spi@'
then:
  $ref: spi-controller.yaml#

Or just always use 'spi' node name even if used for i2s.

> -
>  properties:
>    compatible:
>      oneOf:
> @@ -70,6 +67,12 @@ properties:
>            - description: CPU registers
>            - description: DMA engine registers
>  
> +  "#address-cells":
> +    enum: [0, 1]
> +
> +  "#size-cells":
> +    const: 0
> +

Then drop these.

>    interrupts:
>      maxItems: 1
>  
> @@ -146,14 +149,20 @@ properties:
>      $ref: /schemas/types.yaml#/definitions/uint32
>      default: 64
>  
> +  # for MSIOF-I2S
> +  port:
> +    $ref: ../sound/audio-graph-port.yaml#/definitions/port-base
> +    unevaluatedProperties: false
> +    patternProperties:
> +      "^endpoint(@[0-9a-f]+)?":
> +        $ref: audio-graph-port.yaml#/definitions/endpoint-base

The correct way is:

port:
  $ref: audio-graph-port.yaml#
  unevaluatedProperties: false

> +
>  required:
>    - compatible
>    - reg
>    - interrupts
>    - clocks
>    - power-domains
> -  - '#address-cells'
> -  - '#size-cells'
>  
>  if:
>    not:
> @@ -173,7 +182,7 @@ examples:
>      #include <dt-bindings/interrupt-controller/arm-gic.h>
>      #include <dt-bindings/power/r8a7791-sysc.h>
>  
> -    msiof0: spi@e6e20000 {
> +    msiof0: serial-engine@e6e20000 {
>          compatible = "renesas,msiof-r8a7791", "renesas,rcar-gen2-msiof";
>          reg = <0xe6e20000 0x0064>;
>          interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
> -- 
> 2.43.0
>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/spi/renesas,sh-msiof.yaml b/Documentation/devicetree/bindings/spi/renesas,sh-msiof.yaml
index 49649fc3f95a..9f73120e97c1 100644
--- a/Documentation/devicetree/bindings/spi/renesas,sh-msiof.yaml
+++ b/Documentation/devicetree/bindings/spi/renesas,sh-msiof.yaml
@@ -4,14 +4,11 @@ 
 $id: http://devicetree.org/schemas/spi/renesas,sh-msiof.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Renesas MSIOF SPI controller
+title: Renesas MSIOF SPI / I2S controller
 
 maintainers:
   - Geert Uytterhoeven <geert+renesas@glider.be>
 
-allOf:
-  - $ref: spi-controller.yaml#
-
 properties:
   compatible:
     oneOf:
@@ -70,6 +67,12 @@  properties:
           - description: CPU registers
           - description: DMA engine registers
 
+  "#address-cells":
+    enum: [0, 1]
+
+  "#size-cells":
+    const: 0
+
   interrupts:
     maxItems: 1
 
@@ -146,14 +149,20 @@  properties:
     $ref: /schemas/types.yaml#/definitions/uint32
     default: 64
 
+  # for MSIOF-I2S
+  port:
+    $ref: ../sound/audio-graph-port.yaml#/definitions/port-base
+    unevaluatedProperties: false
+    patternProperties:
+      "^endpoint(@[0-9a-f]+)?":
+        $ref: audio-graph-port.yaml#/definitions/endpoint-base
+
 required:
   - compatible
   - reg
   - interrupts
   - clocks
   - power-domains
-  - '#address-cells'
-  - '#size-cells'
 
 if:
   not:
@@ -173,7 +182,7 @@  examples:
     #include <dt-bindings/interrupt-controller/arm-gic.h>
     #include <dt-bindings/power/r8a7791-sysc.h>
 
-    msiof0: spi@e6e20000 {
+    msiof0: serial-engine@e6e20000 {
         compatible = "renesas,msiof-r8a7791", "renesas,rcar-gen2-msiof";
         reg = <0xe6e20000 0x0064>;
         interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;