Used onboard HUB to reset and add power to hub
Subsystems (3)
v2 cover Used onboard HUB to reset and add power to hub
Amlogic board use gpio-hog to reset the USB hub. so using onboard hub we could reset the USB hub and also enable power to the USB hub.
v2: Odroid C1 / C2 : usb hub reset working as expected.
Odroid N2 : dropped usb hub changes, since my board USB hub
is hitting regression.
Odroid C4 : Fix the device tree binding and used peer-hub for
usb2.0 and usb3.0 hub.
v1: Odroid C1 / C2 : were not working as expected.
Odroid N2 : used single USB 3.0 hub reset. Odroid C4 : used single USB 3.0 hub reset.
[0] https://patchwork.kernel.org/project/linux-amlogic/list/?series=707292
Any inputs for these changes ?
Thanks
-Anand
Anand Moon (9):
dt-bindings: usb: Add device id for Genesys Logic hub controller
ARM: dts: amlogic: Used onboard usb hub reset to enable usb hub
arm64: dts: amlogic: Used onboard usb hub reset on odroid c2
usb: misc: onboard_usb_hub: add Genesys Logic GL852G hub support
vendor-prefixes: Add VIA Labs, Inc.
dt-bindings: usb: Add binding for Via lab VL817 hub controller
arm64: dts: amlogic: Used onboard usb hub reset on odroid c4
usb: misc: onboard_usb_hub: add VIA LAB VL817 hub support
arm64: defconfig: Enable USB onboard HUB driver
.../bindings/usb/genesys,gl850g.yaml | 1 + .../devicetree/bindings/usb/vialab,vl817.yaml | 69 +++++++++++++++++++ .../devicetree/bindings/vendor-prefixes.yaml | 2 + arch/arm/boot/dts/meson8b-odroidc1.dts | 24 +++---- .../boot/dts/amlogic/meson-gxbb-odroidc2.dts | 26 +++---- .../boot/dts/amlogic/meson-sm1-odroid-c4.dts | 36 ++++++---- arch/arm64/configs/defconfig | 1 + drivers/usb/misc/onboard_usb_hub.c | 4 ++ drivers/usb/misc/onboard_usb_hub.h | 11 +++ 9 files changed, 133 insertions(+), 41 deletions(-) create mode 100644 Documentation/devicetree/bindings/usb/vialab,vl817.yaml
Signature · 7 lines
2.38.1 _______________________________________________ linux-amlogic mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-amlogic
PATCH v2 1/9 dt-bindings: usb: Add device id for Genesys Logic hub controller
Add usb hub device id for Genesys Logic, Inc. GL852G Hub USB 2.0 root hub.
---
v2: - drop the vendor name from compatible string.
- drop the -OTG and -QFN76 suffix from commit message.
- drop the GL3523 USB 3.1 root hub device id.
--- Documentation/devicetree/bindings/usb/genesys,gl850g.yaml | 1 + 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/usb/genesys,gl850g.yaml +1 -0
@@ -16,6 +16,7 @@ properties: compatible: enum: - usb5e3,608 + - usb5e3,610 reg: true
Signature · 1 line
2.38.1
Re: [PATCH v2 1/9] dt-bindings: usb: Add device id for Genesys Logic hub controller
Quoted 8 lines · Anand Moon
Add usb hub device id for Genesys Logic, Inc. GL852G Hub USB 2.0 root hub.
Signed-off-by Anand Moon <[email protected]>---
v2: - drop the vendor name from compatible string.
- drop the -OTG and -QFN76 suffix from commit message.
- drop the GL3523 USB 3.1 root hub device id.
Best regards,
Krzysztof
_______________________________________________
linux-amlogic mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-amlogic
PATCH v2 2/9 ARM: dts: amlogic: Used onboard usb hub reset to enable usb hub
In reply to Anand MoonOn Odroid c1 previously use gpio-hog to reset the usb hub, switch to used on board usb hub reset to enable the usb hub and enable power to usb hub.
Add usb hub regulator as per the schematic.
---
v2 - drop the vendor name from compatible string.
- move the hub node to USB controller node.
- drop the usb_otg_pwr since it only liked to OTG port and link p5v0 to the vdd-supply.
--- arch/arm/boot/dts/meson8b-odroidc1.dts | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-)
arch/arm/boot/dts/meson8b-odroidc1.dts +11 -13
@@ -281,19 +281,6 @@ &gpio_ao { "J7 Header Pin 6", "J7 Header Pin 5", "J7 Header Pin 7", "HDMI_CEC", "SYS_LED", "", ""; - - /* - * WARNING: The USB Hub on the Odroid-C1/C1+ needs a reset signal - * to be turned high in order to be detected by the USB Controller. - * This signal should be handled by a USB specific power sequence - * in order to reset the Hub when USB bus is powered down. - */ - usb-hub { - gpio-hog; - gpios = <GPIOAO_4 GPIO_ACTIVE_HIGH>; - output-high; - line-name = "usb-hub-reset"; - }; }; &ir_receiver {
@@ -381,5 +368,16 @@ &usb1_phy { }; &usb1 { + dr_mode = "host"; + #address-cells = <1>; + #size-cells = <0>; status = "okay"; + + hub@1 { + /* Genesys Logic GL852G usb hub */ + compatible = "usb5e3,610"; + reg = <1>; + vdd-supply = <&p5v0>; + reset-gpio = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>; + }; };
Signature · 1 line
2.38.1
Re: [PATCH v2 2/9] ARM: dts: amlogic: Used onboard usb hub reset to enable usb hub
Quoted 47 lines · Anand Moon
On Odroid c1 previously use gpio-hog to reset the usb hub, switch to used on board usb hub reset to enable the usb hub and enable power to usb hub.
Add usb hub regulator as per the schematic.
Signed-off-by Anand Moon <[email protected]>---
v2 - drop the vendor name from compatible string.
- move the hub node to USB controller node.
- drop theusb_otg_pwrsince it only liked to OTG port and link p5v0 to the vdd-supply.--- arch/arm/boot/dts/meson8b-odroidc1.dts | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-)arch/arm/boot/dts/meson8b-odroidc1.dts +3
-13@@ -281,19 +281,6 @@ &gpio_ao { "J7 Header Pin 6", "J7 Header Pin 5", "J7 Header Pin 7", "HDMI_CEC", "SYS_LED", "", ""; - - /* - * WARNING: The USB Hub on the Odroid-C1/C1+ needs a reset signal - * to be turned high in order to be detected by the USB Controller. - * This signal should be handled by a USB specific power sequence - * in order to reset the Hub when USB bus is powered down. - */ - usb-hub { - gpio-hog; - gpios = <GPIOAO_4 GPIO_ACTIVE_HIGH>; - output-high; - line-name = "usb-hub-reset"; - }; }; &ir_receiver {@@ -381,5 +368,16 @@ &usb1_phy { }; &usb1 { + dr_mode = "host"; + #address-cells = <1>; + #size-cells = <0>;
arch/arm/boot/dts/meson8b-odroidc1.dts &usb1_phy { · line 383
Quoted 10 lines
arch/arm/boot/dts/meson8b-odroidc1.dts +8
-0status = "okay"; + + hub@1 { + /* Genesys Logic GL852G usb hub */ + compatible = "usb5e3,610"; + reg = <1>; + vdd-supply = <&p5v0>; + reset-gpio = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>; + }; };
_______________________________________________
linux-amlogic mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-amlogic
PATCH v2 3/9 arm64: dts: amlogic: Used onboard usb hub reset on odroid c2
In reply to Anand MoonOn Odroid c2 previously use gpio-hog to reset the usb hub, switch to used on-board usb hub reset to enable the usb hub and enable power to hub.
---
v2 - drop the vendor name from compatible string.
- move the hub node to USB controller node.
- drop the usb_otg_pwr since it only liked to OTG port and link p5v0 to the vdd-supply.
--- .../boot/dts/amlogic/meson-gxbb-odroidc2.dts | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-)
arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +11 -15
@@ -250,21 +250,6 @@ eth_phy0: ethernet-phy@0 { }; }; -&gpio_ao { - /* - * WARNING: The USB Hub on the Odroid-C2 needs a reset signal - * to be turned high in order to be detected by the USB Controller - * This signal should be handled by a USB specific power sequence - * in order to reset the Hub when USB bus is powered down. - */ - hog-0 { - gpio-hog; - gpios = <GPIOAO_4 GPIO_ACTIVE_HIGH>; - output-high; - line-name = "usb-hub-reset"; - }; -}; - &hdmi_tx { status = "okay"; pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
@@ -414,5 +399,16 @@ &usb0 { }; &usb1 { + dr_mode = "host"; + #address-cells = <1>; + #size-cells = <0>; status = "okay"; + + hub@1 { + /* Genesys Logic GL852G USB 2.0 hub */ + compatible = "usb5e3,610"; + reg = <1>; + vdd-supply = <&p5v0>; + reset-gpio = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>; + }; };
Signature · 1 line
2.38.1
Re: [PATCH v2 3/9] arm64: dts: amlogic: Used onboard usb hub reset on odroid c2
Quoted 47 lines · Anand Moon
On Odroid c2 previously use gpio-hog to reset the usb hub, switch to used on-board usb hub reset to enable the usb hub and enable power to hub.
Signed-off-by Anand Moon <[email protected]>---
v2 - drop the vendor name from compatible string.
- move the hub node to USB controller node.
- drop theusb_otg_pwrsince it only liked to OTG port and link p5v0 to the vdd-supply.--- .../boot/dts/amlogic/meson-gxbb-odroidc2.dts | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-)arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +3
-15@@ -250,21 +250,6 @@ eth_phy0: ethernet-phy@0 { }; }; -&gpio_ao { - /* - * WARNING: The USB Hub on the Odroid-C2 needs a reset signal - * to be turned high in order to be detected by the USB Controller - * This signal should be handled by a USB specific power sequence - * in order to reset the Hub when USB bus is powered down. - */ - hog-0 { - gpio-hog; - gpios = <GPIOAO_4 GPIO_ACTIVE_HIGH>; - output-high; - line-name = "usb-hub-reset"; - }; -}; - &hdmi_tx { status = "okay"; pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;@@ -414,5 +399,16 @@ &usb0 { }; &usb1 { + dr_mode = "host"; + #address-cells = <1>; + #size-cells = <0>;
arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts &usb0 { · line 414
Quoted 10 lines
arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +8
-0status = "okay"; + + hub@1 { + /* Genesys Logic GL852G USB 2.0 hub */ + compatible = "usb5e3,610"; + reg = <1>; + vdd-supply = <&p5v0>; + reset-gpio = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>; + }; };
_______________________________________________
linux-amlogic mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-amlogic
PATCH v2 4/9 usb: misc: onboard_usb_hub: add Genesys Logic GL852G hub support
In reply to Anand MoonGenesys Logic GL852G is a 4-port USB 2.0 STT hub that has a reset pin to toggle and a 5.0V core supply exported though an integrated LDO is available for powering it.
Add the support for this hub, for controlling the reset pin and the core power supply.
---
v2: - fix the compatible string
- drop the -OHG suffix from commit message.
- Add reset delay.
--- drivers/usb/misc/onboard_usb_hub.c | 1 + drivers/usb/misc/onboard_usb_hub.h | 5 +++++ 2 files changed, 6 insertions(+)
drivers/usb/misc/onboard_usb_hub.c +1 -0
@@ -409,6 +409,7 @@ static void onboard_hub_usbdev_disconnect(struct usb_device *udev)static const struct usb_device_id onboard_hub_id_table[] = { {USB_DEVICE (VENDOR_ID_GENESYS ,0x0608 ) },/* Genesys Logic GL850G USB 2.0 */ + {USB_DEVICE (VENDOR_ID_GENESYS ,0x0610 ) },/* Genesys Logic GL852G USB 2.0 */ {USB_DEVICE (VENDOR_ID_MICROCHIP ,0x2514 ) },/* USB2514B USB 2.0 */ {USB_DEVICE (VENDOR_ID_REALTEK ,0x0411 ) },/* RTS5411 USB 3.1 */ {USB_DEVICE (VENDOR_ID_REALTEK ,0x5411 ) },/* RTS5411 USB 2.1 */
drivers/usb/misc/onboard_usb_hub.h +5 -0
@@ -26,11 +26,16 @@ static const struct onboard_hub_pdata genesys_gl850g_data = { .reset_us = 3, }; +static const struct onboard_hub_pdata genesys_gl852g_data = { + .reset_us =50 , +}; +static const struct of_device_id onboard_hub_match[] = { { .compatible ="usb424,2514" , .data = µchip_usb424_data, }, { .compatible ="usb451,8140" , .data = &ti_tusb8041_data, }, { .compatible ="usb451,8142" , .data = &ti_tusb8041_data, }, { .compatible ="usb5e3,608" , .data = &genesys_gl850g_data, }, + { .compatible ="usb5e3,610" , .data = &genesys_gl852g_data, }, { .compatible ="usbbda,411" , .data = &realtek_rts5411_data, }, { .compatible ="usbbda,5411" , .data = &realtek_rts5411_data, }, { .compatible ="usbbda,414" , .data = &realtek_rts5411_data, },
Signature · 1 line
2.38.1
Re: [PATCH v2 4/9] usb: misc: onboard_usb_hub: add Genesys Logic GL852G hub support
Quoted 8 lines · Anand Moon
Genesys Logic GL852G is a 4-port USB 2.0 STT hub that has a reset pin to toggle and a 5.0V core supply exported though an integrated LDO is available for powering it.
Add the support for this hub, for controlling the reset pin and the core power supply.
Signed-off-by Anand Moon <[email protected]>
PATCH v2 5/9 vendor-prefixes: Add VIA Labs, Inc.
In reply to Anand MoonAdd the vendor prefix for VIA Labs, Inc. (VLI) is a supplier of USB and USB Power Delivery controllers for multi-functional devices and platforms.
Website: https://www.via-labs.com/
---
V2: - drop Drop marketing, so without "leading".
- add Ack of Krzysztof
--- Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++ 1 file changed, 2 insertions(+)
Documentation/devicetree/bindings/vendor-prefixes.yaml +2 -0
@@ -1398,6 +1398,8 @@ patternProperties: description: Vertexcom Technologies, Inc. "^via,.*": description: VIA Technologies, Inc. + "^vialab,.*": + description: VIA Labs, Inc. "^vicor,.*": description: Vicor Corporation "^videostrong,.*":
Signature · 7 lines
2.38.1 _______________________________________________ linux-amlogic mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-amlogic
PATCH v2 6/9 dt-bindings: usb: Add binding for Via lab VL817 hub controller
In reply to Anand MoonThe VIA Lab VL817 is a USB 3.1 Gen 1 hub and USB 2.0 hub controller that features 4 downstream ports and 1 otg, with an internal 5V regulator and has external reset pin.
Add a device tree binding for its USB protocol part. The internal LDO is not covered by this and can just be modelled as a fixed regulator.
Add combo of USB 2.0 and USB 3.0 root hub using peer-hub.
---
v2 - fix the compatible string and fix the $id
- update the commit message.
- update the example for use peer-hub node because it combo of USB 2.0 and USB 3.0 hub.
- rename the yaml file from vialab,vl817q7.yaml to vialab,vl817.yaml as q7 suffix is ued for USB 3.1 and q5 suffix is used for USB 2.0.
--- .../devicetree/bindings/usb/vialab,vl817.yaml | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 Documentation/devicetree/bindings/usb/vialab,vl817.yaml
Documentation/devicetree/bindings/usb/vialab,vl817.yaml new file +69 -0
@@ -0,0 +1,69 @@ +# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/usb/vialab,vl817.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Via labs VL817 USB 3.1 hub controller + +maintainers: + - Anand Moon <[email protected]> + +allOf: + - $ref: usb-device.yaml# + +properties: + compatible: + items: + - enum: + - usb2109,2817 + - usb2109,817 + + reg: true + + reset-gpios: + description: GPIO controlling the RESET# pin. + + vdd-supply: + description: + phandle to the regulator that provides power to the hub. + + peer-hub: + $ref: '/schemas/types.yaml#/definitions/phandle' + description: + phandle to the peer hub on the controller. + +required: + - peer-hub + - compatible + - reg + +additionalProperties: false + +examples: + - | + #include <dt-bindings/gpio/gpio.h> + + usb { + dr_mode = "host"; + #address-cells = <1>; + #size-cells = <0>; + + /* 2.0 hub on port 1 */ + hub_2_0: hub@1 { + compatible = "usb2109,2817"; + reg = <1>; + vdd-supply = <&vcc_5v>; + peer-hub = <&hub_3_0>; + reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>; + }; + + /* 3.1 hub on port 4 */ + hub_3_0: hub@2 { + compatible = "usb2109,817"; + reg = <2>; + vdd-supply = <&vcc_5v>; + peer-hub = <&hub_2_0>; + reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>; + }; + };
Signature · 7 lines
2.38.1 _______________________________________________ linux-amlogic mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-amlogic
Re: [PATCH v2 6/9] dt-bindings: usb: Add binding for Via lab VL817 hub controller
Quoted 3 lines · Anand Moon
The VIA Lab VL817 is a USB 3.1 Gen 1 hub and USB 2.0 hub controller that features 4 downstream ports and 1 otg, with an internal 5V regulator and has external reset pin.
Subject: drop second/last, redundant "binding for". The "dt-bindings" prefix is already stating that these are bindings.
Quoted 33 lines
Add a device tree binding for its USB protocol part. The internal LDO is not covered by this and can just be modelled as a fixed regulator.
Add combo of USB 2.0 and USB 3.0 root hub using peer-hub.
Signed-off-by Anand Moon <[email protected]>---
v2 - fix the compatible string and fix the $id
- update the commit message.
- update the example for use peer-hub node because it combo of USB 2.0 and USB 3.0 hub.
- rename the yaml file from vialab,vl817q7.yaml to vialab,vl817.yaml as q7 suffix is ued for USB 3.1 and q5 suffix is used for USB 2.0.--- .../devicetree/bindings/usb/vialab,vl817.yaml | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 Documentation/devicetree/bindings/usb/vialab,vl817.yamlDocumentation/devicetree/bindings/usb/vialab,vl817.yaml new file +7
-0@@ -0,0 +1,69 @@ +# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/usb/vialab,vl817.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Via labs VL817 USB 3.1 hub controller
Documentation/devicetree/bindings/usb/vialab,vl817.yaml line 17
Quoted 10 lines
Documentation/devicetree/bindings/usb/vialab,vl817.yaml new file +10
-0+ +maintainers: + - Anand Moon <[email protected]> + +allOf: + - $ref: usb-device.yaml# + +properties: + compatible: + items:
Drop items
Documentation/devicetree/bindings/usb/vialab,vl817.yaml line 25
Quoted 8 lines
Documentation/devicetree/bindings/usb/vialab,vl817.yaml new file +8
-0+ - enum: + - usb2109,2817 + - usb2109,817 + + reg: true + + reset-gpios: + description: GPIO controlling the RESET# pin.
maxItems
Documentation/devicetree/bindings/usb/vialab,vl817.yaml line 32
Quoted 7 lines
Documentation/devicetree/bindings/usb/vialab,vl817.yaml new file +7
-0+ + vdd-supply: + description: + phandle to the regulator that provides power to the hub. + + peer-hub: + $ref: '/schemas/types.yaml#/definitions/phandle'
Drop quotes
Documentation/devicetree/bindings/usb/vialab,vl817.yaml line 39
Quoted 7 lines
Documentation/devicetree/bindings/usb/vialab,vl817.yaml new file +7
-0+ description: + phandle to the peer hub on the controller. + +required: + - peer-hub + - compatible + - reg
Keep same order as in properties: part.
Documentation/devicetree/bindings/usb/vialab,vl817.yaml line 40
Quoted 1 line
Documentation/devicetree/bindings/usb/vialab,vl817.yaml new file +1
-0+
Best regards,
Krzysztof
_______________________________________________
linux-amlogic mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-amlogic
Re: [PATCH v2 6/9] dt-bindings: usb: Add binding for Via lab VL817 hub controller
Hi Krzysztof,
Thanks for your review comments.
Quoted 9 lines · Krzysztof Kozlowski
Quoted 3 lines · Anand Moon
The VIA Lab VL817 is a USB 3.1 Gen 1 hub and USB 2.0 hub controller that features 4 downstream ports and 1 otg, with an internal 5V regulator and has external reset pin.
Subject: drop second/last, redundant "binding for". The "dt-bindings" prefix is already stating that these are bindings.
Ok
Quoted 37 lines
Quoted 37 lines
Add a device tree binding for its USB protocol part. The internal LDO is not covered by this and can just be modelled as a fixed regulator.
Add combo of USB 2.0 and USB 3.0 root hub using peer-hub.
Signed-off-by Anand Moon <[email protected]>---
v2 - fix the compatible string and fix the $id
- update the commit message.
- update the example for use peer-hub node because it combo of USB 2.0 and USB 3.0 hub.
- rename the yaml file from vialab,vl817q7.yaml to vialab,vl817.yaml as q7 suffix is ued for USB 3.1 and q5 suffix is used for USB 2.0.--- .../devicetree/bindings/usb/vialab,vl817.yaml | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 Documentation/devicetree/bindings/usb/vialab,vl817.yamlDocumentation/devicetree/bindings/usb/vialab,vl817.yaml new file +11
-0@@ -0,0 +1,69 @@ +# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/usb/vialab,vl817.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Via labs VL817 USB 3.1 hub controller + +maintainers: + - Anand Moon <[email protected]> +
Quoted 9 lines
Documentation/devicetree/bindings/usb/vialab,vl817.yaml line 17
Quoted 6 lines
Documentation/devicetree/bindings/usb/vialab,vl817.yaml new file +6
-0+allOf: + - $ref: usb-device.yaml# + +properties: + compatible: + items:Drop items
Ok,
Quoted 11 lines
Documentation/devicetree/bindings/usb/vialab,vl817.yaml line 25
Quoted 8 lines
Documentation/devicetree/bindings/usb/vialab,vl817.yaml new file +8
-0+ - enum: + - usb2109,2817 + - usb2109,817 + + reg: true + + reset-gpios: + description: GPIO controlling the RESET# pin.maxItems
Ok,
Quoted 10 lines
Documentation/devicetree/bindings/usb/vialab,vl817.yaml line 32
Quoted 7 lines
Documentation/devicetree/bindings/usb/vialab,vl817.yaml new file +7
-0+ + vdd-supply: + description: + phandle to the regulator that provides power to the hub. + + peer-hub: + $ref: '/schemas/types.yaml#/definitions/phandle'Drop quotes
Ok,
Quoted 10 lines
Documentation/devicetree/bindings/usb/vialab,vl817.yaml line 39
Quoted 7 lines
Documentation/devicetree/bindings/usb/vialab,vl817.yaml new file +7
-0+ description: + phandle to the peer hub on the controller. + +required: + - peer-hub + - compatible + - regKeep same order as in properties: part.
Ok
Quoted 5 lines
Documentation/devicetree/bindings/usb/vialab,vl817.yaml line 40
Quoted 1 line
Documentation/devicetree/bindings/usb/vialab,vl817.yaml new file +1
-0+Best regards,
Krzysztof
I will update these in the next version.
-Anand
_______________________________________________
linux-amlogic mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-amlogic
PATCH v2 7/9 arm64: dts: amlogic: Used onboard usb hub reset on odroid c4
In reply to Anand MoonOn Odroid c4 previously use gpio-hog to reset the usb hub, switch to used on-board usb hub reset to enable the usb hub and enable power to hub.
USB hub is combination of USB 2.0 and USB 3.0 root hub so use peer-hub node to link then.
---
v2: - fix the compatible string.
- Fix the hub node to use peer-hub to link the usb 2.0 and usb 3.0.
--- .../boot/dts/amlogic/meson-sm1-odroid-c4.dts | 36 ++++++++++++------- 1 file changed, 23 insertions(+), 13 deletions(-)
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +23 -13
@@ -26,20 +26,30 @@ led-blue { sound { model = "ODROID-C4"; }; -}; -&gpio { - /* - * WARNING: The USB Hub on the Odroid-C4 needs a reset signal - * to be turned high in order to be detected by the USB Controller - * This signal should be handled by a USB specific power sequence - * in order to reset the Hub when USB bus is powered down. - */ - hog-0 { - gpio-hog; - gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>; - output-high; - line-name = "usb-hub-reset"; + /* USB hub supports both USB 2.0 and USB 3.0 root hub */ + usb-hub { + dr_mode = "host"; + #address-cells = <1>; + #size-cells = <0>; + + /* 2.0 hub on port 1 */ + hub_2_0: hub@1 { + compatible = "usb2109,2817"; + reg = <1>; + peer-hub = <&hub_3_0>; + reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>; + vdd-supply = <&vcc_5v>; + }; + + /* 3.1 hub on port 4 */ + hub_3_0: hub@2 { + compatible = "usb2109,817"; + reg = <2>; + peer-hub = <&hub_2_0>; + reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>; + vdd-supply = <&vcc_5v>; + }; }; };
Signature · 7 lines
2.38.1 _______________________________________________ linux-amlogic mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-amlogic
Neil Armstrong
maintainerRe: [PATCH v2 7/9] arm64: dts: amlogic: Used onboard usb hub reset on odroid c4
Quoted 30 lines · Anand Moon
On Odroid c4 previously use gpio-hog to reset the usb hub, switch to used on-board usb hub reset to enable the usb hub and enable power to hub.
USB hub is combination of USB 2.0 and USB 3.0 root hub so use peer-hub node to link then.
Signed-off-by Anand Moon <[email protected]>---
v2: - fix the compatible string.
- Fix the hub node to use peer-hub to link the usb 2.0 and usb 3.0.--- .../boot/dts/amlogic/meson-sm1-odroid-c4.dts | 36 ++++++++++++------- 1 file changed, 23 insertions(+), 13 deletions(-)arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +0
-6@@ -26,20 +26,30 @@ led-blue { sound { model = "ODROID-C4"; }; -}; -&gpio { - /* - * WARNING: The USB Hub on the Odroid-C4 needs a reset signal - * to be turned high in order to be detected by the USB Controller - * This signal should be handled by a USB specific power sequence
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts led-blue { · line 32
Quoted 10 lines
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +3
-7- * in order to reset the Hub when USB bus is powered down. - */ - hog-0 { - gpio-hog; - gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>; - output-high; - line-name = "usb-hub-reset"; + /* USB hub supports both USB 2.0 and USB 3.0 root hub */ + usb-hub { + dr_mode = "host";
Is this really needed ?
Quoted 10 lines
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +10
-0+ #address-cells = <1>; + #size-cells = <0>; + + /* 2.0 hub on port 1 */ + hub_2_0: hub@1 { + compatible = "usb2109,2817"; + reg = <1>; + peer-hub = <&hub_3_0>; + reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>; + vdd-supply = <&vcc_5v>;
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts led-blue { · line 52
Quoted 10 lines
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +10
-0+ }; + + /* 3.1 hub on port 4 */ + hub_3_0: hub@2 { + compatible = "usb2109,817"; + reg = <2>; + peer-hub = <&hub_2_0>; + reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>; + vdd-supply = <&vcc_5v>; + };
The final discussion in v1 was to drop this /usb-hub node and move the hub_2_0 & hub_3_0 node under the dwc3 node.
Neil
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts led-blue { · line 55
Quoted 3 lines
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +0
-0}; };
_______________________________________________
linux-amlogic mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-amlogic
Re: [PATCH v2 7/9] arm64: dts: amlogic: Used onboard usb hub reset on odroid c4
Hi Neil,
Thanks for your review comments.
Quoted 36 lines · Neil Armstrong
Quoted 34 lines · Anand Moon
On Odroid c4 previously use gpio-hog to reset the usb hub, switch to used on-board usb hub reset to enable the usb hub and enable power to hub.
USB hub is combination of USB 2.0 and USB 3.0 root hub so use peer-hub node to link then.
Signed-off-by Anand Moon <[email protected]>---
v2: - fix the compatible string.
- Fix the hub node to use peer-hub to link the usb 2.0 and usb 3.0.--- .../boot/dts/amlogic/meson-sm1-odroid-c4.dts | 36 ++++++++++++------- 1 file changed, 23 insertions(+), 13 deletions(-)arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +0
-10@@ -26,20 +26,30 @@ led-blue { sound { model = "ODROID-C4"; }; -}; -&gpio { - /* - * WARNING: The USB Hub on the Odroid-C4 needs a reset signal - * to be turned high in order to be detected by the USB Controller - * This signal should be handled by a USB specific power sequence - * in order to reset the Hub when USB bus is powered down. - */ - hog-0 { - gpio-hog;
Quoted 9 lines
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts led-blue { · line 32
Quoted 6 lines
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +3
-3- gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>; - output-high; - line-name = "usb-hub-reset"; + /* USB hub supports both USB 2.0 and USB 3.0 root hub */ + usb-hub { + dr_mode = "host";Is this really needed ?
I got carried forward from the other device tree binding, If not needed I will drop this.
Quoted 15 lines
Quoted 15 lines
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +15
-0+ #address-cells = <1>; + #size-cells = <0>; + + /* 2.0 hub on port 1 */ + hub_2_0: hub@1 { + compatible = "usb2109,2817"; + reg = <1>; + peer-hub = <&hub_3_0>; + reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>; + vdd-supply = <&vcc_5v>; + }; + + /* 3.1 hub on port 4 */ + hub_3_0: hub@2 { + compatible = "usb2109,817";
Quoted 9 lines
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts led-blue { · line 52
Quoted 5 lines
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +5
-0+ reg = <2>; + peer-hub = <&hub_2_0>; + reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>; + vdd-supply = <&vcc_5v>; + };The final discussion in v1 was to drop this /usb-hub node and move the
hub_2_0&hub_3_0node under the dwc3 node.
Yes, but It did not work back then, since these are two different events USB node will try to bring the PHY and dwc2 and dwc2 nodes up. USB hub supports the reset of the USB hub and links the power supply to the ports.
This works on this board.
Quoted 2 lines
Neil
Thanks
-Anand
_______________________________________________
linux-amlogic mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-amlogic
[email protected]
maintainerRe: [PATCH v2 7/9] arm64: dts: amlogic: Used onboard usb hub reset on odroid c4
Quoted 78 lines · Anand Moon
Hi Neil,
Thanks for your review comments.
Quoted 36 lines · Neil Armstrong
Quoted 34 lines · Anand Moon
On Odroid c4 previously use gpio-hog to reset the usb hub, switch to used on-board usb hub reset to enable the usb hub and enable power to hub.
USB hub is combination of USB 2.0 and USB 3.0 root hub so use peer-hub node to link then.
Signed-off-by Anand Moon <[email protected]>---
v2: - fix the compatible string.
- Fix the hub node to use peer-hub to link the usb 2.0 and usb 3.0.--- .../boot/dts/amlogic/meson-sm1-odroid-c4.dts | 36 ++++++++++++------- 1 file changed, 23 insertions(+), 13 deletions(-)arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +0
-10@@ -26,20 +26,30 @@ led-blue { sound { model = "ODROID-C4"; }; -}; -&gpio { - /* - * WARNING: The USB Hub on the Odroid-C4 needs a reset signal - * to be turned high in order to be detected by the USB Controller - * This signal should be handled by a USB specific power sequence - * in order to reset the Hub when USB bus is powered down. - */ - hog-0 { - gpio-hog;Quoted 9 lines
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts led-blue { · line 32
Quoted 6 lines
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +3
-3- gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>; - output-high; - line-name = "usb-hub-reset"; + /* USB hub supports both USB 2.0 and USB 3.0 root hub */ + usb-hub { + dr_mode = "host";Is this really needed ?
I got carried forward from the other device tree binding, If not needed I will drop this.
Quoted 15 lines
Quoted 15 lines
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +15
-0+ #address-cells = <1>; + #size-cells = <0>; + + /* 2.0 hub on port 1 */ + hub_2_0: hub@1 { + compatible = "usb2109,2817"; + reg = <1>; + peer-hub = <&hub_3_0>; + reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>; + vdd-supply = <&vcc_5v>; + }; + + /* 3.1 hub on port 4 */ + hub_3_0: hub@2 { + compatible = "usb2109,817";Quoted 9 lines
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts led-blue { · line 52
Quoted 5 lines
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +5
-0+ reg = <2>; + peer-hub = <&hub_2_0>; + reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>; + vdd-supply = <&vcc_5v>; + };The final discussion in v1 was to drop this /usb-hub node and move the
hub_2_0&hub_3_0node under the dwc3 node.
Quoted 5 lines
Yes, but It did not work back then, since these are two different events USB node will try to bring the PHY and dwc2 and dwc2 nodes up. USB hub supports the reset of the USB hub and links the power supply to the ports.
This works on this board.
Forget the dwc2 node, the dwc2 since GXL is device mode only, so you need to put both nodes in the dwc3 node which is host-only.
Neil
Quoted 6 lines
Quoted 3 lines
Neil
Thanks
-Anand
_______________________________________________
linux-amlogic mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-amlogic
Re: [PATCH v2 7/9] arm64: dts: amlogic: Used onboard usb hub reset on odroid c4
Hi Neil,
Quoted 86 lines · On Wed, 18 Jan 2023 at 18:54, <[email protected]> wrote:
Quoted 78 lines · Anand Moon
Hi Neil,
Thanks for your review comments.
Quoted 36 lines · Neil Armstrong
Quoted 34 lines · Anand Moon
On Odroid c4 previously use gpio-hog to reset the usb hub, switch to used on-board usb hub reset to enable the usb hub and enable power to hub.
USB hub is combination of USB 2.0 and USB 3.0 root hub so use peer-hub node to link then.
Signed-off-by Anand Moon <[email protected]>---
v2: - fix the compatible string.
- Fix the hub node to use peer-hub to link the usb 2.0 and usb 3.0.--- .../boot/dts/amlogic/meson-sm1-odroid-c4.dts | 36 ++++++++++++------- 1 file changed, 23 insertions(+), 13 deletions(-)arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +0
-10@@ -26,20 +26,30 @@ led-blue { sound { model = "ODROID-C4"; }; -}; -&gpio { - /* - * WARNING: The USB Hub on the Odroid-C4 needs a reset signal - * to be turned high in order to be detected by the USB Controller - * This signal should be handled by a USB specific power sequence - * in order to reset the Hub when USB bus is powered down. - */ - hog-0 { - gpio-hog;Quoted 9 lines
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts led-blue { · line 32
Quoted 6 lines
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +3
-3- gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>; - output-high; - line-name = "usb-hub-reset"; + /* USB hub supports both USB 2.0 and USB 3.0 root hub */ + usb-hub { + dr_mode = "host";Is this really needed ?
I got carried forward from the other device tree binding, If not needed I will drop this.
Quoted 15 lines
Quoted 15 lines
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +15
-0+ #address-cells = <1>; + #size-cells = <0>; + + /* 2.0 hub on port 1 */ + hub_2_0: hub@1 { + compatible = "usb2109,2817"; + reg = <1>; + peer-hub = <&hub_3_0>; + reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>; + vdd-supply = <&vcc_5v>; + }; + + /* 3.1 hub on port 4 */ + hub_3_0: hub@2 { + compatible = "usb2109,817";Quoted 9 lines
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts led-blue { · line 52
Quoted 5 lines
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-c4.dts +5
-0+ reg = <2>; + peer-hub = <&hub_2_0>; + reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>; + vdd-supply = <&vcc_5v>; + };The final discussion in v1 was to drop this /usb-hub node and move the
hub_2_0&hub_3_0node under the dwc3 node.Quoted 5 lines
Yes, but It did not work back then, since these are two different events USB node will try to bring the PHY and dwc2 and dwc2 nodes up. USB hub supports the reset of the USB hub and links the power supply to the ports.
This works on this board.
Quoted 5 lines
Forget the dwc2 node, the dwc2 since GXL is device mode only, so you need to put both nodes in the dwc3 node which is host-only.
Neil
Ok, I will move this node under dwc3 node, in the next version.
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Neil
Thanks
-Anand
_______________________________________________
linux-amlogic mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-amlogic
PATCH v2 8/9 usb: misc: onboard_usb_hub: add VIA LAB VL817 hub support
In reply to Anand MoonVIA LAB VL817 is a 4-port USB 3.1 hub and USB 2.0 root hub that has a reset pin to toggle and a 5.0V core supply exported though an integrated LDO is available for powering it.
Add the support for this hub, for controlling the reset pin and the core power supply.
Add USB device id's for USB 2.0 and USB 3.0 root hub.
---
v2 - fix the compatible string and update the commit message
- update the USB device id for USB 3.0 and USB 2.0 root hub.
--- drivers/usb/misc/onboard_usb_hub.c | 3 +++ drivers/usb/misc/onboard_usb_hub.h | 6 ++++++ 2 files changed, 9 insertions(+)
drivers/usb/misc/onboard_usb_hub.c +3 -0
@@ -335,6 +335,7 @@ static struct platform_driver onboard_hub_driver = {#define VENDOR_ID_MICROCHIP 0x0424#define VENDOR_ID_REALTEK 0x0bda#define VENDOR_ID_TI 0x0451 +#define VENDOR_ID_VIA 0x2109/* * Returns the onboard_hub platform device that is associated with the USB
@@ -417,6 +418,8 @@ static const struct usb_device_id onboard_hub_id_table[] = { { USB_DEVICE(VENDOR_ID_REALTEK, 0x5414) }, /* RTS5414 USB 2.1 */ { USB_DEVICE(VENDOR_ID_TI, 0x8140) }, /* TI USB8041 3.0 */ { USB_DEVICE(VENDOR_ID_TI, 0x8142) }, /* TI USB8041 2.0 */ + { USB_DEVICE(VENDOR_ID_VIA, 0x0817) }, /* VIA VL817 3.1 */ + { USB_DEVICE(VENDOR_ID_VIA, 0x2817) }, /* VIA VL817 2.0 */ {} };MODULE_DEVICE_TABLE (usb, onboard_hub_id_table);
drivers/usb/misc/onboard_usb_hub.h +6 -0
@@ -30,6 +30,10 @@ static const struct onboard_hub_pdata genesys_gl852g_data = { .reset_us = 50, }; +static const struct onboard_hub_pdata vialab_vl817_data = { + .reset_us =10 , +}; +static const struct of_device_id onboard_hub_match[] = { { .compatible ="usb424,2514" , .data = µchip_usb424_data, }, { .compatible ="usb451,8140" , .data = &ti_tusb8041_data, },
@@ -40,6 +44,8 @@ static const struct of_device_id onboard_hub_match[] = { { .compatible = "usbbda,5411", .data = &realtek_rts5411_data, }, { .compatible = "usbbda,414", .data = &realtek_rts5411_data, }, { .compatible = "usbbda,5414", .data = &realtek_rts5411_data, }, + { .compatible = "usb2109,817", .data = &vialab_vl817_data, }, + { .compatible = "usb2109,2817", .data = &vialab_vl817_data, }, {} };
Signature · 7 lines
2.38.1 _______________________________________________ linux-amlogic mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-amlogic
Re: [PATCH v2 8/9] usb: misc: onboard_usb_hub: add VIA LAB VL817 hub support
Quoted 10 lines · Anand Moon
VIA LAB VL817 is a 4-port USB 3.1 hub and USB 2.0 root hub that has a reset pin to toggle and a 5.0V core supply exported though an integrated LDO is available for powering it.
Add the support for this hub, for controlling the reset pin and the core power supply.
Add USB device id's for USB 2.0 and USB 3.0 root hub.
Signed-off-by Anand Moon <[email protected]>
_______________________________________________
linux-amlogic mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-amlogic
PATCH v2 9/9 arm64: defconfig: Enable USB onboard HUB driver
In reply to Anand MoonEnable the USB onboard HUB driver, used on Amlogic boards.
---
v2: - none
--- arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+)
arch/arm64/configs/defconfig +1 -0
@@ -923,6 +923,7 @@ CONFIG_USB_SERIAL_CP210X=m CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_OPTION=m CONFIG_USB_HSIC_USB3503=y +CONFIG_USB_ONBOARD_HUB=m CONFIG_NOP_USB_XCEIV=y CONFIG_USB_GADGET=y CONFIG_USB_RENESAS_USBHS_UDC=m
Signature · 7 lines
2.38.1 _______________________________________________ linux-amlogic mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-amlogic
Re: [PATCH v2 9/9] arm64: defconfig: Enable USB onboard HUB driver
Quoted 14 lines · Anand Moon
Enable the USB onboard HUB driver, used on Amlogic boards.
Signed-off-by Anand Moon <[email protected]>---
v2: - none--- arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+)arch/arm64/configs/defconfig +0
-0
arch/arm64/configs/defconfig CONFIG_USB_SERIAL_CP210X=m · line 929
Quoted 7 lines
arch/arm64/configs/defconfig +1
-0@@ -923,6 +923,7 @@ CONFIG_USB_SERIAL_CP210X=m CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_OPTION=m CONFIG_USB_HSIC_USB3503=y +CONFIG_USB_ONBOARD_HUB=m CONFIG_NOP_USB_XCEIV=y CONFIG_USB_GADGET=y CONFIG_USB_RENESAS_USBHS_UDC=m
_______________________________________________
linux-amlogic mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-amlogic