Skip to contentSkip to conversation

usb: misc: onboard_dev: Add WCH CH334 USB2.0 Hub (1a86:8091)

PATCH In review Chaoyi Chen 2 participants 4 messages Jan 13 – Jan 15

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

v2 cover usb: misc: onboard_dev: Add WCH CH334 USB2.0 Hub (1a86:8091)

From: Chaoyi Chen <[email protected]>

Hi,

This series add support for WCH CH334/CH335 USB2.0 Hub (1a86:8091).

Changes in v2:
- Link to v1: https://lore.kernel.org/all/[email protected]/
- Add missing driver (PATCH 2).
- Fix the incorrect reset GPIO polarity.
- Use a more meaningful supply name.

Chaoyi Chen (2):
dt-bindings: usb: Add binding for WCH CH334/CH335 hub controller
usb: misc: onboard_dev: Add WCH CH334 USB2.0 Hub (1a86:8091)

 .../devicetree/bindings/usb/wch,ch334.yaml    | 65 +++++++++++++++++++
 drivers/usb/misc/onboard_usb_dev.h            |  8 +++
 2 files changed, 73 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/usb/wch,ch334.yaml

--
2.51.1

#1 lore raw

PATCH v2 1/2 dt-bindings: usb: Add binding for WCH CH334/CH335 hub controller

From: Chaoyi Chen <[email protected]>

The WCH CH334/CH335[0] are USB2.0 protocol compliant 4-port USB HUB controller chips, supporting USB2.0 high-speed and full-speed for upstream ports, and USB2.0 high-speed 480Mbps, full-speed 12Mbps and low-speed 1.5Mbps for downstream ports, supporting not only low-cost STT mode (single TT schedules 4 downstream ports in time share), but also supports high performance MTT mode (4 TTs each corresponding to 1 port, concurrent processing).

Add a device tree binding for it.

[0]: https://www.wch-ic.com/downloads/CH334DS1_PDF.html

---
Changes in v2:
- Fix the incorrect reset GPIO polarity.
- Use a more meaningful supply name.

---
 .../devicetree/bindings/usb/wch,ch334.yaml    | 65 +++++++++++++++++++
 1 file changed, 65 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/usb/wch,ch334.yaml
Documentation/devicetree/bindings/usb/wch,ch334.yaml new file +65 -0
new file mode 100644
index 000000000000..2fdca14dc1de
@@ -0,0 +1,65 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/wch,ch334.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: WCH CH334/CH335 USB 2.0 Hub Controller
+
+maintainers:
+  - Chaoyi Chen <[email protected]>
+
+allOf:
+  - $ref: usb-hub.yaml#
+
+properties:
+  compatible:
+    enum:
+      - usb1a86,8091
+
+  reg: true
+
+  reset-gpios:
+    description: GPIO controlling the RESET# pin.
+
+  vdd33-supply:
+    description:
+      The regulator that provides 3.3V core power to the hub.
+
+  v5-supply:
+    description:
+      The regulator that provides 3.3V or 5V power to the hub.
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+    patternProperties:
+      '^port@':
+        $ref: /schemas/graph.yaml#/properties/port
+
+        properties:
+          reg:
+            minimum: 1
+            maximum: 4
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    usb {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        hub: hub@1 {
+            compatible = "usb1a86,8091";
+            reg = <1>;
+            reset-gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
+            v5-supply = <&vcc_3v3>;
+            vdd33-supply = <&vcc_3v3>;
+        };
+    };
Signature · 1 line
2.51.1
maintainer Reviewed-by on v2 1/2
#2 lore raw

Re: [PATCH v2 1/2] dt-bindings: usb: Add binding for WCH CH334/CH335 hub controller

Quoted 15 lines · Chaoyi Chen

From: Chaoyi Chen <[email protected]>

The WCH CH334/CH335[0] are USB2.0 protocol compliant 4-port USB HUB controller chips, supporting USB2.0 high-speed and full-speed for upstream ports, and USB2.0 high-speed 480Mbps, full-speed 12Mbps and low-speed 1.5Mbps for downstream ports, supporting not only low-cost STT mode (single TT schedules 4 downstream ports in time share), but also supports high performance MTT mode (4 TTs each corresponding to 1 port, concurrent processing).

Add a device tree binding for it.

[0]: https://www.wch-ic.com/downloads/CH334DS1_PDF.html

Quoted 9 lines

---
Changes in v2:
- Fix the incorrect reset GPIO polarity.
- Use a more meaningful supply name.

---
 .../devicetree/bindings/usb/wch,ch334.yaml    | 65 +++++++++++++++++++
 1 file changed, 65 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/usb/wch,ch334.yaml
#3 lore raw

PATCH v2 2/2 usb: misc: onboard_dev: Add WCH CH334 USB2.0 Hub (1a86:8091)

In reply to Chaoyi Chen

From: Chaoyi Chen <[email protected]>

The WCH CH334/CH335[0] are USB2.0 protocol compliant 4-port USB HUB controller chips, supporting USB2.0 high-speed and full-speed for upstream ports, and USB2.0 high-speed 480Mbps, full-speed 12Mbps and low-speed 1.5Mbps for downstream ports, supporting not only low-cost STT mode (single TT schedules 4 downstream ports in time share), but also supports high performance MTT mode (4 TTs each corresponding to 1 port, concurrent processing).

[0]: https://www.wch-ic.com/downloads/CH334DS1_PDF.html

---
 drivers/usb/misc/onboard_usb_dev.h | 8 ++++++++
 1 file changed, 8 insertions(+)
drivers/usb/misc/onboard_usb_dev.h +8 -0
index c1462be5526d..1a1e86e60e04 100644
@@ -115,6 +115,13 @@ static const struct onboard_dev_pdata vialab_vl817_data = {
 	.is_hub = true,
 };
 
+static const struct onboard_dev_pdata wch_ch334_data = {
+	.reset_us = 14000,
+	.num_supplies = 2,
+	.supply_names = { "vdd33", "v5" },
+	.is_hub = true,
+};
+
 static const struct onboard_dev_pdata xmos_xvf3500_data = {
 	.reset_us = 1,
 	.num_supplies = 2,
@@ -146,6 +153,7 @@ static const struct of_device_id onboard_dev_match[] = {
 	{ .compatible = "usbbda,5411", .data = &realtek_rts5411_data, },
 	{ .compatible = "usbbda,414", .data = &realtek_rts5411_data, },
 	{ .compatible = "usbbda,5414", .data = &realtek_rts5411_data, },
+	{ .compatible = "usb1a86,8091", .data = &wch_ch334_data, },
 	{ .compatible = "usb1da0,5511", .data = &parade_ps5511_data, },
 	{ .compatible = "usb1da0,55a1", .data = &parade_ps5511_data, },
 	{ .compatible = "usb2109,817", .data = &vialab_vl817_data, },
Signature · 1 line
2.51.1