2023-06-21 14:37:16

by Benjamin Bara

[permalink] [raw]
Subject: [PATCH v2 2/3] usb: misc: onboard-hub: add support for Cypress HX3 USB 3.0 family

From: Benjamin Bara <[email protected]>

The HX3 comes in different variants (up to 4 USB 3.0 ports; multi-TT),
e.g. CYUSB330x/CYUSB331x/CYUSB332x/CYUSB230x. It operates with two
different power supplies: 1V2 and 3V3.

Add the support for this hub, for controlling the reset pin and the
power supplies.

Reset time is extracted from data sheet, page 24:
"The RESETN pin can be tied to VDD_IO through an external resistor and
to ground (GND) through an external capacitor (minimum 5 ms time
constant)."
V_IH min is given at 0.7 * 3V3 (page 34), therefore use 10ms.

Also add USB PIDs for the USB 2.0 and USB 3.0 root hub.

Signed-off-by: Benjamin Bara <[email protected]>
---
drivers/usb/misc/onboard_usb_hub.c | 3 +++
drivers/usb/misc/onboard_usb_hub.h | 7 +++++++
2 files changed, 10 insertions(+)

diff --git a/drivers/usb/misc/onboard_usb_hub.c b/drivers/usb/misc/onboard_usb_hub.c
index 3de30356a684..06e448b7e8cf 100644
--- a/drivers/usb/misc/onboard_usb_hub.c
+++ b/drivers/usb/misc/onboard_usb_hub.c
@@ -349,6 +349,7 @@ static struct platform_driver onboard_hub_driver = {

/************************** USB driver **************************/

+#define VENDOR_ID_CYPRESS 0x04b4
#define VENDOR_ID_GENESYS 0x05e3
#define VENDOR_ID_MICROCHIP 0x0424
#define VENDOR_ID_REALTEK 0x0bda
@@ -427,6 +428,8 @@ static void onboard_hub_usbdev_disconnect(struct usb_device *udev)
}

static const struct usb_device_id onboard_hub_id_table[] = {
+ { USB_DEVICE(VENDOR_ID_CYPRESS, 0x6504) }, /* CYUSB33{0,1,2}x/CYUSB230x 3.0 */
+ { USB_DEVICE(VENDOR_ID_CYPRESS, 0x6506) }, /* CYUSB33{0,1,2}x/CYUSB230x 2.0 */
{ 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 */
diff --git a/drivers/usb/misc/onboard_usb_hub.h b/drivers/usb/misc/onboard_usb_hub.h
index 657190bf1799..145e476b1d6c 100644
--- a/drivers/usb/misc/onboard_usb_hub.h
+++ b/drivers/usb/misc/onboard_usb_hub.h
@@ -23,6 +23,11 @@ static const struct onboard_hub_pdata ti_tusb8041_data = {
.reset_us = 3000,
};

+static const struct onboard_hub_pdata cypress_hx3_data = {
+ .reset_us = 10000,
+ .supplies_num = 2,
+};
+
static const struct onboard_hub_pdata genesys_gl850g_data = {
.reset_us = 3,
};
@@ -40,6 +45,8 @@ static const struct of_device_id onboard_hub_match[] = {
{ .compatible = "usb424,2517", .data = &microchip_usb424_data, },
{ .compatible = "usb451,8140", .data = &ti_tusb8041_data, },
{ .compatible = "usb451,8142", .data = &ti_tusb8041_data, },
+ { .compatible = "usb4b4,6504", .data = &cypress_hx3_data, },
+ { .compatible = "usb4b4,6506", .data = &cypress_hx3_data, },
{ .compatible = "usb5e3,608", .data = &genesys_gl850g_data, },
{ .compatible = "usb5e3,610", .data = &genesys_gl852g_data, },
{ .compatible = "usbbda,411", .data = &realtek_rts5411_data, },

--
2.34.1



2023-06-21 15:59:54

by Matthias Kaehlcke

[permalink] [raw]
Subject: Re: [PATCH v2 2/3] usb: misc: onboard-hub: add support for Cypress HX3 USB 3.0 family

On Wed, Jun 21, 2023 at 04:26:28PM +0200, Benjamin Bara wrote:
> From: Benjamin Bara <[email protected]>
>
> The HX3 comes in different variants (up to 4 USB 3.0 ports; multi-TT),
> e.g. CYUSB330x/CYUSB331x/CYUSB332x/CYUSB230x. It operates with two
> different power supplies: 1V2 and 3V3.
>
> Add the support for this hub, for controlling the reset pin and the
> power supplies.
>
> Reset time is extracted from data sheet, page 24:
> "The RESETN pin can be tied to VDD_IO through an external resistor and
> to ground (GND) through an external capacitor (minimum 5 ms time
> constant)."
> V_IH min is given at 0.7 * 3V3 (page 34), therefore use 10ms.
>
> Also add USB PIDs for the USB 2.0 and USB 3.0 root hub.
>
> Signed-off-by: Benjamin Bara <[email protected]>

Acked-by: Matthias Kaehlcke <[email protected]>