Message ID | 20220426170306.v22.1.I7a1a6448d50bdd38e6082204a9818c59cc7a9bfd@changeid |
---|---|
State | Superseded |
Headers | show |
Series | [v22,1/2] arm64: dts: qcom: sc7180-trogdor: Add nodes for onboard USB hub | expand |
Hi, On Tue, Apr 26, 2022 at 5:03 PM Matthias Kaehlcke <mka@chromium.org> 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 <mka@chromium.org> > Reviewed-by: Stephen Boyd <swboyd@chromium.org> > Reviewed-by: Douglas Anderson <dianders@chromium.org> > --- > 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
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 <mka@chromium.org> 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 <mka@chromium.org> > > Reviewed-by: Stephen Boyd <swboyd@chromium.org> > > Reviewed-by: Douglas Anderson <dianders@chromium.org> > > --- > > 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.
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 <mka@chromium.org> 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 <mka@chromium.org> > > --- > > > > 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 <dianders@chromium.org> Thanks!
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 {