usb: usb251xb: Add support for USB2422
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Wed, 23 Oct 2019 10:52:50 +0000 (12:52 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 4 Nov 2019 14:51:05 +0000 (15:51 +0100)
The USB2422 uses a different package that the USB251x and only comes in
a variant with 2 downstream ports. Other than that it is software
compatible.

Tested-by: Carsten Stelling <carsten.stelling@goerlitz.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Link: https://lore.kernel.org/r/20191023105250.16537-3-u.kleine-koenig@pengutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/misc/usb251xb.c

index 753d6fc..10c9e7f 100644 (file)
@@ -156,6 +156,14 @@ struct usb251xb_data {
        char product_str[USB251XB_STRING_BUFSIZE / 2]; /* ASCII string */
 };
 
+static const struct usb251xb_data usb2422_data = {
+       .product_id = 0x2422,
+       .port_cnt = 2,
+       .led_support = false,
+       .bat_support = true,
+       .product_str = "USB2422",
+};
+
 static const struct usb251xb_data usb2512b_data = {
        .product_id = 0x2512,
        .port_cnt = 2,
@@ -593,6 +601,9 @@ static int usb251xb_get_ofdata(struct usb251xb *hub,
 
 static const struct of_device_id usb251xb_of_match[] = {
        {
+               .compatible = "microchip,usb2422",
+               .data = &usb2422_data,
+       }, {
                .compatible = "microchip,usb2512b",
                .data = &usb2512b_data,
        }, {
@@ -720,6 +731,7 @@ static int __maybe_unused usb251xb_resume(struct device *dev)
 static SIMPLE_DEV_PM_OPS(usb251xb_pm_ops, usb251xb_suspend, usb251xb_resume);
 
 static const struct i2c_device_id usb251xb_id[] = {
+       { "usb2422", 0 },
        { "usb2512b", 0 },
        { "usb2512bi", 0 },
        { "usb2513b", 0 },