Message ID | 20220718134458.19137-2-phil.edworthy@renesas.com |
---|---|
State | Superseded |
Headers | show |
Series | Add usb gadget support for RZ/V2M | expand |
Hi Krzysztof, Thanks for your review! On 18 July 2022 14:55 Krzysztof Kozlowski wrote: > On 18/07/2022 15:44, 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> > > --- > > .../bindings/usb/renesas,usb3-peri.yaml | 81 +++++++++++++++---- > > 1 file changed, 66 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..28f785dd2012 100644 > > --- a/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml > > +++ b/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml > > @@ -11,27 +11,49 @@ maintainers: <snip> > > interrupts: > > - maxItems: 1 > > + minItems: 1 > > + items: > > + - description: Combined interrupt for DMA, SYS and ERR > > + - description: Dual Role Device (DRD) > > + > > + interrupt-names: > > minItems:1 > > > + items: > > + - const: all_p > > + - const: drd > > > > 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 +65,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 +108,27 @@ required: > > - interrupts > > - clocks > > > > +allOf: > > + - if: > > + properties: > > + compatible: > > + contains: > > + enum: > > + - renesas,rzv2m-usb3-peri > > + then: > > + properties: > > + clocks: > > + minItems: 2 > > + interrupts: > > + minItems: 2 > > + resets: > > + minItems: 2 > > + required: > > + - clock-names > > + - interrupt-names > > + - resets > > + - reset-names > > else: > narrow the number of items Sorry, I don't understand why we need minItems: 1 for interrupt-names/clock-names, but then I'm easily confused! None of the existing users have any interrupt-names/clock-names hence they are not in required. The rzv2m is the only device that needs them so the driver can get them by name, and hence it sets minItems: 2 Thanks Phil
On 18/07/2022 17:24, Phil Edworthy wrote: >>> phys: >>> maxItems: 1 >>> @@ -43,7 +65,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 +108,27 @@ required: >>> - interrupts >>> - clocks >>> >>> +allOf: >>> + - if: >>> + properties: >>> + compatible: >>> + contains: >>> + enum: >>> + - renesas,rzv2m-usb3-peri >>> + then: >>> + properties: >>> + clocks: >>> + minItems: 2 >>> + interrupts: >>> + minItems: 2 >>> + resets: >>> + minItems: 2 >>> + required: >>> + - clock-names >>> + - interrupt-names >>> + - resets >>> + - reset-names >> >> else: >> narrow the number of items > Sorry, I don't understand why we need minItems: 1 for > interrupt-names/clock-names, but then I'm easily confused! > > None of the existing users have any interrupt-names/clock-names > hence they are not in required. The rzv2m is the only device > that needs them so the driver can get them by name, and hence > it sets minItems: 2 They are not required but they can appear. Nothing prevents it, based on your patch. Best regards, Krzysztof
Hi Krzysztof, On 19 July 2022 07:38 Krzysztof Kozlowski wrote: > On 18/07/2022 17:24, Phil Edworthy wrote: > >>> phys: > >>> maxItems: 1 > >>> @@ -43,7 +65,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 +108,27 @@ required: > >>> - interrupts > >>> - clocks > >>> > >>> +allOf: > >>> + - if: > >>> + properties: > >>> + compatible: > >>> + contains: > >>> + enum: > >>> + - renesas,rzv2m-usb3-peri > >>> + then: > >>> + properties: > >>> + clocks: > >>> + minItems: 2 + clock-names: + minItems: 2 (See below) > >>> + interrupts: > >>> + minItems: 2 + interrupt-names: + minItems: 2 (See below) > >>> + resets: > >>> + minItems: 2 > >>> + required: > >>> + - clock-names > >>> + - interrupt-names > >>> + - resets > >>> + - reset-names > >> > >> else: > >> narrow the number of items > > Sorry, I don't understand why we need minItems: 1 for > > interrupt-names/clock-names, but then I'm easily confused! > > > > None of the existing users have any interrupt-names/clock-names > > hence they are not in required. The rzv2m is the only device > > that needs them so the driver can get them by name, and hence > > it sets minItems: 2 > > They are not required but they can appear. Nothing prevents it, based on > your patch. Ok, but instead of 'else: narrow the number of items', shouldn't I set the clock-names/interrupt-names 'minItems: 2' for rzv2m as above? This is because they will now default to 'minItems: 1' after your comment? Thanks Phil
On 19/07/2022 11:01, Phil Edworthy wrote: > Hi Krzysztof, > > On 19 July 2022 07:38 Krzysztof Kozlowski wrote: >> On 18/07/2022 17:24, Phil Edworthy wrote: >>>>> phys: >>>>> maxItems: 1 >>>>> @@ -43,7 +65,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 +108,27 @@ required: >>>>> - interrupts >>>>> - clocks >>>>> >>>>> +allOf: >>>>> + - if: >>>>> + properties: >>>>> + compatible: >>>>> + contains: >>>>> + enum: >>>>> + - renesas,rzv2m-usb3-peri >>>>> + then: >>>>> + properties: >>>>> + clocks: >>>>> + minItems: 2 > + clock-names: > + minItems: 2 > (See below) > >>>>> + interrupts: >>>>> + minItems: 2 > + interrupt-names: > + minItems: 2 > (See below) > >>>>> + resets: >>>>> + minItems: 2 >>>>> + required: >>>>> + - clock-names >>>>> + - interrupt-names >>>>> + - resets >>>>> + - reset-names >>>> >>>> else: >>>> narrow the number of items >>> Sorry, I don't understand why we need minItems: 1 for >>> interrupt-names/clock-names, but then I'm easily confused! >>> >>> None of the existing users have any interrupt-names/clock-names >>> hence they are not in required. The rzv2m is the only device >>> that needs them so the driver can get them by name, and hence >>> it sets minItems: 2 >> >> They are not required but they can appear. Nothing prevents it, based on >> your patch. > > Ok, but instead of 'else: narrow the number of items', shouldn't I > set the clock-names/interrupt-names 'minItems: 2' for rzv2m as above? Yes. Best regards, Krzysztof
Hi On 18 July 2022 14:45 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> > --- > .../bindings/usb/renesas,usb3-peri.yaml | 81 +++++++++++++++---- > 1 file changed, 66 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..28f785dd2012 100644 > --- a/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml > +++ b/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml > @@ -11,27 +11,49 @@ maintainers: > <snip> > interrupts: > - maxItems: 1 > + minItems: 1 > + items: > + - description: Combined interrupt for DMA, SYS and ERR > + - description: Dual Role Device (DRD) Note to reviewers: I have found two other interrupts related to DRD that need to be added to the bindings: "Battery Charging" and "Global Purpose Input". These will be added in the next version. Rgds Phil
Hi Phil, On Mon, Jul 18, 2022 at 3:45 PM Phil Edworthy <phil.edworthy@renesas.com> 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> Thanks for your patch! The grant scheme looks good to me, so I'm awaiting your v2, incorporating the review comments, and the additional interrupts. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
diff --git a/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml b/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml index 9fcf54b10b07..28f785dd2012 100644 --- a/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml +++ b/Documentation/devicetree/bindings/usb/renesas,usb3-peri.yaml @@ -11,27 +11,49 @@ 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) + + interrupt-names: + items: + - const: all_p + - const: drd clocks: - maxItems: 1 + minItems: 1 + items: + - description: Main clock + - description: Register access clock + + clock-names: + items: + - const: aclk + - const: reg phys: maxItems: 1 @@ -43,7 +65,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 +108,27 @@ required: - interrupts - clocks +allOf: + - if: + properties: + compatible: + contains: + enum: + - renesas,rzv2m-usb3-peri + then: + properties: + clocks: + minItems: 2 + interrupts: + minItems: 2 + resets: + minItems: 2 + required: + - clock-names + - interrupt-names + - resets + - reset-names + additionalProperties: false examples: