Message ID | 20220722123107.34122-2-phil.edworthy@renesas.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Add usb gadget support for RZ/V2M | expand |
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 --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: