[PATCH v2 1/5] usb: misc: onboard_usb_dev: fix support for Cypress HX3 hubs

Heiko Stübner heiko at sntech.de
Tue May 13 09:12:47 PDT 2025


Am Freitag, 25. April 2025, 17:18:06 Mitteleuropäische Sommerzeit schrieb Lukasz Czechowski:
> The Cypress HX3 USB3.0 hubs use different PID values depending
> on the product variant. The comment in compatibles table is
> misleading, as the currently used PIDs (0x6504 and 0x6506 for
> USB 3.0 and USB 2.0, respectively) are defaults for the CYUSB331x,
> while CYUSB330x and CYUSB332x variants use different values.
> Based on the datasheet [1], update the compatible usb devices table
> to handle different types of the hub.
> The change also includes vendor mode PIDs, which are used by the
> hub in I2C Master boot mode, if connected EEPROM contains invalid
> signature or is blank. This allows to correctly boot the hub even
> if the EEPROM will have broken content.
> Number of vcc supplies and timing requirements are the same for all
> HX variants, so the platform driver's match table does not have to
> be extended.
> 
> [1] https://www.infineon.com/dgdl/Infineon-HX3_USB_3_0_Hub_Consumer_Industrial-DataSheet-v22_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0ecb53f644b8
>     Table 9. PID Values
> 
> Fixes: b43cd82a1a40 ("usb: misc: onboard-hub: add support for Cypress HX3 USB 3.0 family")
> Cc: stable at vger.kernel.org
> Signed-off-by: Lukasz Czechowski <lukasz.czechowski at thaumatec.com>

Reviewed-by: Heiko Stuebner <heiko at sntech.de>

@GregKH: I'd assume you pick patches 1+2 (dt-binding + driver) and I pick the
Rockchip arm64-dts patches afterwards, after the first two look good to you?

Thanks a lot
Heiko

> ---
>  drivers/usb/misc/onboard_usb_dev.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/misc/onboard_usb_dev.c b/drivers/usb/misc/onboard_usb_dev.c
> index 75ac3c6aa92d0d925bb9488d1e6295548446bf98..f5372dfa241a9cee09fea95fd14b72727a149b2e 100644
> --- a/drivers/usb/misc/onboard_usb_dev.c
> +++ b/drivers/usb/misc/onboard_usb_dev.c
> @@ -569,8 +569,14 @@ static void onboard_dev_usbdev_disconnect(struct usb_device *udev)
>  }
>  
>  static const struct usb_device_id onboard_dev_id_table[] = {
> -	{ USB_DEVICE(VENDOR_ID_CYPRESS, 0x6504) }, /* CYUSB33{0,1,2}x/CYUSB230x 3.0 HUB */
> -	{ USB_DEVICE(VENDOR_ID_CYPRESS, 0x6506) }, /* CYUSB33{0,1,2}x/CYUSB230x 2.0 HUB */
> +	{ USB_DEVICE(VENDOR_ID_CYPRESS, 0x6500) }, /* CYUSB330x 3.0 HUB */
> +	{ USB_DEVICE(VENDOR_ID_CYPRESS, 0x6502) }, /* CYUSB330x 2.0 HUB */
> +	{ USB_DEVICE(VENDOR_ID_CYPRESS, 0x6503) }, /* CYUSB33{0,1}x 2.0 HUB, Vendor Mode */
> +	{ USB_DEVICE(VENDOR_ID_CYPRESS, 0x6504) }, /* CYUSB331x 3.0 HUB */
> +	{ USB_DEVICE(VENDOR_ID_CYPRESS, 0x6506) }, /* CYUSB331x 2.0 HUB */
> +	{ USB_DEVICE(VENDOR_ID_CYPRESS, 0x6507) }, /* CYUSB332x 2.0 HUB, Vendor Mode */
> +	{ USB_DEVICE(VENDOR_ID_CYPRESS, 0x6508) }, /* CYUSB332x 3.0 HUB */
> +	{ USB_DEVICE(VENDOR_ID_CYPRESS, 0x650a) }, /* CYUSB332x 2.0 HUB */
>  	{ USB_DEVICE(VENDOR_ID_CYPRESS, 0x6570) }, /* CY7C6563x 2.0 HUB */
>  	{ USB_DEVICE(VENDOR_ID_GENESYS, 0x0608) }, /* Genesys Logic GL850G USB 2.0 HUB */
>  	{ USB_DEVICE(VENDOR_ID_GENESYS, 0x0610) }, /* Genesys Logic GL852G USB 2.0 HUB */
> 
> 







More information about the Linux-rockchip mailing list