2023-06-23 07:42:08

by Benjamin Bara

[permalink] [raw]
Subject: [PATCH v7 0/3] usb: misc: onboard_usb_hub: add support for Cypress HX3 USB 3.0 family

Hi!

This series adds support for the Cypress HX3 USB 3.0 family (2/3). For
now, it just contains the USB-related aspects and ignores the option to
connect it via i2c (3/3).

As the HX3 family operates with two power supplies, multiple power
supply support is implemented (1/3).

Thanks & best regards,
Benjamin

---
Changes in v7:
- 1/3: %ld -> %zu (thanks to lkp)
- Link to v6: https://lore.kernel.org/r/[email protected]

Changes in v6:
- 1/3: %d -> %ld (thanks to lkp)
- Link to v5: https://lore.kernel.org/r/[email protected]

Changes in v5:
- 1/3: use ARRAY_SIZE(supply_names) for MAX_SUPPLIES (thanks to Alex)
- Link to v4: https://lore.kernel.org/r/[email protected]

Changes in v4:
- 1/3: set num_supplies=1 for the existing hubs
- 1/3: drop duplicate num_supplies in onboard_hub struct
- 1/3: clarify connection between supply_names and MAX_SUPPLIES
- Link to v3: https://lore.kernel.org/r/[email protected]

Changes in v3:
- 1/3: fix nits mentioned by Matthias
- Link to v2: https://lore.kernel.org/r/[email protected]

Changes in v2:
- don't re-order by VID/PID (thanks to Matthias)
- 1/3: replace (err != 0) with (err)
- Link to v1: https://lore.kernel.org/r/[email protected]

---
Benjamin Bara (3):
usb: misc: onboard-hub: support multiple power supplies
usb: misc: onboard-hub: add support for Cypress HX3 USB 3.0 family
dt-bindings: usb: Add binding for Cypress HX3 USB 3.0 family

.../devicetree/bindings/usb/cypress,hx3.yaml | 77 ++++++++++++++++++++++
drivers/usb/misc/onboard_usb_hub.c | 40 ++++++++---
drivers/usb/misc/onboard_usb_hub.h | 14 ++++
3 files changed, 123 insertions(+), 8 deletions(-)
---
base-commit: 45a3e24f65e90a047bef86f927ebdc4c710edaa1
change-id: 20230620-hx3-cb935b4fdd76

Best regards,
--
Benjamin Bara <[email protected]>



2023-06-23 07:58:59

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH v7 0/3] usb: misc: onboard_usb_hub: add support for Cypress HX3 USB 3.0 family

On Fri, Jun 23, 2023 at 09:28:11AM +0200, Benjamin Bara wrote:
> Hi!
>
> This series adds support for the Cypress HX3 USB 3.0 family (2/3). For
> now, it just contains the USB-related aspects and ignores the option to
> connect it via i2c (3/3).
>
> As the HX3 family operates with two power supplies, multiple power
> supply support is implemented (1/3).
>
> Thanks & best regards,
> Benjamin
>
> ---
> Changes in v7:
> - 1/3: %ld -> %zu (thanks to lkp)
> - Link to v6: https://lore.kernel.org/r/[email protected]

Wow, that's a lot of respins so quickly, please relax and take your time
and wait a few days before resending patch series as it causes
cross-reviews of old versions, which has happened many times here
already.

I'll wait for 6.5-rc1 to come out before looking at this again to give
everything some time to settle down.

thanks,

greg k-h

2023-06-23 08:00:13

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v7 0/3] usb: misc: onboard_usb_hub: add support for Cypress HX3 USB 3.0 family

On 23/06/2023 09:28, Benjamin Bara wrote:
> Hi!
>
> This series adds support for the Cypress HX3 USB 3.0 family (2/3). For
> now, it just contains the USB-related aspects and ignores the option to
> connect it via i2c (3/3).
>
> As the HX3 family operates with two power supplies, multiple power
> supply support is implemented (1/3).
>
> Thanks & best regards,
> Benjamin
>
> ---
> Changes in v7:
> - 1/3: %ld -> %zu (thanks to lkp)
> - Link to v6: https://lore.kernel.org/r/[email protected]

Please give some time before resending bigger (non-trivial) patches. One
per day is usually enough. I still see some kbuild robot reports - from
this or previous patchset, so are you sure you compile tested it on few
different platforms?

Best regards,
Krzysztof


2023-06-23 08:10:48

by Benjamin Bara

[permalink] [raw]
Subject: [PATCH v7 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.

Acked-by: Matthias Kaehlcke <[email protected]>
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 b31548cd60e7..b8d6b26cd531 100644
--- a/drivers/usb/misc/onboard_usb_hub.c
+++ b/drivers/usb/misc/onboard_usb_hub.c
@@ -350,6 +350,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
@@ -428,6 +429,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 41a4127a92dc..6f446fe7d2f7 100644
--- a/drivers/usb/misc/onboard_usb_hub.h
+++ b/drivers/usb/misc/onboard_usb_hub.h
@@ -26,6 +26,11 @@ static const struct onboard_hub_pdata ti_tusb8041_data = {
.num_supplies = 1,
};

+static const struct onboard_hub_pdata cypress_hx3_data = {
+ .reset_us = 10000,
+ .num_supplies = 2,
+};
+
static const struct onboard_hub_pdata genesys_gl850g_data = {
.reset_us = 3,
.num_supplies = 1,
@@ -46,6 +51,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-23 08:13:49

by Benjamin Bara

[permalink] [raw]
Subject: Re: [PATCH v7 0/3] usb: misc: onboard_usb_hub: add support for Cypress HX3 USB 3.0 family

Hi greg and Krysztof,

On Fri, 23 Jun 2023 at 09:41, Krzysztof Kozlowski <[email protected]> wrote:
> Please give some time before resending bigger (non-trivial) patches. One
> per day is usually enough. I still see some kbuild robot reports - from
> this or previous patchset, so are you sure you compile tested it on few
> different platforms?

On Fri, 23 Jun 2023 at 09:46, Greg Kroah-Hartman <[email protected]> wrote:
> Wow, that's a lot of respins so quickly, please relax and take your time
> and wait a few days before resending patch series as it causes
> cross-reviews of old versions, which has happened many times here
> already.
>
> I'll wait for 6.5-rc1 to come out before looking at this again to give
> everything some time to settle down.

Sorry for the spam, was a little stressed and wanted to get it done
before driving to Prague. Obviously was a stupid idea I will remember
for the future.

Best regards and please excuse the inconveniences. Won't happen again.
Benjamin