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

Yu, Richard richard.yu at hpe.com
Fri Nov 4 13:03:48 PDT 2022


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 at linaro.org> 
Sent: Thursday, November 3, 2022 11:30 AM
To: Yu, Richard <richard.yu at hpe.com>; Verdun, Jean-Marie <verdun at hpe.com>; Hawkins, Nick <nick.hawkins at hpe.com>; gregkh at linuxfoundation.org; robh+dt at kernel.org; krzysztof.kozlowski+dt at linaro.org; linux at armlinux.org.uk; balbi at kernel.org; linux-usb at vger.kernel.org; devicetree at vger.kernel.org; linux-kernel at vger.kernel.org; linux-arm-kernel at lists.infradead.org
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 at hpe.com wrote:
> From: Richard Yu <richard.yu at hpe.com>
> 

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 at hpe.com>
> ---
>  .../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 at hpe.com>
> +  - Jean-Marie Verdun <verdun at hpe.com>
> +  - Nick Hawkins <nick.hawkins at hpe.com>
> +
> +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 at 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



More information about the linux-arm-kernel mailing list