diff --git a/drivers/usb/misc/usb251xb.c b/drivers/usb/misc/usb251xb.c index 5b1c4f565d2f..5263b8acc772 100644 --- a/drivers/usb/misc/usb251xb.c +++ b/drivers/usb/misc/usb251xb.c @@ -163,6 +163,7 @@ struct usb251xb { struct usb251xb_data { u16 product_id; u8 port_cnt; + bool led_support; bool bat_support; char product_str[USB251XB_STRING_BUFSIZE / 2]; /* ASCII string */ }; @@ -170,6 +171,7 @@ struct usb251xb_data { static const struct usb251xb_data usb2512b_data = { .product_id = 0x2512, .port_cnt = 2, + .led_support = false, .bat_support = true, .product_str = "USB2512B", }; @@ -177,6 +179,7 @@ static const struct usb251xb_data usb2512b_data = { static const struct usb251xb_data usb2512bi_data = { .product_id = 0x2512, .port_cnt = 2, + .led_support = false, .bat_support = true, .product_str = "USB2512Bi", }; @@ -184,6 +187,7 @@ static const struct usb251xb_data usb2512bi_data = { static const struct usb251xb_data usb2513b_data = { .product_id = 0x2513, .port_cnt = 3, + .led_support = false, .bat_support = true, .product_str = "USB2513B", }; @@ -191,6 +195,7 @@ static const struct usb251xb_data usb2513b_data = { static const struct usb251xb_data usb2513bi_data = { .product_id = 0x2513, .port_cnt = 3, + .led_support = false, .bat_support = true, .product_str = "USB2513Bi", }; @@ -198,6 +203,7 @@ static const struct usb251xb_data usb2513bi_data = { static const struct usb251xb_data usb2514b_data = { .product_id = 0x2514, .port_cnt = 4, + .led_support = false, .bat_support = true, .product_str = "USB2514B", }; @@ -205,6 +211,7 @@ static const struct usb251xb_data usb2514b_data = { static const struct usb251xb_data usb2514bi_data = { .product_id = 0x2514, .port_cnt = 4, + .led_support = false, .bat_support = true, .product_str = "USB2514Bi", }; @@ -212,6 +219,7 @@ static const struct usb251xb_data usb2514bi_data = { static const struct usb251xb_data usb2517_data = { .product_id = 0x2517, .port_cnt = 7, + .led_support = true, .bat_support = false, .product_str = "USB2517", }; @@ -219,6 +227,7 @@ static const struct usb251xb_data usb2517_data = { static const struct usb251xb_data usb2517i_data = { .product_id = 0x2517, .port_cnt = 7, + .led_support = true, .bat_support = false, .product_str = "USB2517i", }; @@ -442,6 +451,9 @@ static int usb251xb_get_ofdata(struct usb251xb *hub, if (of_get_property(np, "port-mapping-mode", NULL)) hub->conf_data3 |= BIT(3); + if (data->led_support && of_get_property(np, "led-usb-mode", NULL)) + hub->conf_data3 &= ~BIT(1); + if (of_get_property(np, "string-support", NULL)) hub->conf_data3 |= BIT(0);