usb: misc: onboard_usb_hub: Add support for TI TUSB8020B
authorMacpaul Lin <macpaul.lin@mediatek.com>
Tue, 27 Feb 2024 09:02:28 +0000 (17:02 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 5 Mar 2024 13:27:45 +0000 (13:27 +0000)
The TI TUSB8020B is a 2-port USB 3.0 hub. Add support for
this hub in the driver in order to bring up reset, and supply
dependencies.

Power-up: Issue a GPIO reset (GRSTz) 3ms after VDD and VDD33 stabilize.

Signed-off-by: Macpaul Lin <macpaul.lin@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20240227090228.22156-2-macpaul.lin@mediatek.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/misc/onboard_usb_hub.c
drivers/usb/misc/onboard_usb_hub.h

index 0dd2b032c90b9bc6196ab7a3752e327c18a61fb0..4f2b0d62db6f07d7d37d611c1b62a44b76b2c8dc 100644 (file)
@@ -454,6 +454,8 @@ static const struct usb_device_id onboard_hub_id_table[] = {
        { USB_DEVICE(VENDOR_ID_REALTEK, 0x5411) }, /* RTS5411 USB 2.1 */
        { USB_DEVICE(VENDOR_ID_REALTEK, 0x0414) }, /* RTS5414 USB 3.2 */
        { USB_DEVICE(VENDOR_ID_REALTEK, 0x5414) }, /* RTS5414 USB 2.1 */
+       { USB_DEVICE(VENDOR_ID_TI, 0x8025) }, /* TI USB8020B 3.0 */
+       { USB_DEVICE(VENDOR_ID_TI, 0x8027) }, /* TI USB8020B 2.0 */
        { 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 */
index f360d5cf8d8a047bf8464bec36fa5fc3ab9e2dd9..b4b15d45f84d67d07c1167e852b9e5f1dd2da962 100644 (file)
@@ -26,6 +26,11 @@ static const struct onboard_hub_pdata realtek_rts5411_data = {
        .num_supplies = 1,
 };
 
+static const struct onboard_hub_pdata ti_tusb8020b_data = {
+       .reset_us = 3000,
+       .num_supplies = 1,
+};
+
 static const struct onboard_hub_pdata ti_tusb8041_data = {
        .reset_us = 3000,
        .num_supplies = 1,
@@ -62,6 +67,8 @@ static const struct of_device_id onboard_hub_match[] = {
        { .compatible = "usb424,2517", .data = &microchip_usb424_data, },
        { .compatible = "usb424,2744", .data = &microchip_usb5744_data, },
        { .compatible = "usb424,5744", .data = &microchip_usb5744_data, },
+       { .compatible = "usb451,8025", .data = &ti_tusb8020b_data, },
+       { .compatible = "usb451,8027", .data = &ti_tusb8020b_data, },
        { .compatible = "usb451,8140", .data = &ti_tusb8041_data, },
        { .compatible = "usb451,8142", .data = &ti_tusb8041_data, },
        { .compatible = "usb4b4,6504", .data = &cypress_hx3_data, },