2022-04-27 09:33:05

by Matthias Kaehlcke

[permalink] [raw]
Subject: [PATCH v22 1/2] arm64: dts: qcom: sc7180-trogdor: Add nodes for onboard USB hub

Add nodes for the onboard USB hub on trogdor devices. Remove the
'always-on' property from the hub regulator, since the regulator
is now managed by the onboard_usb_hub driver.

Signed-off-by: Matthias Kaehlcke <[email protected]>
Reviewed-by: Stephen Boyd <[email protected]>
Reviewed-by: Douglas Anderson <[email protected]>
---
Depends on "usb: misc: Add onboard_usb_hub driver" [1] which landed in
https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/commit/?h=usb-testing

This patch was split off the above series.

[1] https://patchwork.kernel.org/project/linux-usb/list/?series=615531&state=%2A&archive=both

Changes in v22:
- none

Changes in v21:
- patch dropped from onboard_usb_hub series

Changes in v20:
- renamed hub labels to 'usb_hub_2/3_x'
- added comment for 'regulator-boot-on' of 'pp3300_hub'
- added 'Reviewed-by' tags from Stephen and Doug

Changes in v19:
- none

Changes in v18:
- also adjust config for pompom rev1

Changes in v17:
- none

Changes in v16:
- none

Changes in v15:
- none

Changes in v14:
- none

Changes in v13:
- none

Changes in v12:
- none

Changes in v11:
- rebased on qcom/arm64-for-5.14 (with the rest of the series)

Changes in v10:
- keep 'regulator-boot-on' property
- updated commit message

Changes in v9:
- none

Changes in v8:
- none

Changes in v7:
- rebased on qcom/arm64-for-5.13 (with the rest of the series)

Changes in v6:
- added 'companion-hub' entry to both USB devices
- added 'vdd-supply' also to hub@2

Changes in v5:
- patch added to the series

.../boot/dts/qcom/sc7180-trogdor-lazor-r0.dts | 19 ++++++++----------
.../boot/dts/qcom/sc7180-trogdor-lazor-r1.dts | 12 +++++------
.../dts/qcom/sc7180-trogdor-pompom-r1.dts | 11 ++++------
.../arm64/boot/dts/qcom/sc7180-trogdor-r1.dts | 19 ++++++++----------
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 20 ++++++++++++++++++-
5 files changed, 44 insertions(+), 37 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r0.dts b/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r0.dts
index b142006478ea..caa2d3db4bc4 100644
--- a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r0.dts
+++ b/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r0.dts
@@ -16,17 +16,6 @@ / {
compatible = "google,lazor-rev0", "qcom,sc7180";
};

-&pp3300_hub {
- /* pp3300_l7c is used to power the USB hub */
- /delete-property/regulator-always-on;
- /delete-property/regulator-boot-on;
-};
-
-&pp3300_l7c {
- regulator-always-on;
- regulator-boot-on;
-};
-
&sn65dsi86_out {
/*
* Lane 0 was incorrectly mapped on the cable, but we've now decided
@@ -35,3 +24,11 @@ &sn65dsi86_out {
*/
lane-polarities = <1 0>;
};
+
+&usb_hub_2_x {
+ vdd-supply = <&pp3300_l7c>;
+};
+
+&usb_hub_3_x {
+ vdd-supply = <&pp3300_l7c>;
+};
diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r1.dts b/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r1.dts
index 59740799fa3a..0dc50ed62c46 100644
--- a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r1.dts
+++ b/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r1.dts
@@ -16,13 +16,11 @@ / {
compatible = "google,lazor-rev1", "google,lazor-rev2", "qcom,sc7180";
};

-&pp3300_hub {
- /* pp3300_l7c is used to power the USB hub */
- /delete-property/regulator-always-on;
- /delete-property/regulator-boot-on;
+
+&usb_hub_2_x {
+ vdd-supply = <&pp3300_l7c>;
};

-&pp3300_l7c {
- regulator-always-on;
- regulator-boot-on;
+&usb_hub_3_x {
+ vdd-supply = <&pp3300_l7c>;
};
diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor-pompom-r1.dts b/arch/arm64/boot/dts/qcom/sc7180-trogdor-pompom-r1.dts
index 76a130bad60a..8467ff41e6d5 100644
--- a/arch/arm64/boot/dts/qcom/sc7180-trogdor-pompom-r1.dts
+++ b/arch/arm64/boot/dts/qcom/sc7180-trogdor-pompom-r1.dts
@@ -34,13 +34,10 @@ &pm6150_adc_tm {
/delete-node/ charger-thermistor@0;
};

-&pp3300_hub {
- /* pp3300_l7c is used to power the USB hub */
- /delete-property/regulator-always-on;
- /delete-property/regulator-boot-on;
+&usb_hub_2_x {
+ vdd-supply = <&pp3300_l7c>;
};

-&pp3300_l7c {
- regulator-always-on;
- regulator-boot-on;
+&usb_hub_3_x {
+ vdd-supply = <&pp3300_l7c>;
};
diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor-r1.dts b/arch/arm64/boot/dts/qcom/sc7180-trogdor-r1.dts
index 457c25499863..0cbb7a68d58b 100644
--- a/arch/arm64/boot/dts/qcom/sc7180-trogdor-r1.dts
+++ b/arch/arm64/boot/dts/qcom/sc7180-trogdor-r1.dts
@@ -43,17 +43,6 @@ &panel {
compatible = "auo,b116xa01";
};

-&pp3300_hub {
- /* pp3300_l7c is used to power the USB hub */
- /delete-property/regulator-always-on;
- /delete-property/regulator-boot-on;
-};
-
-&pp3300_l7c {
- regulator-always-on;
- regulator-boot-on;
-};
-
&sdhc_2 {
status = "okay";
};
@@ -62,6 +51,14 @@ &trackpad {
interrupts = <58 IRQ_TYPE_EDGE_FALLING>;
};

+&usb_hub_2_x {
+ vdd-supply = <&pp3300_l7c>;
+};
+
+&usb_hub_3_x {
+ vdd-supply = <&pp3300_l7c>;
+};
+
/* PINCTRL - modifications to sc7180-trogdor.dtsi */

&trackpad_int_1v8_odl {
diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi b/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
index b0efb354458c..39e1121c5d77 100644
--- a/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
@@ -296,7 +296,7 @@ pp3300_hub: pp3300-hub-regulator {
pinctrl-names = "default";
pinctrl-0 = <&en_pp3300_hub>;

- regulator-always-on;
+ /* The BIOS leaves this regulator on */
regulator-boot-on;

vin-supply = <&pp3300_a>;
@@ -936,6 +936,24 @@ &usb_1 {

&usb_1_dwc3 {
dr_mode = "host";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* 2.x hub on port 1 */
+ usb_hub_2_x: hub@1 {
+ compatible = "usbbda,5411";
+ reg = <1>;
+ vdd-supply = <&pp3300_hub>;
+ companion-hub = <&usb_hub_3_x>;
+ };
+
+ /* 3.x hub on port 2 */
+ usb_hub_3_x: hub@2 {
+ compatible = "usbbda,411";
+ reg = <2>;
+ vdd-supply = <&pp3300_hub>;
+ companion-hub = <&usb_hub_2_x>;
+ };
};

&usb_1_hsphy {
--
2.36.0.rc2.479.g8af0fa9b8e-goog


2022-04-27 11:36:11

by Matthias Kaehlcke

[permalink] [raw]
Subject: [PATCH v22 2/2] arm64: dts: qcom: sc7280-herobrine: Add nodes for onboard USB hub

Add nodes for the onboard USB hub on herobrine devices. Remove the
'always-on' property from the hub regulator, since the regulator
is now managed by the onboard_usb_hub driver.

Signed-off-by: Matthias Kaehlcke <[email protected]>
---

Changes in v22:
- patch added to the series

.../arm64/boot/dts/qcom/sc7280-herobrine.dtsi | 21 ++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi b/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
index d58045dd7334..46937d21b229 100644
--- a/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
@@ -143,8 +143,8 @@ pp3300_hub: pp3300-hub-regulator {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;

+ /* The BIOS leaves this regulator on */
regulator-boot-on;
- regulator-always-on;

gpio = <&tlmm 157 GPIO_ACTIVE_HIGH>;
enable-active-high;
@@ -560,6 +560,25 @@ &usb_1 {

&usb_1_dwc3 {
dr_mode = "host";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* 2.x hub on port 1 */
+ usb_hub_2_x: hub@1 {
+ compatible = "usbbda,5411";
+ reg = <1>;
+ vdd-supply = <&pp3300_hub>;
+ companion-hub = <&usb_hub_3_x>;
+ };
+
+ /* 3.x hub on port 2 */
+ usb_hub_3_x: hub@2 {
+ compatible = "usbbda,411";
+ reg = <2>;
+ vdd-supply = <&pp3300_hub>;
+ companion-hub = <&usb_hub_2_x>;
+ };
};

&usb_1_hsphy {
--
2.36.0.rc2.479.g8af0fa9b8e-goog

2022-04-27 21:46:26

by Doug Anderson

[permalink] [raw]
Subject: Re: [PATCH v22 1/2] arm64: dts: qcom: sc7180-trogdor: Add nodes for onboard USB hub

Hi,

On Tue, Apr 26, 2022 at 5:03 PM Matthias Kaehlcke <[email protected]> wrote:
>
> Add nodes for the onboard USB hub on trogdor devices. Remove the
> 'always-on' property from the hub regulator, since the regulator
> is now managed by the onboard_usb_hub driver.

There are people out there that are running trogdor devices with
upstream Linux. There's not much we can do about it, but probably this
patch will cause them to fail to probe USB because they won't have
"CONFIG_USB_ONBOARD_HUB=y". Luckily the commit subject has "USB" in it
so hopefully it'll be easy to spot, but I wonder if we should add
something to the commit message that makes that super obvious and
tells them about the relevant commit, like:

For anyone using trogdor-based devices on Linux, it should be noted
that this requires "CONFIG_USB_ONBOARD_HUB=y".


> Signed-off-by: Matthias Kaehlcke <[email protected]>
> Reviewed-by: Stephen Boyd <[email protected]>
> Reviewed-by: Douglas Anderson <[email protected]>
> ---
> Depends on "usb: misc: Add onboard_usb_hub driver" [1] which landed in
> https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/commit/?h=usb-testing
>
> This patch was split off the above series.
>
> [1] https://patchwork.kernel.org/project/linux-usb/list/?series=615531&state=%2A&archive=both

I presume it will be moderately annoying if this lands in the Qualcomm
branch before the driver lands in mainline? Otherwise USB will fully
stop working on the Qualcomm branch. Do we want to postpone landing
this?


-Doug

2022-04-28 00:30:32

by Doug Anderson

[permalink] [raw]
Subject: Re: [PATCH v22 2/2] arm64: dts: qcom: sc7280-herobrine: Add nodes for onboard USB hub

Hi,

On Tue, Apr 26, 2022 at 5:03 PM Matthias Kaehlcke <[email protected]> wrote:
>
> Add nodes for the onboard USB hub on herobrine devices. Remove the
> 'always-on' property from the hub regulator, since the regulator
> is now managed by the onboard_usb_hub driver.
>
> Signed-off-by: Matthias Kaehlcke <[email protected]>
> ---
>
> Changes in v22:
> - patch added to the series
>
> .../arm64/boot/dts/qcom/sc7280-herobrine.dtsi | 21 ++++++++++++++++++-
> 1 file changed, 20 insertions(+), 1 deletion(-)

Just like on patch #1, I presume it will be moderately annoying if
this lands in the Qualcomm branch before the driver lands in mainline?
I guess very few people have herobrine hardware, so maybe not that big
of a deal...

In any case, I'm happy with:

Reviewed-by: Douglas Anderson <[email protected]>

2022-04-29 08:28:43

by Matthias Kaehlcke

[permalink] [raw]
Subject: Re: [PATCH v22 2/2] arm64: dts: qcom: sc7280-herobrine: Add nodes for onboard USB hub

On Wed, Apr 27, 2022 at 02:06:00PM -0700, Doug Anderson wrote:
> Hi,
>
> On Tue, Apr 26, 2022 at 5:03 PM Matthias Kaehlcke <[email protected]> wrote:
> >
> > Add nodes for the onboard USB hub on herobrine devices. Remove the
> > 'always-on' property from the hub regulator, since the regulator
> > is now managed by the onboard_usb_hub driver.
> >
> > Signed-off-by: Matthias Kaehlcke <[email protected]>
> > ---
> >
> > Changes in v22:
> > - patch added to the series
> >
> > .../arm64/boot/dts/qcom/sc7280-herobrine.dtsi | 21 ++++++++++++++++++-
> > 1 file changed, 20 insertions(+), 1 deletion(-)
>
> Just like on patch #1, I presume it will be moderately annoying if
> this lands in the Qualcomm branch before the driver lands in mainline?
> I guess very few people have herobrine hardware, so maybe not that big
> of a deal...

For herobrine it's probably not a big deal, hardware isn't publicly
available and those who have run it with a CrOS based kernel most of
the time. But yeah, it would be somewhat annoying if USB is broken
when you test something with an upstream kernel.

> In any case, I'm happy with:
>
> Reviewed-by: Douglas Anderson <[email protected]>

Thanks!

2022-04-29 13:42:21

by Matthias Kaehlcke

[permalink] [raw]
Subject: Re: [PATCH v22 1/2] arm64: dts: qcom: sc7180-trogdor: Add nodes for onboard USB hub

On Wed, Apr 27, 2022 at 02:05:04PM -0700, Doug Anderson wrote:
> Hi,
>
> On Tue, Apr 26, 2022 at 5:03 PM Matthias Kaehlcke <[email protected]> wrote:
> >
> > Add nodes for the onboard USB hub on trogdor devices. Remove the
> > 'always-on' property from the hub regulator, since the regulator
> > is now managed by the onboard_usb_hub driver.
>
> There are people out there that are running trogdor devices with
> upstream Linux. There's not much we can do about it, but probably this
> patch will cause them to fail to probe USB because they won't have
> "CONFIG_USB_ONBOARD_HUB=y". Luckily the commit subject has "USB" in it
> so hopefully it'll be easy to spot, but I wonder if we should add
> something to the commit message that makes that super obvious and
> tells them about the relevant commit, like:
>
> For anyone using trogdor-based devices on Linux, it should be noted
> that this requires "CONFIG_USB_ONBOARD_HUB=y".

Ok, I'll respin and add the note.

> > Signed-off-by: Matthias Kaehlcke <[email protected]>
> > Reviewed-by: Stephen Boyd <[email protected]>
> > Reviewed-by: Douglas Anderson <[email protected]>
> > ---
> > Depends on "usb: misc: Add onboard_usb_hub driver" [1] which landed in
> > https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/commit/?h=usb-testing
> >
> > This patch was split off the above series.
> >
> > [1] https://patchwork.kernel.org/project/linux-usb/list/?series=615531&state=%2A&archive=both
>
> I presume it will be moderately annoying if this lands in the Qualcomm
> branch before the driver lands in mainline? Otherwise USB will fully
> stop working on the Qualcomm branch. Do we want to postpone landing
> this?

Postponing the trogdor patch sounds good to me.