* [PATCH v11 5/5] arm64: dts: qcom: sc7180-trogdor: Add nodes for onboard USB hub
2021-06-04 21:40 [PATCH v11 0/5] USB: misc: Add onboard_usb_hub driver Matthias Kaehlcke
@ 2021-06-04 21:41 ` Matthias Kaehlcke
2021-06-05 7:01 ` [PATCH v11 0/5] USB: misc: Add onboard_usb_hub driver Greg Kroah-Hartman
1 sibling, 0 replies; 3+ messages in thread
From: Matthias Kaehlcke @ 2021-06-04 21:41 UTC (permalink / raw)
To: Greg Kroah-Hartman, Alan Stern, Rob Herring, Frank Rowand,
Mathias Nyman
Cc: Michal Simek, Ravi Chandra Sadineni, linux-usb, Bastien Nocera,
linux-kernel, Krzysztof Kozlowski, devicetree, Peter Chen,
Stephen Boyd, Douglas Anderson, Matthias Kaehlcke, Andy Gross,
Bjorn Andersson, linux-arm-msm
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 <mka@chromium.org>
---
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 +++++-------
.../arm64/boot/dts/qcom/sc7180-trogdor-r1.dts | 19 ++++++++-----------
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 19 ++++++++++++++++++-
4 files changed, 39 insertions(+), 30 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 30e3e769d2b4..5fb8e12af1a0 100644
--- a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r0.dts
+++ b/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r0.dts
@@ -14,17 +14,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
@@ -33,3 +22,11 @@ &sn65dsi86_out {
*/
lane-polarities = <1 0>;
};
+
+&usb_hub_2_0 {
+ vdd-supply = <&pp3300_l7c>;
+};
+
+&usb_hub_3_0 {
+ 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 c2ef06367baf..1dae714250f5 100644
--- a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r1.dts
+++ b/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r1.dts
@@ -14,13 +14,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_0 {
+ vdd-supply = <&pp3300_l7c>;
};
-&pp3300_l7c {
- regulator-always-on;
- regulator-boot-on;
+&usb_hub_3_0 {
+ 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 2b522f9e0d8f..2f5263e3d1b9 100644
--- a/arch/arm64/boot/dts/qcom/sc7180-trogdor-r1.dts
+++ b/arch/arm64/boot/dts/qcom/sc7180-trogdor-r1.dts
@@ -42,17 +42,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";
};
@@ -61,6 +50,14 @@ &trackpad {
interrupts = <58 IRQ_TYPE_EDGE_FALLING>;
};
+&usb_hub_2_0 {
+ vdd-supply = <&pp3300_l7c>;
+};
+
+&usb_hub_3_0 {
+ 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 a4cbdc36c306..3345ca650a4c 100644
--- a/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
@@ -202,7 +202,6 @@ pp3300_hub: pp3300-hub {
pinctrl-names = "default";
pinctrl-0 = <&en_pp3300_hub>;
- regulator-always-on;
regulator-boot-on;
vin-supply = <&pp3300_a>;
@@ -903,6 +902,24 @@ &usb_1 {
&usb_1_dwc3 {
dr_mode = "host";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* 2.0 hub on port 1 */
+ usb_hub_2_0: hub@1 {
+ compatible = "usbbda,5411";
+ reg = <1>;
+ vdd-supply = <&pp3300_hub>;
+ companion-hub = <&usb_hub_3_0>;
+ };
+
+ /* 3.0 hub on port 2 */
+ usb_hub_3_0: hub@2 {
+ compatible = "usbbda,411";
+ reg = <2>;
+ vdd-supply = <&pp3300_hub>;
+ companion-hub = <&usb_hub_2_0>;
+ };
};
&usb_1_hsphy {
--
2.32.0.rc1.229.g3e70b5a671-goog
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH v11 0/5] USB: misc: Add onboard_usb_hub driver
2021-06-04 21:40 [PATCH v11 0/5] USB: misc: Add onboard_usb_hub driver Matthias Kaehlcke
2021-06-04 21:41 ` [PATCH v11 5/5] arm64: dts: qcom: sc7180-trogdor: Add nodes for onboard USB hub Matthias Kaehlcke
@ 2021-06-05 7:01 ` Greg Kroah-Hartman
1 sibling, 0 replies; 3+ messages in thread
From: Greg Kroah-Hartman @ 2021-06-05 7:01 UTC (permalink / raw)
To: Matthias Kaehlcke
Cc: Alan Stern, Rob Herring, Frank Rowand, Mathias Nyman,
Michal Simek, Ravi Chandra Sadineni, linux-usb, Bastien Nocera,
linux-kernel, Krzysztof Kozlowski, devicetree, Peter Chen,
Stephen Boyd, Douglas Anderson, Al Cooper, Alexander A. Klimov,
Andy Gross, Bjorn Andersson, Colin Ian King, Dmitry Osipenko,
Fabio Estevam, Masahiro Yamada, linux-arm-msm
On Fri, Jun 04, 2021 at 02:40:56PM -0700, Matthias Kaehlcke wrote:
> This series adds:
> - the onboard_usb_hub_driver
> - glue in the xhci-plat driver to create and destroy the
> onboard_usb_hub platform devices if needed
> - a device tree binding for the Realtek RTS5411 USB hub controller
> - device tree changes that add RTS5411 entries for the QCA SC7180
> based boards trogdor and lazor
> - a couple of stubs for platform device functions to avoid
> unresolved symbols with certain kernel configs
>
> The main issue the driver addresses is that a USB hub needs to be
> powered before it can be discovered. For discrete onboard hubs (an
> example for such a hub is the Realtek RTS5411) this is often solved
> by supplying the hub with an 'always-on' regulator, which is kind
> of a hack. Some onboard hubs may require further initialization
> steps, like changing the state of a GPIO or enabling a clock, which
> requires even more hacks. This driver creates a platform device
> representing the hub which performs the necessary initialization.
> Currently it only supports switching on a single regulator, support
> for multiple regulators or other actions can be added as needed.
> Different initialization sequences can be supported based on the
> compatible string.
>
> Besides performing the initialization the driver can be configured
> to power the hub off during system suspend. This can help to extend
> battery life on battery powered devices which have no requirements
> to keep the hub powered during suspend. The driver can also be
> configured to leave the hub powered when a wakeup capable USB device
> is connected when suspending, and power it off otherwise.
>
> Changes in v11:
> - support multiple onboard hubs connected to the same parent
> - don't include ‘onboard_hub.h’ from the onboard hub driver
There's still build warnings found by 0-day :(
^ permalink raw reply [flat|nested] 3+ messages in thread