From: Wesley Cheng <quic_wcheng@quicinc.com>
On SM8750, the M31 eUSB2 PHY is being used to support USB2. Add the
binding definition for the PHY driver.
Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
Signed-off-by: Melody Olvera <quic_molvera@quicinc.com>
---
.../bindings/phy/qcom,m31-eusb2-phy.yaml | 84 ++++++++++++++++++++++
1 file changed, 84 insertions(+)
diff --git a/Documentation/devicetree/bindings/phy/qcom,m31-eusb2-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,m31-eusb2-phy.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..5eba90e270e2b90a71cc8072fefe5994cdd1f605
--- /dev/null
+++ b/Documentation/devicetree/bindings/phy/qcom,m31-eusb2-phy.yaml
@@ -0,0 +1,84 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/qcom,m31-eusb2-phy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm M31 eUSB2 phy
+
+maintainers:
+ - Wesley Cheng <quic_wcheng@quicinc.com>
+
+description:
+ M31 based eUSB2 controller, which supports LS/FS/HS usb connectivity
+ on Qualcomm chipsets. It is paired with a eUSB2 repeater.
+
+properties:
+ compatible:
+ items:
+ - enum:
+ - qcom,sm8750-m31-eusb2-phy
+
+ reg:
+ maxItems: 1
+
+ "#phy-cells":
+ const: 0
+
+ clocks:
+ items:
+ - description: reference clock
+
+ clock-names:
+ items:
+ - const: ref
+
+ resets:
+ maxItems: 1
+
+ phys:
+ maxItems: 1
+ description:
+ Phandle to eUSB2 repeater
+
+ vdd-supply:
+ description:
+ Phandle to 0.88V regulator supply to PHY digital circuit.
+
+ vdda12-supply:
+ description:
+ Phandle to 1.2V regulator supply to PHY refclk pll block.
+
+required:
+ - compatible
+ - reg
+ - "#phy-cells"
+ - clocks
+ - clock-names
+ - vdd-supply
+ - vdda12-supply
+ - resets
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/qcom,sm8750-gcc.h>
+ #include <dt-bindings/clock/qcom,rpmh.h>
+ #include <dt-bindings/clock/qcom,sm8750-tcsr.h>
+
+ usb_1_hsphy: phy@88e3000 {
+ compatible = "qcom,sm8750-m31-eusb2-phy";
+ reg = <0x88e3000 0x29c>;
+
+ clocks = <&tcsrcc TCSR_USB2_CLKREF_EN>;
+ clock-names = "ref";
+
+ resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
+
+ #phy-cells = <0>;
+
+ vdd-supply = <&vreg_l2d_0p88>;
+ vdda12-supply = <&vreg_l3g_1p2>;
+
+ };
--
2.46.1
On 13.01.2025 10:52 PM, Melody Olvera wrote: > From: Wesley Cheng <quic_wcheng@quicinc.com> > > On SM8750, the M31 eUSB2 PHY is being used to support USB2. Add the > binding definition for the PHY driver. > > Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com> > Signed-off-by: Melody Olvera <quic_molvera@quicinc.com> > --- [...] BCR>; > + > + #phy-cells = <0>; > + > + vdd-supply = <&vreg_l2d_0p88>; > + vdda12-supply = <&vreg_l3g_1p2>; > + stray newline Konrad > + }; >
On Mon, Jan 13, 2025 at 01:52:08PM -0800, Melody Olvera wrote:
> From: Wesley Cheng <quic_wcheng@quicinc.com>
>
> On SM8750, the M31 eUSB2 PHY is being used to support USB2. Add the
> binding definition for the PHY driver.
>
> Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
> Signed-off-by: Melody Olvera <quic_molvera@quicinc.com>
> ---
> .../bindings/phy/qcom,m31-eusb2-phy.yaml | 84 ++++++++++++++++++++++
> 1 file changed, 84 insertions(+)
>
> +examples:
> + - |
> + #include <dt-bindings/clock/qcom,sm8750-gcc.h>
> + #include <dt-bindings/clock/qcom,rpmh.h>
> + #include <dt-bindings/clock/qcom,sm8750-tcsr.h>
This a typical comment, please actually update your internal
documentation: don't use GCC's and other clock controller's bindings in
examples for other blocks.
> +
> + usb_1_hsphy: phy@88e3000 {
> + compatible = "qcom,sm8750-m31-eusb2-phy";
> + reg = <0x88e3000 0x29c>;
> +
> + clocks = <&tcsrcc TCSR_USB2_CLKREF_EN>;
> + clock-names = "ref";
> +
> + resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
> +
> + #phy-cells = <0>;
> +
> + vdd-supply = <&vreg_l2d_0p88>;
> + vdda12-supply = <&vreg_l3g_1p2>;
> +
> + };
>
> --
> 2.46.1
>
--
With best wishes
Dmitry
Hi Dmitry,
On 1/14/2025 2:12 AM, Dmitry Baryshkov wrote:
> On Mon, Jan 13, 2025 at 01:52:08PM -0800, Melody Olvera wrote:
>> From: Wesley Cheng <quic_wcheng@quicinc.com>
>>
>> On SM8750, the M31 eUSB2 PHY is being used to support USB2. Add the
>> binding definition for the PHY driver.
>>
>> Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
>> Signed-off-by: Melody Olvera <quic_molvera@quicinc.com>
>> ---
>> .../bindings/phy/qcom,m31-eusb2-phy.yaml | 84 ++++++++++++++++++++++
>> 1 file changed, 84 insertions(+)
>>
>> +examples:
>> + - |
>> + #include <dt-bindings/clock/qcom,sm8750-gcc.h>
>> + #include <dt-bindings/clock/qcom,rpmh.h>
>> + #include <dt-bindings/clock/qcom,sm8750-tcsr.h>
>
> This a typical comment, please actually update your internal
> documentation: don't use GCC's and other clock controller's bindings in
> examples for other blocks.
>
I can see that other examples also reference bindings from external
drivers, otherwise I think it would throw an error for not being able to
find the parents in properties such as, resets and clocks. I tried to
update my dtschema to ensure that this failure was not missed.
I checked and made sure that no errors were not seen, so I started to
wonder if maybe when this series was submitted the qcom,sm8750-gcc.h wasn't
yet present on the kernel tree. To confirm this, I removed the
aforementioned header file, and got the same error/issue. Now that the
sm8750 gcc header has landed upstream, I believe that this error should be
resolved.
Thanks
Wesley Cheng
>> +
>> + usb_1_hsphy: phy@88e3000 {
>> + compatible = "qcom,sm8750-m31-eusb2-phy";
>> + reg = <0x88e3000 0x29c>;
>> +
>> + clocks = <&tcsrcc TCSR_USB2_CLKREF_EN>;
>> + clock-names = "ref";
>> +
>> + resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
>> +
>> + #phy-cells = <0>;
>> +
>> + vdd-supply = <&vreg_l2d_0p88>;
>> + vdda12-supply = <&vreg_l3g_1p2>;
>> +
>> + };
>>
>> --
>> 2.46.1
>>
>
On Thu, Feb 20, 2025 at 07:16:44PM -0800, Wesley Cheng wrote:
> Hi Dmitry,
>
> On 1/14/2025 2:12 AM, Dmitry Baryshkov wrote:
> > On Mon, Jan 13, 2025 at 01:52:08PM -0800, Melody Olvera wrote:
> >> From: Wesley Cheng <quic_wcheng@quicinc.com>
> >>
> >> On SM8750, the M31 eUSB2 PHY is being used to support USB2. Add the
> >> binding definition for the PHY driver.
> >>
> >> Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
> >> Signed-off-by: Melody Olvera <quic_molvera@quicinc.com>
> >> ---
> >> .../bindings/phy/qcom,m31-eusb2-phy.yaml | 84 ++++++++++++++++++++++
> >> 1 file changed, 84 insertions(+)
> >>
> >> +examples:
> >> + - |
> >> + #include <dt-bindings/clock/qcom,sm8750-gcc.h>
> >> + #include <dt-bindings/clock/qcom,rpmh.h>
> >> + #include <dt-bindings/clock/qcom,sm8750-tcsr.h>
> >
> > This a typical comment, please actually update your internal
> > documentation: don't use GCC's and other clock controller's bindings in
> > examples for other blocks.
> >
>
> I can see that other examples also reference bindings from external
> drivers, otherwise I think it would throw an error for not being able to
> find the parents in properties such as, resets and clocks. I tried to
> update my dtschema to ensure that this failure was not missed.
Just use ephemeral nodes. Instead of <&tcsrcc TCSR_USB2_CLKREF_EN> you
can write <&tcsrcc_usb2_clkref_en>. It is an example, nothing more.
>
> I checked and made sure that no errors were not seen, so I started to
> wonder if maybe when this series was submitted the qcom,sm8750-gcc.h wasn't
> yet present on the kernel tree. To confirm this, I removed the
> aforementioned header file, and got the same error/issue. Now that the
> sm8750 gcc header has landed upstream, I believe that this error should be
> resolved.
>
> Thanks
> Wesley Cheng
>
> >> +
> >> + usb_1_hsphy: phy@88e3000 {
> >> + compatible = "qcom,sm8750-m31-eusb2-phy";
> >> + reg = <0x88e3000 0x29c>;
> >> +
> >> + clocks = <&tcsrcc TCSR_USB2_CLKREF_EN>;
> >> + clock-names = "ref";
> >> +
> >> + resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
> >> +
> >> + #phy-cells = <0>;
> >> +
> >> + vdd-supply = <&vreg_l2d_0p88>;
> >> + vdda12-supply = <&vreg_l3g_1p2>;
> >> +
> >> + };
> >>
> >> --
> >> 2.46.1
> >>
> >
--
With best wishes
Dmitry
On Mon, 13 Jan 2025 13:52:08 -0800, Melody Olvera wrote:
> From: Wesley Cheng <quic_wcheng@quicinc.com>
>
> On SM8750, the M31 eUSB2 PHY is being used to support USB2. Add the
> binding definition for the PHY driver.
>
> Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
> Signed-off-by: Melody Olvera <quic_molvera@quicinc.com>
> ---
> .../bindings/phy/qcom,m31-eusb2-phy.yaml | 84 ++++++++++++++++++++++
> 1 file changed, 84 insertions(+)
>
My bot found errors running 'make dt_binding_check' on your patch:
yamllint warnings/errors:
dtschema/dtc warnings/errors:
Documentation/devicetree/bindings/phy/qcom,m31-eusb2-phy.example.dts:18:18: fatal error: dt-bindings/clock/qcom,sm8750-gcc.h: No such file or directory
18 | #include <dt-bindings/clock/qcom,sm8750-gcc.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [scripts/Makefile.dtbs:131: Documentation/devicetree/bindings/phy/qcom,m31-eusb2-phy.example.dtb] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/builds/robherring/dt-review-ci/linux/Makefile:1506: dt_binding_check] Error 2
make: *** [Makefile:251: __sub-make] Error 2
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20250113-sm8750_usb_master-v1-2-09afe1dc2524@quicinc.com
The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
© 2016 - 2025 Red Hat, Inc.