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.stell...@goerlitz.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koe...@pengutronix.de>
---
 drivers/usb/misc/usb251xb.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/usb/misc/usb251xb.c b/drivers/usb/misc/usb251xb.c
index d91ef9cf3623..7e4e4787f746 100644
--- a/drivers/usb/misc/usb251xb.c
+++ b/drivers/usb/misc/usb251xb.c
@@ -154,6 +154,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,
@@ -588,6 +596,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,
        }, {
@@ -688,6 +699,7 @@ static int usb251xb_i2c_probe(struct i2c_client *i2c,
 }
 
 static const struct i2c_device_id usb251xb_id[] = {
+       { "usb2422", 0 },
        { "usb2512b", 0 },
        { "usb2512bi", 0 },
        { "usb2513b", 0 },
-- 
2.23.0

Reply via email to