From 9ee90f1e404a852d462198393438dc85b47ac79c Mon Sep 17 00:00:00 2001 From: David Bauer Date: Sun, 26 Jul 2020 02:38:31 +0200 Subject: [PATCH 156/158] net: usb: r8152: add LED configuration from OF This adds the ability to configure the LED configuration register using OF. This way, the correct value for board specific LED configuration can be determined. Signed-off-by: David Bauer --- drivers/net/usb/r8152.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index 23da1d9da..a674e1086 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -6871,6 +6872,22 @@ static void rtl_tally_reset(struct r8152 *tp) ocp_write_word(tp, MCU_TYPE_PLA, PLA_RSTTALLY, ocp_data); } +static int r8152_led_configuration(struct r8152 *tp) +{ + u32 led_data; + int ret; + + ret = of_property_read_u32(tp->udev->dev.of_node, "realtek,led-data", + &led_data); + + if (ret) + return ret; + + ocp_write_word(tp, MCU_TYPE_PLA, PLA_LEDSEL, led_data); + + return 0; +} + static void r8152b_init(struct r8152 *tp) { u32 ocp_data; @@ -6912,6 +6929,8 @@ static void r8152b_init(struct r8152 *tp) ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL); ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN); ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data); + + r8152_led_configuration(tp); } static void r8153_init(struct r8152 *tp) @@ -7052,6 +7071,8 @@ static void r8153_init(struct r8152 *tp) tp->coalesce = COALESCE_SLOW; break; } + + r8152_led_configuration(tp); } static void r8153b_init(struct r8152 *tp) @@ -7134,6 +7155,8 @@ static void r8153b_init(struct r8152 *tp) rtl_tally_reset(tp); tp->coalesce = 15000; /* 15 us */ + + r8152_led_configuration(tp); } static void r8153c_init(struct r8152 *tp) -- 2.35.3