diff mbox series

[v2,1/2] dt-bindings: usb: renesas, usb3-peri: Document RZ/V2M r9a09g011 support

Message ID 20220722123107.34122-2-phil.edworthy@renesas.com
State Superseded
Headers show
Series Add usb gadget support for RZ/V2M | expand

Commit Message

Phil Edworthy July 22, 2022, 12:31 p.m. UTC
Document the RZ/V2M SoC bindings.
The RZ/V2M SoC is a little different to the R-Car implementations.
A few DRD related registers and bits have moved, there is a separate
interrupt for DRD, an additional clock for register access and reset
lines for DRD and USBP.

Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v2:
 - SoCs other than rz/v2m must limit the number of clock/interrupt names
 - Add "Battery Charging" and "Global Purpose Input" interrupts
---
 .../bindings/usb/renesas,usb3-peri.yaml       | 91 ++++++++++++++++---
 1 file changed, 76 insertions(+), 15 deletions(-)

Comments

Rob Herring (Arm) July 25, 2022, 10:59 p.m. UTC | #1
On Fri, Jul 22, 2022 at 01:31:06PM +0100, Phil Edworthy wrote:
> Document the RZ/V2M SoC bindings.
> The RZ/V2M SoC is a little different to the R-Car implementations.
> A few DRD related registers and bits have moved, there is a separate
> interrupt for DRD, an additional clock for register access and reset
> lines for DRD and USBP.
> 
> Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
> Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
> ---
> v2:
>  - SoCs other than rz/v2m must limit the number of clock/interrupt names
>  - Add "Battery Charging" and "Global Purpose Input" interrupts
> ---
>  .../bindings/usb/renesas,usb3-peri.yaml       | 91 ++++++++++++++++---
>  1 file changed, 76 insertions(+), 15 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml b/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
> index 9fcf54b10b07..b1a3b32139c5 100644
> --- a/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
> +++ b/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
> @@ -11,27 +11,55 @@ maintainers:
>  
>  properties:
>    compatible:
> -    items:
> -      - enum:
> -          - renesas,r8a774a1-usb3-peri # RZ/G2M
> -          - renesas,r8a774b1-usb3-peri # RZ/G2N
> -          - renesas,r8a774c0-usb3-peri # RZ/G2E
> -          - renesas,r8a774e1-usb3-peri # RZ/G2H
> -          - renesas,r8a7795-usb3-peri  # R-Car H3
> -          - renesas,r8a7796-usb3-peri  # R-Car M3-W
> -          - renesas,r8a77961-usb3-peri # R-Car M3-W+
> -          - renesas,r8a77965-usb3-peri # R-Car M3-N
> -          - renesas,r8a77990-usb3-peri # R-Car E3
> -      - const: renesas,rcar-gen3-usb3-peri
> +    oneOf:
> +      - items:
> +          - enum:
> +              - renesas,r8a774a1-usb3-peri # RZ/G2M
> +              - renesas,r8a774b1-usb3-peri # RZ/G2N
> +              - renesas,r8a774c0-usb3-peri # RZ/G2E
> +              - renesas,r8a774e1-usb3-peri # RZ/G2H
> +              - renesas,r8a7795-usb3-peri  # R-Car H3
> +              - renesas,r8a7796-usb3-peri  # R-Car M3-W
> +              - renesas,r8a77961-usb3-peri # R-Car M3-W+
> +              - renesas,r8a77965-usb3-peri # R-Car M3-N
> +              - renesas,r8a77990-usb3-peri # R-Car E3
> +          - const: renesas,rcar-gen3-usb3-peri
> +
> +      - items:
> +          - enum:
> +              - renesas,r9a09g011-usb3-peri # RZ/V2M
> +          - const: renesas,rzv2m-usb3-peri
>  
>    reg:
>      maxItems: 1
>  
>    interrupts:
> -    maxItems: 1
> +    minItems: 1
> +    items:
> +      - description: Combined interrupt for DMA, SYS and ERR
> +      - description: Dual Role Device (DRD)
> +      - description: Battery Charging
> +      - description: Global Purpose Input
> +
> +  interrupt-names:
> +    minItems: 1
> +    items:
> +      - const: all_p
> +      - const: drd
> +      - const: bc
> +      - const: gpi
>  
>    clocks:
> -    maxItems: 1
> +    minItems: 1
> +    items:
> +      - description: Main clock
> +      - description: Register access clock
> +
> +  clock-names:
> +    minItems: 1
> +    items:
> +      - const: aclk
> +      - const: reg
>  
>    phys:
>      maxItems: 1
> @@ -43,7 +71,15 @@ properties:
>      maxItems: 1
>  
>    resets:
> -    maxItems: 1
> +    minItems: 1
> +    items:
> +      - description: Peripheral reset
> +      - description: DRD reset
> +
> +  reset-names:
> +    items:
> +      - const: aresetn_p
> +      - const: drd_reset
>  
>    usb-role-switch:
>      $ref: /schemas/types.yaml#/definitions/flag
> @@ -78,6 +114,31 @@ required:
>    - interrupts
>    - clocks
>  
> +allOf:
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - renesas,rzv2m-usb3-peri
> +    then:
> +      properties:
> +        clocks:
> +          minItems: 2
> +        clock-names:
> +          minItems: 2
> +        interrupts:
> +          minItems: 4
> +        interrupt-names:
> +          minItems: 4
> +        resets:
> +          minItems: 2
> +      required:
> +        - clock-names
> +        - interrupt-names
> +        - resets
> +        - reset-names
> +

Needs an 'else' clause with 'maxItems: 1' on various properties to keep 
the existing constraints.

Rob
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml b/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
index 9fcf54b10b07..b1a3b32139c5 100644
--- a/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
+++ b/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml
@@ -11,27 +11,55 @@  maintainers:
 
 properties:
   compatible:
-    items:
-      - enum:
-          - renesas,r8a774a1-usb3-peri # RZ/G2M
-          - renesas,r8a774b1-usb3-peri # RZ/G2N
-          - renesas,r8a774c0-usb3-peri # RZ/G2E
-          - renesas,r8a774e1-usb3-peri # RZ/G2H
-          - renesas,r8a7795-usb3-peri  # R-Car H3
-          - renesas,r8a7796-usb3-peri  # R-Car M3-W
-          - renesas,r8a77961-usb3-peri # R-Car M3-W+
-          - renesas,r8a77965-usb3-peri # R-Car M3-N
-          - renesas,r8a77990-usb3-peri # R-Car E3
-      - const: renesas,rcar-gen3-usb3-peri
+    oneOf:
+      - items:
+          - enum:
+              - renesas,r8a774a1-usb3-peri # RZ/G2M
+              - renesas,r8a774b1-usb3-peri # RZ/G2N
+              - renesas,r8a774c0-usb3-peri # RZ/G2E
+              - renesas,r8a774e1-usb3-peri # RZ/G2H
+              - renesas,r8a7795-usb3-peri  # R-Car H3
+              - renesas,r8a7796-usb3-peri  # R-Car M3-W
+              - renesas,r8a77961-usb3-peri # R-Car M3-W+
+              - renesas,r8a77965-usb3-peri # R-Car M3-N
+              - renesas,r8a77990-usb3-peri # R-Car E3
+          - const: renesas,rcar-gen3-usb3-peri
+
+      - items:
+          - enum:
+              - renesas,r9a09g011-usb3-peri # RZ/V2M
+          - const: renesas,rzv2m-usb3-peri
 
   reg:
     maxItems: 1
 
   interrupts:
-    maxItems: 1
+    minItems: 1
+    items:
+      - description: Combined interrupt for DMA, SYS and ERR
+      - description: Dual Role Device (DRD)
+      - description: Battery Charging
+      - description: Global Purpose Input
+
+  interrupt-names:
+    minItems: 1
+    items:
+      - const: all_p
+      - const: drd
+      - const: bc
+      - const: gpi
 
   clocks:
-    maxItems: 1
+    minItems: 1
+    items:
+      - description: Main clock
+      - description: Register access clock
+
+  clock-names:
+    minItems: 1
+    items:
+      - const: aclk
+      - const: reg
 
   phys:
     maxItems: 1
@@ -43,7 +71,15 @@  properties:
     maxItems: 1
 
   resets:
-    maxItems: 1
+    minItems: 1
+    items:
+      - description: Peripheral reset
+      - description: DRD reset
+
+  reset-names:
+    items:
+      - const: aresetn_p
+      - const: drd_reset
 
   usb-role-switch:
     $ref: /schemas/types.yaml#/definitions/flag
@@ -78,6 +114,31 @@  required:
   - interrupts
   - clocks
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - renesas,rzv2m-usb3-peri
+    then:
+      properties:
+        clocks:
+          minItems: 2
+        clock-names:
+          minItems: 2
+        interrupts:
+          minItems: 4
+        interrupt-names:
+          minItems: 4
+        resets:
+          minItems: 2
+      required:
+        - clock-names
+        - interrupt-names
+        - resets
+        - reset-names
+
 additionalProperties: false
 
 examples: