RE: [PATCH v1 2/7] dt-bindings: usb: hpe,gxp-udc: Add binding for gxp gadget

From: Yu, Richard
Date: Fri Nov 04 2022 - 16:05:23 EST


Hi Mr. Kozlowski,

Thank you very much for your quick review and feedbacks.

I will modify the patches based on your feedback accordingly.

On this specific patch, you have questions on how we defined the device/gadget configurations: vdevnum and fepnum.

Please see my answers following the questions:

> + vdevnum:
> + description:
> + virtual device number.

That's unusual property... Why numbering devices is part of DT (hardware description)?

>> Richard: In HPE GXP virtual EHCI controller chipset, it can support up to 8 virtual devices(gadgets). Each device/gadget will be represented by a bit in 8 bits register. For example, the interrupt register bit 0 indicates the interrupt from device 0, bit 1 for device 1 ... so on. When an user defines a device/gadget, he/she can define the device number as between 0 and 7. Thus, the driver can up to the bit position. That is why we have numbering devices as port of DT.

> +
> + fepnum:
> + description:
> + number of the flexible end-points this device is needed.

Similar question.

>>Richard: In HPE GXP virtual EHCI Controller chipset, there is a flexible EP pool. Each flexible EP has its own mapping register. The mapping register bit 0 to 3 is for device number (vdevnum) and bit 4 to 7 is for EP number inside the device. The device driver configures the mapping register to assign a flexible EP to a specific device. Here, "fepnum" is the input letting the driver know how many EP is needed for this device/gadget.

Hope I have answered your questions on "vdevnum" and "fepnum".

I will modify this patch to address your other review feedback.

Thank you very much again.

Richard.

-----Original Message-----
From: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
Sent: Thursday, November 3, 2022 11:30 AM
To: Yu, Richard <richard.yu@xxxxxxx>; Verdun, Jean-Marie <verdun@xxxxxxx>; Hawkins, Nick <nick.hawkins@xxxxxxx>; gregkh@xxxxxxxxxxxxxxxxxxx; robh+dt@xxxxxxxxxx; krzysztof.kozlowski+dt@xxxxxxxxxx; linux@xxxxxxxxxxxxxxx; balbi@xxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [PATCH v1 2/7] dt-bindings: usb: hpe,gxp-udc: Add binding for gxp gadget

On 03/11/2022 12:06, richard.yu@xxxxxxx wrote:
> From: Richard Yu <richard.yu@xxxxxxx>
>

Subject: Drop redundant second "binding" word.

> Create documentation for the hpe,gxp-udc binding to support access to
> the virtual USB device.
>
> Signed-off-by: Richard Yu <richard.yu@xxxxxxx>
> ---
> .../devicetree/bindings/usb/hpe,gxp-udc.yaml | 57
> +++++++++++++++++++
> 1 file changed, 57 insertions(+)
> create mode 100644
> Documentation/devicetree/bindings/usb/hpe,gxp-udc.yaml
>
> diff --git a/Documentation/devicetree/bindings/usb/hpe,gxp-udc.yaml
> b/Documentation/devicetree/bindings/usb/hpe,gxp-udc.yaml
> new file mode 100644
> index 000000000000..f1ec4df8c3d3
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/hpe,gxp-udc.yaml
> @@ -0,0 +1,57 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2
> +---
> +$id:
> +INVALID URI REMOVED
> +-udc.yaml*__;Iw!!NpxR!lKDMWE_W38KLY2gXH0dY1rG-bU4JwIyme_DMzeppYO9DQ1S
> +wvXeID3RDEEuKBSG81_hsD5gntF_elZhC9yiXT-MvFA$
> +$schema:
> +INVALID URI REMOVED
> +aml*__;Iw!!NpxR!lKDMWE_W38KLY2gXH0dY1rG-bU4JwIyme_DMzeppYO9DQ1SwvXeID
> +3RDEEuKBSG81_hsD5gntF_elZhC9yi3VX-gPg$
> +
> +title: HPE GXP Gadget Universal Device Controller (UDC)
> +
> +maintainers:
> + - Richard Yu <richard.yu@xxxxxxx>
> + - Jean-Marie Verdun <verdun@xxxxxxx>
> + - Nick Hawkins <nick.hawkins@xxxxxxx>
> +
> +properties:
> + compatible:
> + const: hpe,gxp-udc
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + vdevnum:
> + description:
> + virtual device number.

That's unusual property... Why numbering devices is part of DT (hardware description)?

> +
> + fepnum:
> + description:
> + number of the flexible end-points this device is needed.

Similar question.

BTW, if you end sentence with '.', it means it is an sentence, so you need to start it with capital letter.

> +
> + hpe,syscon-phandle:

phandle is redudant. You need rather specific name, so "hpe,ehci-syscon"
or whatever it is.


> + $ref: '/schemas/types.yaml#/definitions/phandle'


No quotes.

> + description:
> + Phandle to the gxp vEHCI controller access vDevice registers.

Drop "Phandle to"

Isn't "gxp" a GXP?

> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - vdevnum
> + - fepnum
> + - hpe,syscon-phandle
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + udc@80401000 {

Node name "usb", I think it is more popular for USB controllers.

> + compatible = "hpe,gxp-udc";
> + reg = <0x80401000 0x1000>;
> + interrupts = <13>;
> + interrupt-parent = <&vic1>;
> + vdevnum = <0>;
> + fepnum = <7>;
> + hpe,syscon-phandle = <&udc_system_controller>;
> + };

Best regards,
Krzysztof