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

From: Chen Yu
Date: Wed Dec 19 2018 - 20:33:30 EST


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
>
> .
>