Hi, On 2018/12/19 22:09, Rob Herring wrote: > 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. Yes, clocks can go in the dwc3 node, but there are four resets need to be deasserted for dwc3 usb of Hi3660 Soc and there is only one reset handled in dwc3 driver. > >>>>> >>>>> 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 > > . >