Re: [PATCH v2 1/2] dt-bindings: Add Qualcomm USB Super-Speed PHY bindings

From: Jorge Ramirez
Date: Wed Feb 06 2019 - 09:11:56 EST


On 2/5/19 12:02, Jorge Ramirez wrote:
> On 1/30/19 21:02, Rob Herring wrote:
>> On Tue, Jan 29, 2019 at 12:35:14PM +0100, Jorge Ramirez-Ortiz wrote:
>>> Binding description for Qualcomm's Synopsys 1.0.0 super-speed PHY
>>> controller embedded in QCS404.
>>>
>>> Based on Sriharsha Allenki's <sallenki@xxxxxxxxxxxxxx> original
>>> definitions.
>>>
>>> Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@xxxxxxxxxx>
>>> ---
>>> .../devicetree/bindings/usb/qcom,usb-ssphy.txt | 73 ++++++++++++++++++++++
>>> 1 file changed, 73 insertions(+)
>>> create mode 100644 Documentation/devicetree/bindings/usb/qcom,usb-ssphy.txt
>>>
>>> diff --git a/Documentation/devicetree/bindings/usb/qcom,usb-ssphy.txt b/Documentation/devicetree/bindings/usb/qcom,usb-ssphy.txt
>>> new file mode 100644
>>> index 0000000..8ef6e39
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/usb/qcom,usb-ssphy.txt
>>> @@ -0,0 +1,73 @@
>>> +Qualcomm Synopsys 1.0.0 SS phy controller
>>> +===========================================
>>> +
>>> +Synopsys 1.0.0 ss phy controller supports SS usb connectivity on Qualcomm
>>> +chipsets
>>> +
>>> +Required properties:
>>> +
>>> +- compatible:
>>> + Value type: <string>
>>> + Definition: Should contain "qcom,usb-ssphy".
>>
>> This is in no way specific enough.
>
> ok. will remove the old unused bindings and reuse qcom,dwc3-ss-usb-phy
>
>>
>>> +
>>> +- reg:
>>> + Value type: <prop-encoded-array>
>>> + Definition: USB PHY base address and length of the register map.
>>> +
>>> +- #phy-cells:
>>> + Value type: <u32>
>>> + Definition: Should be 0. See phy/phy-bindings.txt for details.
>>> +
>>> +- clocks:
>>> + Value type: <prop-encoded-array>
>>> + Definition: See clock-bindings.txt section "consumers". List of
>>> + three clock specifiers for reference, phy core and
>>> + pipe clocks.
>>> +
>>> +- clock-names:
>>> + Value type: <string>
>>> + Definition: Names of the clocks in 1-1 correspondence with the "clocks"
>>> + property. Must contain "ref", "phy" and "pipe".
>>> +
>>> +- vdd-supply:
>>> + Value type: <phandle>
>>> + Definition: phandle to the regulator VDD supply node.
>>> +
>>> +- vdda1p8-supply:
>>> + Value type: <phandle>
>>> + Definition: phandle to the regulator 1.8V supply node.
>>> +
>>> +
>>> +Optional child nodes:
>>> +
>>> +- vbus-supply:
>>> + Value type: <phandle>
>>> + Definition: phandle to the VBUS supply node.
>>
>> Does the phy actually get supplied by Vbus? If not, then Vbus supply
>> should be defined in a USB connector node.
>
> yes per the documentation vbus can optionally be routed to the phy to
> drive a signal to the controller.


funny enough when vbus is optionally routed to the phy is not to be
controlled like we do when the vbus-supply property is present.

So to all effects no, you are right, the phy does not get supplied by VBUS.

would defining the connector like this be enough?

usb3_phy: usb3-phy@78000 {
compatible = "qcom,snps-usb-ssphy";
[...]
usb3_c_connector: usb3-c-connector {
compatible = "usb-c-connector";
label = "USB-C";
type = "micro";
vbus-supply = <&usb3_vbus_reg>;
};
};


>
>
>>
>>> +
>>> +- resets:
>>> + Value type: <prop-encoded-array>
>>> + Definition: See reset.txt section "consumers". PHY reset specifiers
>>> + for phy core and COR resets.
>>
>> COR or COM?
>
> com
>>
>> Looks to me the order is reversed.
>
> yes
>
>>
>>> +
>>> +- reset-names:
>>> + Value type: <string>
>>> + Definition: Names of the resets in 1-1 correspondence with the "resets"
>>> + property. Must contain "com" and "phy".
>>> +
>>> +Example:
>>> +
>>> +usb3_phy: phy@78000 {
>>
>> usb3-phy@...
>
> ok
>
>>
>>> + compatible = "qcom,usb-ssphy";
>>> + reg = <0x78000 0x400>;
>>> + #phy-cells = <0>;
>>> + clocks = <&rpmcc RPM_SMD_LN_BB_CLK>,
>>> + <&gcc GCC_USB_HS_PHY_CFG_AHB_CLK>,
>>> + <&gcc GCC_USB3_PHY_PIPE_CLK>;
>>> + clock-names = "ref", "phy", "pipe";
>>> + resets = <&gcc GCC_USB3_PHY_BCR>,
>>> + <&gcc GCC_USB3PHY_PHY_BCR>;
>>> + reset-names = "com", "phy";
>>> + vdd-supply = <&vreg_l3_1p05>;
>>> + vdda1p8-supply = <&vreg_l5_1p8>;
>>> + vbus-supply = <&usb3_vbus_reg>;
>>> +};
>>> --
>>> 2.7.4
>>>
>>
>