summaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorSerge Semin <fancer.lancer@gmail.com>2017-10-22 23:38:09 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-11-01 17:14:21 +0100
commit2818e13ae174bf6a607db3e3fc405bbf5f66b1ce (patch)
treed5873aec1612768bfe089732913e9bdfc87915b5 /drivers/usb
parentdd99d106de255eb48ad7fce8a44afe3ee1526cef (diff)
downloadop-kernel-dev-2818e13ae174bf6a607db3e3fc405bbf5f66b1ce.zip
op-kernel-dev-2818e13ae174bf6a607db3e3fc405bbf5f66b1ce.tar.gz
usb: usb251xb: Add USB2517 LED settings
USB2517 supports two LED modes: USB mode and speed (default) indication mode. The last one can be switched on by corresponding dts property. Since USB251xb hubs doesn't support LEDs settings, we need to ignore this setting. Signed-off-by: Serge Semin <fancer.lancer@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/misc/usb251xb.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/usb/misc/usb251xb.c b/drivers/usb/misc/usb251xb.c
index 5b1c4f5..5263b8a 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);
OpenPOWER on IntegriCloud