Re: [PATCH v1 01/12] dt-bindings: usb: add support for dwc3 controller on HiSilicon SoCs

From: Rob Herring
Date: Wed Dec 19 2018 - 09:09:59 EST


On Mon, Dec 03, 2018 at 05:28:56PM +0800, Chen Yu wrote:
> Hi,
>
> On 2018/12/3 16:59, Sergei Shtylyov wrote:
> > On 03.12.2018 11:51, Chen Yu wrote:
> >
> >>>> This patch adds binding descriptions to support the dwc3 controller
> >>>> on HiSilicon SoCs and boards like the HiKey960.
> >>>>
> >>>> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> >>>> Cc: Rob Herring <robh+dt@xxxxxxxxxx>
> >>>> Cc: Mark Rutland <mark.rutland@xxxxxxx>
> >>>> Cc: John Stultz <john.stultz@xxxxxxxxxx>
> >>>> Signed-off-by: Yu Chen <chenyu56@xxxxxxxxxx>
> >>>> ---
> >>>>    .../devicetree/bindings/usb/dwc3-hisi.txt          | 67 ++++++++++++++++++++++
> >>>>    1 file changed, 67 insertions(+)
> >>>>    create mode 100644 Documentation/devicetree/bindings/usb/dwc3-hisi.txt
> >>>>
> >>>> diff --git a/Documentation/devicetree/bindings/usb/dwc3-hisi.txt b/Documentation/devicetree/bindings/usb/dwc3-hisi.txt
> >>>> new file mode 100644
> >>>> index 000000000000..d32d2299a0a1
> >>>> --- /dev/null
> >>>> +++ b/Documentation/devicetree/bindings/usb/dwc3-hisi.txt
> >>>> @@ -0,0 +1,67 @@
> >>>> +HiSilicon DWC3 USB SoC controller
> >>>> +
> >>>> +This file documents the parameters for the dwc3-hisi driver.
> >>>> +
> >>>> +Required properties:
> >>>> +- compatible:    should be "hisilicon,hi3660-dwc3"
> >>>> +- clocks:    A list of phandle + clock-specifier pairs for the
> >>>> +        clocks listed in clock-names
> >>>> +- clock-names:    Specify clock names
> >>>> +- resets:    list of phandle and reset specifier pairs.
> >>>> +
> >>>> +Sub-nodes:
> >>>> +The dwc3 core should be added as subnode to HiSilicon DWC3 as shown in the
> >>>> +example below. The DT binding details of dwc3 can be found in:
> >>>> +Documentation/devicetree/bindings/usb/dwc3.txt
> >>>> +
> >>>> +Example:
> >>>> +    usb3: hisi_dwc3 {
> >>>> +        compatible = "hisilicon,hi3660-dwc3";
> >>>> +        #address-cells = <2>;
> >>>> +        #size-cells = <2>;
> >>>> +        ranges;
> >>>> +
> >>>> +        clocks = <&crg_ctrl HI3660_CLK_ABB_USB>,
> >>>> +             <&crg_ctrl HI3660_ACLK_GATE_USB3OTG>;
> >>>> +        clock-names = "clk_usb3phy_ref", "aclk_usb3otg";
> >>>> +        assigned-clocks = <&crg_ctrl HI3660_ACLK_GATE_USB3OTG>;
> >>>> +        assigned-clock-rates = <229000000>;
> >>>> +        resets = <&crg_rst 0x90 8>,
> >>>> +             <&crg_rst 0x90 7>,
> >>>> +             <&crg_rst 0x90 6>,
> >>>> +             <&crg_rst 0x90 5>;
> >>>> +
> >>>> +        dwc3: dwc3@ff100000 {

Please combine these into a single node. Unless you have a wrapper with
registers, you don't need these 2 nodes. Clocks and reset can go in the
dwc3 node.

> >>>
> >>>      According to the DT spec, the node names should be generic, not chip specific, i.e. usb@ff100000 in this case.
> >>>
> >>
> >> Do you mean it should be usb@ff100000: dwc3@ff100000 ?
> >
> >     dwc3: usb@ff100000
> >
> >    "dwc3:" is a label, not name.
>
> I use the node name "dwc3@ff100000" according to Documentation/devicetree/bindings/usb/dwc3.txt
> and documentations of vendor drivers, i.e. qcom,dwc3.txt, rockchip,dwc3.txt.
>
> In these documentations, the dwc3 sub-node name uses "dwc3@xxxxxxxx".
>
> I think it is better to be same as the other vendor's dwc3 drivers.

It's not. The other bindings are wrong. Follow the DT Spec.

Rob