usb: misc: onboard_usb_hub: add VIA LAB VL817 hub support
authorAnand Moon <linux.amoon@gmail.com>
Wed, 18 Jan 2023 04:44:16 +0000 (04:44 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 Jan 2023 13:13:28 +0000 (14:13 +0100)
VIA LAB VL817 is a 4-port USB 3.1 hub and USB 2.0 root hub
that has a reset pin to toggle and a 5.0V core supply exported
though an integrated LDO is available for powering it.

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

Add USB device id's for USB 2.0 and USB 3.0 root hub.

Signed-off-by: Anand Moon <linux.amoon@gmail.com>
Acked-by: Matthias Kaehlcke <mka@chromium.org>
Link: https://lore.kernel.org/r/20230118044418.875-9-linux.amoon@gmail.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 9bf59792fb944a91c5aa4c66fc02b2c41a3116c6..945d4e7125ea349e811cb3f39ebd3e083bd08ada 100644 (file)
@@ -335,6 +335,7 @@ static struct platform_driver onboard_hub_driver = {
 #define VENDOR_ID_MICROCHIP    0x0424
 #define VENDOR_ID_REALTEK      0x0bda
 #define VENDOR_ID_TI           0x0451
+#define VENDOR_ID_VIA          0x2109
 
 /*
  * Returns the onboard_hub platform device that is associated with the USB
@@ -417,6 +418,8 @@ static const struct usb_device_id onboard_hub_id_table[] = {
        { USB_DEVICE(VENDOR_ID_REALTEK, 0x5414) }, /* RTS5414 USB 2.1 */
        { 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 */
+       { USB_DEVICE(VENDOR_ID_VIA, 0x2817) }, /* VIA VL817 2.0 */
        {}
 };
 MODULE_DEVICE_TABLE(usb, onboard_hub_id_table);
index 163fc07abf25218c7dcbb8bdc9e9884801f53b92..0a943a1546490293c3342609dd960f71cf046b50 100644 (file)
@@ -30,6 +30,10 @@ static const struct onboard_hub_pdata genesys_gl852g_data = {
        .reset_us = 50,
 };
 
+static const struct onboard_hub_pdata vialab_vl817_data = {
+       .reset_us = 10,
+};
+
 static const struct of_device_id onboard_hub_match[] = {
        { .compatible = "usb424,2514", .data = &microchip_usb424_data, },
        { .compatible = "usb451,8140", .data = &ti_tusb8041_data, },
@@ -40,6 +44,8 @@ static const struct of_device_id onboard_hub_match[] = {
        { .compatible = "usbbda,5411", .data = &realtek_rts5411_data, },
        { .compatible = "usbbda,414", .data = &realtek_rts5411_data, },
        { .compatible = "usbbda,5414", .data = &realtek_rts5411_data, },
+       { .compatible = "usb2109,817", .data = &vialab_vl817_data, },
+       { .compatible = "usb2109,2817", .data = &vialab_vl817_data, },
        {}
 };