Add DT support for netxbig LEDs
Subsystems (6)
v6 cover Add DT support for netxbig LEDs
Hello,
This patch series adds DT support for the LEDs found on the Kirkwood-based LaCie boards 2Big and 5Big Network v2.
Changes for v2:
- Check timer mode value retrieved from DT.
- In netxbig_leds_get_of_pdata, don't use unsigned long variables to get timer delay values from DT with function of_property_read_u32_index. Instead, use a temporary u32 variable. This allows to silence a static checker warning.
- Make timer property optional in the binding documentation. It is now aligned with the driver code.
Changes for v3:
- Fix pointer usage with the temporary u32 variable while calling of_property_read_u32_index.
Changes for v4:
- In DT binding document netxbig-gpio-ext.txt, detail byte order for registers and latch mechanism for "enable-gpio".
- In leds-netxbig.c, add some error messages.
- In leds-netxbig.c, fix some "sizeof" style issues.
- In leds-netxbig.c, in netxbig_leds_get_of_pdata(), move the of_property_read_string() calls after the error-prone checks.
- Add some Acked-by.
Changes for v5:
- Rename DT property "bright-max" into the more common "max-brightness".
- Make use of the "max-brightness" DT property. Instead of counting the data pins of the GPIO extension bus, use "max-brightness" to get the maximum brightness level.
- Add a patch to convert the leds-netxbig driver to the devm_ functions.
Changes for v6:
- Add a patch to set led_classdev max_brightness in the leds-netxbig driver.
- Decrement the current child node refcount with of_node_put() when an error happens while iterating with for_each_child_of_node().
Thanks,
Simon
Simon Guinot (5):
leds: netxbig: add device tree binding
ARM: Kirkwood: add LED DT entries for netxbig boards
ARM: mvebu: remove static LED setup for netxbig boards
leds: netxbig: convert to use the devm_ functions
leds: netxbig: set led_classdev max_brightness
.../devicetree/bindings/gpio/netxbig-gpio-ext.txt | 22 ++ .../devicetree/bindings/leds/leds-netxbig.txt | 92 ++++++ arch/arm/boot/dts/kirkwood-net5big.dts | 60 ++++ arch/arm/boot/dts/kirkwood-netxbig.dtsi | 80 +++++ arch/arm/mach-mvebu/Kconfig | 7 - arch/arm/mach-mvebu/Makefile | 1 - arch/arm/mach-mvebu/board.h | 21 -- arch/arm/mach-mvebu/kirkwood.c | 4 - arch/arm/mach-mvebu/netxbig.c | 191 ------------ drivers/leds/leds-netxbig.c | 336 ++++++++++++++++----- include/dt-bindings/leds/leds-netxbig.h | 18 ++ .../linux/platform_data/leds-kirkwood-netxbig.h | 1 + 12 files changed, 531 insertions(+), 302 deletions(-) create mode 100644 Documentation/devicetree/bindings/gpio/netxbig-gpio-ext.txt create mode 100644 Documentation/devicetree/bindings/leds/leds-netxbig.txt delete mode 100644 arch/arm/mach-mvebu/board.h delete mode 100644 arch/arm/mach-mvebu/netxbig.c create mode 100644 include/dt-bindings/leds/leds-netxbig.h
Signature · 1 line
2.1.4
PATCH v6 1/5 leds: netxbig: add device tree binding
This patch adds device tree support for the netxbig LEDs.
This also introduces a additionnal DT binding for the GPIO extension bus (netxbig-gpio-ext) used to configure the LEDs. Since this bus could also be used to control other devices, then it seems more suitable to have it in a separate DT binding.
--- .../devicetree/bindings/gpio/netxbig-gpio-ext.txt | 22 ++ .../devicetree/bindings/leds/leds-netxbig.txt | 92 +++++++ drivers/leds/leds-netxbig.c | 280 +++++++++++++++++++-- include/dt-bindings/leds/leds-netxbig.h | 18 ++ .../linux/platform_data/leds-kirkwood-netxbig.h | 1 + 5 files changed, 391 insertions(+), 22 deletions(-) create mode 100644 Documentation/devicetree/bindings/gpio/netxbig-gpio-ext.txt create mode 100644 Documentation/devicetree/bindings/leds/leds-netxbig.txt create mode 100644 include/dt-bindings/leds/leds-netxbig.h
Changes for v2:
- Check timer mode value retrieved from DT.
- In netxbig_leds_get_of_pdata, don't use unsigned long variables to get timer delay values from DT with function of_property_read_u32_index. Instead, use a temporary u32 variable. This allows to silence a static checker warning.
- Make timer property optional in the binding documentation. It is now aligned with the driver code.
Changes for v3:
- Fix pointer usage with the temporary u32 variable while calling of_property_read_u32_index.
Changes for v4:
- In DT binding document netxbig-gpio-ext.txt, detail byte order for registers and latch mechanism for "enable-gpio".
- In leds-netxbig.c, add some error messages.
- In leds-netxbig.c, fix some "sizeof" style issues.
- In leds-netxbig.c, in netxbig_leds_get_of_pdata(), move the of_property_read_string() calls after the error-prone checks.
- Add some Acked-by.
Changes for v5:
- Rename DT property "bright-max" into the more common "max-brightness".
- Make use of the "max-brightness" DT property. Instead of counting the data pins of the GPIO extension bus, use "max-brightness" to get the maximum brightness level.
Changes for v6:
- Decrement the current child node refcount with of_node_put() when an error happens while iterating with for_each_child_of_node().
Documentation/devicetree/bindings/gpio/netxbig-gpio-ext.txt new file +22 -0
@@ -0,0 +1,22 @@ +Binding for the GPIO extension bus found on some LaCie/Seagate boards +(Example: 2Big/5Big Network v2, 2Big NAS). + +Required properties: +- compatible: "lacie,netxbig-gpio-ext". +- addr-gpios: GPIOs representing the address register (LSB -> MSB). +- data-gpios: GPIOs representing the data register (LSB -> MSB). +- enable-gpio: latches the new configuration (address, data) on raising edge. + +Example: + +netxbig_gpio_ext: netxbig-gpio-ext { + compatible = "lacie,netxbig-gpio-ext"; + + addr-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH + &gpio1 16 GPIO_ACTIVE_HIGH + &gpio1 17 GPIO_ACTIVE_HIGH>; + data-gpios = <&gpio1 12 GPIO_ACTIVE_HIGH + &gpio1 13 GPIO_ACTIVE_HIGH + &gpio1 14 GPIO_ACTIVE_HIGH>; + enable-gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>; +};
Documentation/devicetree/bindings/leds/leds-netxbig.txt new file +92 -0
92 lines not on this page · raw message
drivers/leds/leds-netxbig.c +258 -22
348 lines not on this page · raw message
include/dt-bindings/leds/leds-netxbig.h new file +18 -0
@@ -0,0 +1,18 @@ +/* +* This header provides constants for netxbig LED bindings. +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef _DT_BINDINGS_LEDS_NETXBIG_H +#define _DT_BINDINGS_LEDS_NETXBIG_H + +#define NETXBIG_LED_OFF 0 +#define NETXBIG_LED_ON 1 +#define NETXBIG_LED_SATA 2 +#define NETXBIG_LED_TIMER1 3 +#define NETXBIG_LED_TIMER2 4 + +#endif /* _DT_BINDINGS_LEDS_NETXBIG_H */
include/linux/platform_data/leds-kirkwood-netxbig.h +1 -0
@@ -40,6 +40,7 @@ struct netxbig_led {int mode_addr;int *mode_val;int bright_addr; +int bright_max; };struct netxbig_led_platform_data {
Signature · 1 line
2.1.4
PATCH v6 2/5 ARM: Kirkwood: add LED DT entries for netxbig boards
In reply to Simon GuinotThis patch adds DT entries for the LEDs found on the Kirkwood-based LaCie boards 2Big and 5Big Network v2.
--- arch/arm/boot/dts/kirkwood-net5big.dts | 60 +++++++++++++++++++++++++ arch/arm/boot/dts/kirkwood-netxbig.dtsi | 80 +++++++++++++++++++++++++++++++++ 2 files changed, 140 insertions(+)
Changes for v4:
- Add some Acked-by.
Changes for v5:
- Rename DT property "bright-max" into the more common "max-brightness".
arch/arm/boot/dts/kirkwood-net5big.dts +60 -0
@@ -86,6 +86,66 @@ clock-frequency = <32768>; }; }; + + netxbig-leds { + blue-sata2 { + label = "netxbig:blue:sata2"; + mode-addr = <5>; + mode-val = <NETXBIG_LED_OFF 0 + NETXBIG_LED_ON 7 + NETXBIG_LED_SATA 1 + NETXBIG_LED_TIMER1 3>; + bright-addr = <2>; + max-brightness = <7>; + }; + red-sata2 { + label = "netxbig:red:sata2"; + mode-addr = <5>; + mode-val = <NETXBIG_LED_OFF 0 + NETXBIG_LED_ON 2 + NETXBIG_LED_TIMER1 4>; + bright-addr = <2>; + max-brightness = <7>; + }; + blue-sata3 { + label = "netxbig:blue:sata3"; + mode-addr = <6>; + mode-val = <NETXBIG_LED_OFF 0 + NETXBIG_LED_ON 7 + NETXBIG_LED_SATA 1 + NETXBIG_LED_TIMER1 3>; + bright-addr = <2>; + max-brightness = <7>; + }; + red-sata3 { + label = "netxbig:red:sata3"; + mode-addr = <6>; + mode-val = <NETXBIG_LED_OFF 0 + NETXBIG_LED_ON 2 + NETXBIG_LED_TIMER1 4>; + bright-addr = <2>; + max-brightness = <7>; + }; + blue-sata4 { + label = "netxbig:blue:sata4"; + mode-addr = <7>; + mode-val = <NETXBIG_LED_OFF 0 + NETXBIG_LED_ON 7 + NETXBIG_LED_SATA 1 + NETXBIG_LED_TIMER1 3>; + bright-addr = <2>; + max-brightness = <7>; + }; + red-sata4 { + label = "netxbig:red:sata4"; + mode-addr = <7>; + mode-val = <NETXBIG_LED_OFF 0 + NETXBIG_LED_ON 2 + NETXBIG_LED_TIMER1 4>; + bright-addr = <2>; + max-brightness = <7>; + }; + }; }; &mdio {
arch/arm/boot/dts/kirkwood-netxbig.dtsi +80 -0
92 lines not on this page · raw message
Signature · 1 line
2.1.4
PATCH v6 3/5 ARM: mvebu: remove static LED setup for netxbig boards
In reply to Simon GuinotSince DT support is now available for the LEDs found on the LaCie netxbig boards (Kirkwood-based), then the old-fashion netxbig board setup file is no longer needed. This patch removes this file.
--- arch/arm/mach-mvebu/Kconfig | 7 -- arch/arm/mach-mvebu/Makefile | 1 - arch/arm/mach-mvebu/board.h | 21 ----- arch/arm/mach-mvebu/kirkwood.c | 4 - arch/arm/mach-mvebu/netxbig.c | 191 ----------------------------------------- 5 files changed, 224 deletions(-) delete mode 100644 arch/arm/mach-mvebu/board.h delete mode 100644 arch/arm/mach-mvebu/netxbig.c
Changes for v4:
- Add some Acked-by.
arch/arm/mach-mvebu/Kconfig +0 -7
@@ -117,11 +117,4 @@ config MACH_KIRKWOOD Say 'Y' here if you want your kernel to support boards based on the Marvell Kirkwood device tree. -config MACH_NETXBIG - bool "LaCie 2Big and 5Big Network v2" - depends on MACH_KIRKWOOD - help - Say 'Y' here if you want your kernel to support the - LaCie 2Big and 5Big Network v2 - endif
arch/arm/mach-mvebu/Makefile +0 -1
@@ -13,4 +13,3 @@ endif obj-$(CONFIG_MACH_DOVE) += dove.o obj-$(CONFIG_MACH_KIRKWOOD) += kirkwood.o kirkwood-pm.o -obj-$(CONFIG_MACH_NETXBIG) += netxbig.o
arch/arm/mach-mvebu/board.h deleted +0 -21
@@ -1,21 +0,0 @@ -/* -* Board functions for Marvell System On Chip -* -* Copyright (C) 2014 -* -* Andrew Lunn <[email protected]> -* -* This file is licensed under the terms of the GNU General Public -* License version 2. This program is licensed "as is" without any -* warranty of any kind, whether express or implied. -*/ - -#ifndef __ARCH_MVEBU_BOARD_H -#define __ARCH_MVEBU_BOARD_H - -#ifdef CONFIG_MACH_NETXBIG -void netxbig_init (void ); -#else -static inline void netxbig_init (void ) {}; -#endif -#endif
arch/arm/mach-mvebu/kirkwood.c +0 -4
@@ -25,7 +25,6 @@#include "kirkwood.h" #include "kirkwood-pm.h" #include "common.h" -#include "board.h" static struct resource kirkwood_cpufreq_resources[] = { [0 ] = {
@@ -180,9 +179,6 @@ static void __init kirkwood_dt_init(void)kirkwood_pm_init ();kirkwood_dt_eth_fixup (); -if (of_machine_is_compatible ("lacie,netxbig" )) -netxbig_init (); -of_platform_populate (NULL , of_default_bus_match_table, auxdata,NULL ); }
arch/arm/mach-mvebu/netxbig.c deleted +0 -191
191 lines not on this page · raw message
Signature · 1 line
2.1.4
PATCH v6 4/5 leds: netxbig: convert to use the devm_ functions
In reply to Simon GuinotThis patch converts the leds-netxbig driver to use the devres functions devm_gpio_request_one() and devm_led_classdev_register(). This allows to simplify the code a bit.
--- drivers/leds/leds-netxbig.c | 108 ++++++++++++-------------------------------- 1 file changed, 28 insertions(+), 80 deletions(-)
drivers/leds/leds-netxbig.c +28 -80
@@ -71,7 +71,8 @@ static void gpio_ext_set_value(struct netxbig_gpio_ext *gpio_ext,spin_unlock_irqrestore (&gpio_ext_lock, flags); } -static int gpio_ext_init (struct netxbig_gpio_ext *gpio_ext) +static int gpio_ext_init (struct platform_device *pdev, +struct netxbig_gpio_ext *gpio_ext) {int err;int i;
@@ -81,46 +82,28 @@ static int gpio_ext_init(struct netxbig_gpio_ext *gpio_ext)/* Configure address GPIOs. */ for (i =0 ; i < gpio_ext->num_addr; i++) { - err =gpio_request_one (gpio_ext->addr[i],GPIOF_OUT_INIT_LOW , -"GPIO extension addr" ); + err =devm_gpio_request_one (&pdev->dev, gpio_ext->addr[i], +GPIOF_OUT_INIT_LOW , +"GPIO extension addr" );if (err) - goto err_free_addr; +return err; }/* Configure data GPIOs. */ for (i =0 ; i < gpio_ext->num_data; i++) { - err =gpio_request_one (gpio_ext->data[i],GPIOF_OUT_INIT_LOW , -"GPIO extension data" ); + err =devm_gpio_request_one (&pdev->dev, gpio_ext->data[i], +GPIOF_OUT_INIT_LOW , +"GPIO extension data" );if (err) - goto err_free_data; +return err; }/* Configure "enable select" GPIO. */ - err =gpio_request_one (gpio_ext->enable,GPIOF_OUT_INIT_LOW , -"GPIO extension enable" ); + err =devm_gpio_request_one (&pdev->dev, gpio_ext->enable, +GPIOF_OUT_INIT_LOW , +"GPIO extension enable" );if (err) - goto err_free_data; +return err;return 0 ; - -err_free_data: -for (i = i -1 ; i >=0 ; i--) -gpio_free (gpio_ext->data[i]); - i = gpio_ext->num_addr; -err_free_addr: -for (i = i -1 ; i >=0 ; i--) -gpio_free (gpio_ext->addr[i]); - -return err; -} - -static void gpio_ext_free (struct netxbig_gpio_ext *gpio_ext) -{ -int i; - -gpio_free (gpio_ext->enable); -for (i = gpio_ext->num_addr -1 ; i >=0 ; i--) -gpio_free (gpio_ext->addr[i]); -for (i = gpio_ext->num_data -1 ; i >=0 ; i--) -gpio_free (gpio_ext->data[i]); }/*
@@ -141,11 +124,6 @@ struct netxbig_led_data {spinlock_t lock; }; -struct netxbig_led_priv { -struct netxbig_led_platform_data *pdata; -struct netxbig_led_data leds_data[]; -}; - static int netxbig_led_get_timer_mode(enum netxbig_led_mode *mode, unsigned long delay_on, unsigned long delay_off,
@@ -305,18 +283,11 @@ static struct attribute *netxbig_led_attrs[] = { };ATTRIBUTE_GROUPS (netxbig_led); -static void delete_netxbig_led (struct netxbig_led_data *led_dat) -{ -led_classdev_unregister (&led_dat->cdev); -} - -static int create_netxbig_led (struct platform_device *pdev,int led, -struct netxbig_led_priv *priv) +static int create_netxbig_led (struct platform_device *pdev, +struct netxbig_led_platform_data *pdata, +struct netxbig_led_data *led_dat, +const struct netxbig_led *template) { -struct netxbig_led_platform_data *pdata = priv->pdata; -struct netxbig_led_data *led_dat = &priv->leds_data[led]; -const struct netxbig_led *template = &priv->pdata->leds[led]; -spin_lock_init (&led_dat->lock); led_dat->gpio_ext = pdata->gpio_ext; led_dat->cdev.name = template->name;
@@ -349,7 +320,7 @@ static int create_netxbig_led(struct platform_device *pdev, int led,if (led_dat->mode_val[NETXBIG_LED_SATA ] !=NETXBIG_LED_INVALID_MODE ) led_dat->cdev.groups = netxbig_led_groups; -return led_classdev_register (&pdev->dev, &led_dat->cdev); +return devm_led_classdev_register (&pdev->dev, &led_dat->cdev); }#ifdef CONFIG_OF_GPIO
@@ -579,7 +550,7 @@ netxbig_leds_get_of_pdata(struct device *dev,static int netxbig_led_probe (struct platform_device *pdev) {struct netxbig_led_platform_data *pdata =dev_get_platdata (&pdev->dev); -struct netxbig_led_priv *priv; +struct netxbig_led_data *leds_data;int i;int ret;
@@ -592,51 +563,28 @@ static int netxbig_led_probe(struct platform_device *pdev)return ret; } - priv =devm_kzalloc (&pdev->dev,sizeof (*priv) + - pdata->num_leds *sizeof (struct netxbig_led_data ), -GFP_KERNEL ); -if (!priv) + leds_data =devm_kzalloc (&pdev->dev, + pdata->num_leds *sizeof (*leds_data), +GFP_KERNEL ); +if (!leds_data)return -ENOMEM ; - priv->pdata = pdata; - ret =gpio_ext_init (pdata->gpio_ext); + ret =gpio_ext_init (pdev, pdata->gpio_ext);if (ret <0 )return ret;for (i =0 ; i < pdata->num_leds; i++) { - ret =create_netxbig_led (pdev, i, priv); + ret =create_netxbig_led (pdev, pdata, + &leds_data[i], &pdata->leds[i]);if (ret <0 ) - goto err_free_leds; +return ret; } -platform_set_drvdata (pdev, priv); - -return 0 ; - -err_free_leds: -for (i = i -1 ; i >=0 ; i--) -delete_netxbig_led (&priv->leds_data[i]); - -gpio_ext_free (pdata->gpio_ext); -return ret; -} - -static int netxbig_led_remove (struct platform_device *pdev) -{ -struct netxbig_led_priv *priv =platform_get_drvdata (pdev); -struct netxbig_led_platform_data *pdata = priv->pdata; -int i; - -for (i =0 ; i < pdata->num_leds; i++) -delete_netxbig_led (&priv->leds_data[i]); - -gpio_ext_free (pdata->gpio_ext);return 0 ; }static struct platform_driver netxbig_led_driver = { .probe = netxbig_led_probe, - .remove = netxbig_led_remove, .driver = { .name ="leds-netxbig" , .of_match_table =of_match_ptr (of_netxbig_leds_match),
Signature · 1 line
2.1.4
PATCH v6 5/5 leds: netxbig: set led_classdev max_brightness
In reply to Simon GuinotThis patch sets the led_classdev max_brightness to the maximum level value supported by hardware. This allows to get rid of the brightness conversion operation (from software [0:LED_FULL] to hardware ranges) in brightness_set().
--- drivers/leds/leds-netxbig.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)
drivers/leds/leds-netxbig.c +4 -8
@@ -116,7 +116,6 @@ struct netxbig_led_data {int mode_addr;int *mode_val;int bright_addr; -int bright_max;struct netxbig_led_timer *timer;int num_timer;enum netxbig_led_mode mode;
@@ -178,7 +177,7 @@ static void netxbig_led_set(struct led_classdev *led_cdev,struct netxbig_led_data *led_dat = container_of(led_cdev, struct netxbig_led_data, cdev);enum netxbig_led_mode mode; -int mode_val, bright_val; +int mode_val;int set_brightness =1 ;unsigned long flags;
@@ -204,12 +203,9 @@ static void netxbig_led_set(struct led_classdev *led_cdev,* SATA LEDs. So, change the brightness setting for a single * SATA LED will affect all the others. */ -if (set_brightness) { - bright_val =DIV_ROUND_UP (value * led_dat->bright_max, -LED_FULL ); +if (set_brightness)gpio_ext_set_value (led_dat->gpio_ext, - led_dat->bright_addr, bright_val); - } + led_dat->bright_addr, value);spin_unlock_irqrestore (&led_dat->lock, flags); }
@@ -306,11 +302,11 @@ static int create_netxbig_led(struct platform_device *pdev,*/ led_dat->sata =0 ; led_dat->cdev.brightness =LED_OFF ; + led_dat->cdev.max_brightness = template->bright_max; led_dat->cdev.flags |=LED_CORE_SUSPENDRESUME ; led_dat->mode_addr = template->mode_addr; led_dat->mode_val = template->mode_val; led_dat->bright_addr = template->bright_addr; - led_dat->bright_max = template->bright_max; led_dat->timer = pdata->timer; led_dat->num_timer = pdata->num_timer;/*
Signature · 1 line
2.1.4
PATCH v6 5/5 leds: netxbig: set led_classdev max_brightness
Hi Simon,
Does your device support reading the brightness currently set? If so, it would be good to implement brightness_get op, because AFAIR you mentioned that the firmware you are working with sets always maximum brightness value. Having the op implemented would allow to find this out.
Quoted 60 lines · Simon Guinot
This patch sets the
led_classdevmax_brightnessto the maximum level value supported by hardware. This allows to get rid of the brightness conversion operation (from software [0:LED_FULL] to hardware ranges) inbrightness_set().Signed-off-by Simon Guinot <[email protected]>--- drivers/leds/leds-netxbig.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)drivers/leds/leds-netxbig.c +4
-8@@ -116,7 +116,6 @@ struct netxbig_led_data {int mode_addr;int *mode_val;int bright_addr; -int bright_max;struct netxbig_led_timer *timer;int num_timer;enum netxbig_led_mode mode;@@ -178,7 +177,7 @@ static void netxbig_led_set(struct led_classdev *led_cdev,struct netxbig_led_data *led_dat = container_of(led_cdev, struct netxbig_led_data, cdev);enum netxbig_led_mode mode; -int mode_val, bright_val; +int mode_val;int set_brightness =1 ;unsigned long flags;@@ -204,12 +203,9 @@ static void netxbig_led_set(struct led_classdev *led_cdev,* SATA LEDs. So, change the brightness setting for a single * SATA LED will affect all the others. */ -if (set_brightness) { - bright_val =DIV_ROUND_UP (value * led_dat->bright_max, -LED_FULL ); +if (set_brightness)gpio_ext_set_value (led_dat->gpio_ext, - led_dat->bright_addr, bright_val); - } + led_dat->bright_addr, value);spin_unlock_irqrestore (&led_dat->lock, flags); }@@ -306,11 +302,11 @@ static int create_netxbig_led(struct platform_device *pdev,*/ led_dat->sata =0 ; led_dat->cdev.brightness =LED_OFF ; + led_dat->cdev.max_brightness = template->bright_max; led_dat->cdev.flags |=LED_CORE_SUSPENDRESUME ; led_dat->mode_addr = template->mode_addr; led_dat->mode_val = template->mode_val; led_dat->bright_addr = template->bright_addr; - led_dat->bright_max = template->bright_max; led_dat->timer = pdata->timer; led_dat->num_timer = pdata->num_timer;/*
Signature · 2 lines
Best Regards, Jacek Anaszewski
PATCH v6 5/5 leds: netxbig: set led_classdev max_brightness
Quoted 1 line · Jacek Anaszewski
Hi Simon,
Hi Jacek,
Quoted 2 lines
Does your device support reading the brightness currently set?
No it don't.
Quoted 4 lines
If so, it would be good to implement
brightness_getop, because AFAIR you mentioned that the firmware you are working with sets always maximum brightness value. Having the op implemented would allow to find this out.
I don't understand how this can help. I mean, the only issue is that at startup the initial LED state is unknown. And the software brightness value could be false. But once the LED is configured, the brightness values for software and hardware are synchronized. The brightness value is stored/cached in led_classdev and it can be retrieved by the user via sysfs...
For my own knowledge, is there some interest in having brightness_get(), aside of guessing the LED initial state ?
What does the embedded firmware is writing 255 or 0 into the brightness sysfs attribute. The max_brightness value is ignored. After this patch, writing 255 and 0 still allows to configure the LED in the same way:
maximum brightness or off. Thus, I believe there is no compatibility issue.
But of course, I will update the firmware as well :)
Thanks,
Simon
Quoted 71 lines · Simon Guinot
Quoted 60 lines
This patch sets the
led_classdevmax_brightnessto the maximum level value supported by hardware. This allows to get rid of the brightness conversion operation (from software [0:LED_FULL] to hardware ranges) inbrightness_set().Signed-off-by Simon Guinot <[email protected]>--- drivers/leds/leds-netxbig.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)drivers/leds/leds-netxbig.c +4
-8@@ -116,7 +116,6 @@ struct netxbig_led_data {int mode_addr;int *mode_val;int bright_addr; -int bright_max;struct netxbig_led_timer *timer;int num_timer;enum netxbig_led_mode mode;@@ -178,7 +177,7 @@ static void netxbig_led_set(struct led_classdev *led_cdev,struct netxbig_led_data *led_dat = container_of(led_cdev, struct netxbig_led_data, cdev);enum netxbig_led_mode mode; -int mode_val, bright_val; +int mode_val;int set_brightness =1 ;unsigned long flags;@@ -204,12 +203,9 @@ static void netxbig_led_set(struct led_classdev *led_cdev,* SATA LEDs. So, change the brightness setting for a single * SATA LED will affect all the others. */ -if (set_brightness) { - bright_val =DIV_ROUND_UP (value * led_dat->bright_max, -LED_FULL ); +if (set_brightness)gpio_ext_set_value (led_dat->gpio_ext, - led_dat->bright_addr, bright_val); - } + led_dat->bright_addr, value);spin_unlock_irqrestore (&led_dat->lock, flags); }@@ -306,11 +302,11 @@ static int create_netxbig_led(struct platform_device *pdev,*/ led_dat->sata =0 ; led_dat->cdev.brightness =LED_OFF ; + led_dat->cdev.max_brightness = template->bright_max; led_dat->cdev.flags |=LED_CORE_SUSPENDRESUME ; led_dat->mode_addr = template->mode_addr; led_dat->mode_val = template->mode_val; led_dat->bright_addr = template->bright_addr; - led_dat->bright_max = template->bright_max; led_dat->timer = pdata->timer; led_dat->num_timer = pdata->num_timer;/* Signature · 6 lines
Best Regards, Jacek Anaszewski -- To unsubscribe from this list: send the line "unsubscribe linux-leds" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH v6 5/5 leds: netxbig: set led_classdev max_brightness
Quoted 22 lines · Simon Guinot
Quoted 1 line · Jacek Anaszewski
Hi Simon,
Hi Jacek,
Quoted 2 lines
Does your device support reading the brightness currently set?
No it don't.
Quoted 4 lines
If so, it would be good to implement
brightness_getop, because AFAIR you mentioned that the firmware you are working with sets always maximum brightness value. Having the op implemented would allow to find this out.I don't understand how this can help. I mean, the only issue is that at startup the initial LED state is unknown. And the software brightness value could be false. But once the LED is configured, the brightness values for software and hardware are synchronized. The brightness value is stored/cached in
led_classdevand it can be retrieved by the user via sysfs...
Quoted 2 lines
For my own knowledge, is there some interest in having
brightness_get(), aside of guessing the LED initial state ?
Some LED controllers can adjust brightness in case battery voltage level falls below some threshold.
Quoted 5 lines
What does the embedded firmware is writing 255 or 0 into the brightness sysfs attribute. The
max_brightnessvalue is ignored. After this patch, writing 255 and 0 still allows to configure the LED in the same way:
maximum brightness or off. Thus, I believe there is no compatibility issue.
LED core always assures that brightness value passed to brightness_set op does not exceed max_brightness value. So, now after executing "echo 255 > brightness", LED core will adjust it to max_brightness (e.g. 7) before passing to brightness_set.
In the message [1], you mentioned that "LEDs are only enabled at their maximum level", so IIUC following is possible:
#echo 3 > "brightness"
firmware sets brightness to max_brightness from DT (e.g. 7), but
#cat brightness
#3
Is it true?
Quoted 1 line
But of course, I will update the firmware as well :)
[1] http://www.spinics.net/lists/devicetree/msg94358.html
Signature · 2 lines
Best Regards, Jacek Anaszewski
PATCH v6 5/5 leds: netxbig: set led_classdev max_brightness
Quoted 23 lines · Jacek Anaszewski
Quoted 22 lines · Simon Guinot
Quoted 1 line · Jacek Anaszewski
Hi Simon,
Hi Jacek,
Quoted 2 lines
Does your device support reading the brightness currently set?
No it don't.
Quoted 4 lines
If so, it would be good to implement
brightness_getop, because AFAIR you mentioned that the firmware you are working with sets always maximum brightness value. Having the op implemented would allow to find this out.I don't understand how this can help. I mean, the only issue is that at startup the initial LED state is unknown. And the software brightness value could be false. But once the LED is configured, the brightness values for software and hardware are synchronized. The brightness value is stored/cached in
led_classdevand it can be retrieved by the user via sysfs...
Quoted 5 lines
Quoted 2 lines
For my own knowledge, is there some interest in having
brightness_get(), aside of guessing the LED initial state ?Some LED controllers can adjust brightness in case battery voltage level falls below some threshold.
OK, thanks for the explanation.
Quoted 15 lines
Quoted 6 lines
What does the embedded firmware is writing 255 or 0 into the brightness sysfs attribute. The
max_brightnessvalue is ignored. After this patch, writing 255 and 0 still allows to configure the LED in the same way:
maximum brightness or off. Thus, I believe there is no compatibility issue.LED core always assures that brightness value passed to
brightness_setop does not exceedmax_brightnessvalue. So, now after executing "echo 255 > brightness", LED core will adjust it tomax_brightness(e.g. 7) before passing tobrightness_set.In the message [1], you mentioned that "LEDs are only enabled at their maximum level", so IIUC following is possible:
Quoted 8 lines
#echo 3 > "brightness"
firmware sets brightness to
max_brightnessfrom DT (e.g. 7), but#cat brightness
#3Is it true?
Oh no sorry, it is a misunderstanding. By "LEDs are only enabled at their maximum level", I was meaning "LEDs are only enabled at their maximum level by the LaCie stock firmware". The firmware don't make use of the different hardware brightness levels available. But the feature works perfectly. If you write 3 into sysfs "brightness", then you get the third brightness level.
OK, I understand you remark now. Sorry for not being very clear in a first place.
Simon
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20150928/fb5c942d/attachment.sig>
PATCH v6 5/5 leds: netxbig: set led_classdev max_brightness
Quoted 54 lines · Simon Guinot
Quoted 23 lines · Jacek Anaszewski
Quoted 22 lines · Simon Guinot
Quoted 1 line · Jacek Anaszewski
Hi Simon,
Hi Jacek,
Quoted 2 lines
Does your device support reading the brightness currently set?
No it don't.
Quoted 4 lines
If so, it would be good to implement
brightness_getop, because AFAIR you mentioned that the firmware you are working with sets always maximum brightness value. Having the op implemented would allow to find this out.I don't understand how this can help. I mean, the only issue is that at startup the initial LED state is unknown. And the software brightness value could be false. But once the LED is configured, the brightness values for software and hardware are synchronized. The brightness value is stored/cached in
led_classdevand it can be retrieved by the user via sysfs...Quoted 5 lines
Quoted 2 lines
For my own knowledge, is there some interest in having
brightness_get(), aside of guessing the LED initial state ?Some LED controllers can adjust brightness in case battery voltage level falls below some threshold.
OK, thanks for the explanation.
Quoted 22 lines
Quoted 6 lines
What does the embedded firmware is writing 255 or 0 into the brightness sysfs attribute. The
max_brightnessvalue is ignored. After this patch, writing 255 and 0 still allows to configure the LED in the same way:
maximum brightness or off. Thus, I believe there is no compatibility issue.LED core always assures that brightness value passed to
brightness_setop does not exceedmax_brightnessvalue. So, now after executing "echo 255 > brightness", LED core will adjust it tomax_brightness(e.g. 7) before passing tobrightness_set.In the message [1], you mentioned that "LEDs are only enabled at their maximum level", so IIUC following is possible:
#echo 3 > "brightness"
firmware sets brightness to
max_brightnessfrom DT (e.g. 7), but#cat brightness
#3
Quoted 8 lines
Quoted 1 line
Is it true?
Oh no sorry, it is a misunderstanding. By "LEDs are only enabled at their maximum level", I was meaning "LEDs are only enabled at their maximum level by the LaCie stock firmware". The firmware don't make use of the different hardware brightness levels available. But the feature works perfectly. If you write 3 into sysfs "brightness", then you get the third brightness level.
I thought that driver talks to firmware, which controls the LEDs.
From your explanation I infer that this driver replaces LaCie stock
firmware, am I right? There must be however some circuit that controls LED brightness then.
Quoted 2 lines
OK, I understand you remark now. Sorry for not being very clear in a first place.
Signature · 2 lines
Best Regards, Jacek Anaszewski
PATCH v6 5/5 leds: netxbig: set led_classdev max_brightness
Quoted 64 lines · Jacek Anaszewski
Quoted 54 lines · Simon Guinot
Quoted 23 lines · Jacek Anaszewski
Quoted 22 lines · Simon Guinot
Quoted 1 line · Jacek Anaszewski
Hi Simon,
Hi Jacek,
Quoted 2 lines
Does your device support reading the brightness currently set?
No it don't.
Quoted 4 lines
If so, it would be good to implement
brightness_getop, because AFAIR you mentioned that the firmware you are working with sets always maximum brightness value. Having the op implemented would allow to find this out.I don't understand how this can help. I mean, the only issue is that at startup the initial LED state is unknown. And the software brightness value could be false. But once the LED is configured, the brightness values for software and hardware are synchronized. The brightness value is stored/cached in
led_classdevand it can be retrieved by the user via sysfs...Quoted 5 lines
Quoted 2 lines
For my own knowledge, is there some interest in having
brightness_get(), aside of guessing the LED initial state ?Some LED controllers can adjust brightness in case battery voltage level falls below some threshold.
OK, thanks for the explanation.
Quoted 22 lines
Quoted 6 lines
What does the embedded firmware is writing 255 or 0 into the brightness sysfs attribute. The
max_brightnessvalue is ignored. After this patch, writing 255 and 0 still allows to configure the LED in the same way:
maximum brightness or off. Thus, I believe there is no compatibility issue.LED core always assures that brightness value passed to
brightness_setop does not exceedmax_brightnessvalue. So, now after executing "echo 255 > brightness", LED core will adjust it tomax_brightness(e.g. 7) before passing tobrightness_set.In the message [1], you mentioned that "LEDs are only enabled at their maximum level", so IIUC following is possible:
#echo 3 > "brightness"
firmware sets brightness to
max_brightnessfrom DT (e.g. 7), but#cat brightness
#3Quoted 8 lines
Quoted 1 line
Is it true?
Oh no sorry, it is a misunderstanding. By "LEDs are only enabled at their maximum level", I was meaning "LEDs are only enabled at their maximum level by the LaCie stock firmware". The firmware don't make use of the different hardware brightness levels available. But the feature works perfectly. If you write 3 into sysfs "brightness", then you get the third brightness level.
Quoted 4 lines
I thought that driver talks to firmware, which controls the LEDs. From your explanation I infer that this driver replaces LaCie stock firmware, am I right? There must be however some circuit that controls LED brightness then.
OK, I think I may have managed to confuse you completely.
The LEDs are controlled by a CPLD. The leds-netxbig driver talks to the CPLD via the gpio-ext "kind of" bus:
leds-netxbig -> gpio-ext bus -> CPLD -> LEDs
"LaCie stock firmware" don't refer to the firmware embedded in the CPLD but to the stock LaCie Linux system running *on* the board.
"LEDs are only enabled at their maximum level by the LaCie stock firmware" means: "In the Linux LaCie system running on the board, userland only configures the LED brightness to 0 or 255".
It don't mean that the CPLD does some weird stuff implying that the feature is somewhat broken. No, the feature works. Simply userland (in the stock LaCie system aka firmware) don't use it.
Remember that your original question was:
"Doesn't specification of your device say what current value given
brightness level reflects?"
Let me rephrase my answer without using "LaCie stock firmware":
No this information is not available in the board specification. It is probably because this feature is not used by the LaCie Linux userland. The LED brightness is configured to off or full. Other levels are not used. That's probably why no one took care of measuring the LED current consumption.
Let me know if it is still unclear for you.
Simon
PATCH v6 5/5 leds: netxbig: set led_classdev max_brightness
Quoted 95 lines · Simon Guinot
Quoted 64 lines · Jacek Anaszewski
Quoted 54 lines · Simon Guinot
Quoted 23 lines · Jacek Anaszewski
Quoted 22 lines · Simon Guinot
Quoted 1 line · Jacek Anaszewski
Hi Simon,
Hi Jacek,
Quoted 2 lines
Does your device support reading the brightness currently set?
No it don't.
Quoted 4 lines
If so, it would be good to implement
brightness_getop, because AFAIR you mentioned that the firmware you are working with sets always maximum brightness value. Having the op implemented would allow to find this out.I don't understand how this can help. I mean, the only issue is that at startup the initial LED state is unknown. And the software brightness value could be false. But once the LED is configured, the brightness values for software and hardware are synchronized. The brightness value is stored/cached in
led_classdevand it can be retrieved by the user via sysfs...Quoted 5 lines
Quoted 2 lines
For my own knowledge, is there some interest in having
brightness_get(), aside of guessing the LED initial state ?Some LED controllers can adjust brightness in case battery voltage level falls below some threshold.
OK, thanks for the explanation.
Quoted 22 lines
Quoted 6 lines
What does the embedded firmware is writing 255 or 0 into the brightness sysfs attribute. The
max_brightnessvalue is ignored. After this patch, writing 255 and 0 still allows to configure the LED in the same way:
maximum brightness or off. Thus, I believe there is no compatibility issue.LED core always assures that brightness value passed to
brightness_setop does not exceedmax_brightnessvalue. So, now after executing "echo 255 > brightness", LED core will adjust it tomax_brightness(e.g. 7) before passing tobrightness_set.In the message [1], you mentioned that "LEDs are only enabled at their maximum level", so IIUC following is possible:
#echo 3 > "brightness"
firmware sets brightness to
max_brightnessfrom DT (e.g. 7), but#cat brightness
#3Quoted 8 lines
Quoted 1 line
Is it true?
Oh no sorry, it is a misunderstanding. By "LEDs are only enabled at their maximum level", I was meaning "LEDs are only enabled at their maximum level by the LaCie stock firmware". The firmware don't make use of the different hardware brightness levels available. But the feature works perfectly. If you write 3 into sysfs "brightness", then you get the third brightness level.
Quoted 4 lines
I thought that driver talks to firmware, which controls the LEDs.
From your explanation I infer that this driver replaces LaCie stock
firmware, am I right? There must be however some circuit that controls LED brightness then.OK, I think I may have managed to confuse you completely.
The LEDs are controlled by a CPLD. The leds-netxbig driver talks to the CPLD via the gpio-ext "kind of" bus:
leds-netxbig -> gpio-ext bus -> CPLD -> LEDs
"LaCie stock firmware" don't refer to the firmware embedded in the CPLD but to the stock LaCie Linux system running *on* the board.
"LEDs are only enabled at their maximum level by the LaCie stock firmware" means: "In the Linux LaCie system running on the board, userland only configures the LED brightness to 0 or 255".
It don't mean that the CPLD does some weird stuff implying that the feature is somewhat broken. No, the feature works. Simply userland (in the stock LaCie system aka firmware) don't use it.
Remember that your original question was:
"Doesn't specification of your device say what current value given
brightness level reflects?"Let me rephrase my answer without using "LaCie stock firmware":
Quoted 7 lines
No this information is not available in the board specification. It is probably because this feature is not used by the LaCie Linux userland. The LED brightness is configured to off or full. Other levels are not used. That's probably why no one took care of measuring the LED current consumption.
Let me know if it is still unclear for you.
Thanks for this explanation. Now everything is clear.
Signature · 2 lines
Best Regards, Jacek Anaszewski
v6 cover Add DT support for netxbig LEDs
In reply to Simon GuinotQuoted 64 lines · Simon Guinot
Hello,
This patch series adds DT support for the LEDs found on the Kirkwood-based LaCie boards 2Big and 5Big Network v2.
Changes for v2:
- Check timer mode value retrieved from DT.
- Innetxbig_leds_get_of_pdata, don't use unsigned long variables to get timer delay values from DT with functionof_property_read_u32_index. Instead, use a temporary u32 variable. This allows to silence a static checker warning.
- Make timer property optional in the binding documentation. It is now aligned with the driver code.Changes for v3:
- Fix pointer usage with the temporary u32 variable while callingof_property_read_u32_index.Changes for v4:
- In DT binding document netxbig-gpio-ext.txt, detail byte order for registers and latch mechanism for "enable-gpio".
- Inleds-netxbig.c, add some error messages.
- Inleds-netxbig.c, fix some "sizeof" style issues.
- Inleds-netxbig.c, innetxbig_leds_get_of_pdata(), move theof_property_read_string()calls after the error-prone checks.
- Add some Acked-by.Changes for v5:
- Rename DT property "bright-max" into the more common "max-brightness".
- Make use of the "max-brightness" DT property. Instead of counting the data pins of the GPIO extension bus, use "max-brightness" to get the maximum brightness level.
- Add a patch to convert the leds-netxbig driver to thedevm_functions.Changes for v6:
- Add a patch to setled_classdevmax_brightnessin the leds-netxbig driver.
- Decrement the current child node refcount withof_node_put()when an error happens while iterating withfor_each_child_of_node().Thanks,
Simon
Simon Guinot (5):
leds: netxbig: add device tree binding
ARM: Kirkwood: add LED DT entries for netxbig boards
ARM: mvebu: remove static LED setup for netxbig boards
leds: netxbig: convert to use thedevm_functions
leds: netxbig: setled_classdevmax_brightness.../devicetree/bindings/gpio/netxbig-gpio-ext.txt | 22 ++ .../devicetree/bindings/leds/leds-netxbig.txt | 92 ++++++ arch/arm/boot/dts/kirkwood-net5big.dts | 60 ++++ arch/arm/boot/dts/kirkwood-netxbig.dtsi | 80 +++++ arch/arm/mach-mvebu/Kconfig | 7 - arch/arm/mach-mvebu/Makefile | 1 - arch/arm/mach-mvebu/board.h | 21 -- arch/arm/mach-mvebu/kirkwood.c | 4 - arch/arm/mach-mvebu/netxbig.c | 191 ------------ drivers/leds/leds-netxbig.c | 336 ++++++++++++++++----- include/dt-bindings/leds/leds-netxbig.h | 18 ++ .../linux/platform_data/leds-kirkwood-netxbig.h | 1 + 12 files changed, 531 insertions(+), 302 deletions(-)
Quoted 6 lines
create mode 100644
Documentation/devicetree/bindings/gpio/netxbig-gpio-ext.txtcreate mode 100644Documentation/devicetree/bindings/leds/leds-netxbig.txtdelete mode 100644arch/arm/mach-mvebu/board.h
delete mode 100644arch/arm/mach-mvebu/netxbig.c
create mode 100644include/dt-bindings/leds/leds-netxbig.h
Since no comment regarding DT bindings has appeared for a long time, I decided to merge the patch set without DT maintainer's ack, thanks.
Signature · 2 lines
Best Regards, Jacek Anaszewski
v6 cover Add DT support for netxbig LEDs
Hi Jacek,
Quoted 2 lines · Jacek Anaszewski
Quoted 1 line · Simon Guinot
Hello,
[..]
Quoted 28 lines
Quoted 21 lines
Simon Guinot (5):
leds: netxbig: add device tree binding
ARM: Kirkwood: add LED DT entries for netxbig boards
ARM: mvebu: remove static LED setup for netxbig boards
leds: netxbig: convert to use thedevm_functions
leds: netxbig: setled_classdevmax_brightness.../devicetree/bindings/gpio/netxbig-gpio-ext.txt | 22 ++ .../devicetree/bindings/leds/leds-netxbig.txt | 92 ++++++ arch/arm/boot/dts/kirkwood-net5big.dts | 60 ++++ arch/arm/boot/dts/kirkwood-netxbig.dtsi | 80 +++++ arch/arm/mach-mvebu/Kconfig | 7 - arch/arm/mach-mvebu/Makefile | 1 - arch/arm/mach-mvebu/board.h | 21 -- arch/arm/mach-mvebu/kirkwood.c | 4 - arch/arm/mach-mvebu/netxbig.c | 191 ------------ drivers/leds/leds-netxbig.c | 336 ++++++++++++++++----- include/dt-bindings/leds/leds-netxbig.h | 18 ++ .../linux/platform_data/leds-kirkwood-netxbig.h | 1 + 12 files changed, 531 insertions(+), 302 deletions(-)Quoted 6 lines
create mode 100644
Documentation/devicetree/bindings/gpio/netxbig-gpio-ext.txtcreate mode 100644Documentation/devicetree/bindings/leds/leds-netxbig.txtdelete mode 100644arch/arm/mach-mvebu/board.h
delete mode 100644arch/arm/mach-mvebu/netxbig.c
create mode 100644include/dt-bindings/leds/leds-netxbig.h
Quoted 2 lines
Since no comment regarding DT bindings has appeared for a long time, I decided to merge the patch set without DT maintainer's ack, thanks.
it is a good news that this series will be finally merged. However did you also take the patches "ARM: Kirkwood: add LED DT entries for netxbig boards" and "ARM: mvebu: remove static LED setup for netxbig boards" ?
Thanks,
Gregory
Quoted 4 lines
Signature · 3 lines
-- Best Regards, Jacek Anaszewski
Signature · 4 lines
Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
v6 cover Add DT support for netxbig LEDs
Hi Gregory,
Quoted 36 lines · Gregory CLEMENT
Hi Jacek,
Quoted 2 lines · Jacek Anaszewski
Quoted 1 line · Simon Guinot
Hello,
[..]
Quoted 28 lines
Quoted 27 lines
Simon Guinot (5):
leds: netxbig: add device tree binding
ARM: Kirkwood: add LED DT entries for netxbig boards
ARM: mvebu: remove static LED setup for netxbig boards
leds: netxbig: convert to use thedevm_functions
leds: netxbig: setled_classdevmax_brightness.../devicetree/bindings/gpio/netxbig-gpio-ext.txt | 22 ++ .../devicetree/bindings/leds/leds-netxbig.txt | 92 ++++++ arch/arm/boot/dts/kirkwood-net5big.dts | 60 ++++ arch/arm/boot/dts/kirkwood-netxbig.dtsi | 80 +++++ arch/arm/mach-mvebu/Kconfig | 7 - arch/arm/mach-mvebu/Makefile | 1 - arch/arm/mach-mvebu/board.h | 21 -- arch/arm/mach-mvebu/kirkwood.c | 4 - arch/arm/mach-mvebu/netxbig.c | 191 ------------ drivers/leds/leds-netxbig.c | 336 ++++++++++++++++----- include/dt-bindings/leds/leds-netxbig.h | 18 ++ .../linux/platform_data/leds-kirkwood-netxbig.h | 1 + 12 files changed, 531 insertions(+), 302 deletions(-)create mode 100644
Documentation/devicetree/bindings/gpio/netxbig-gpio-ext.txtcreate mode 100644Documentation/devicetree/bindings/leds/leds-netxbig.txtdelete mode 100644arch/arm/mach-mvebu/board.h
delete mode 100644arch/arm/mach-mvebu/netxbig.c
create mode 100644include/dt-bindings/leds/leds-netxbig.h
Quoted 6 lines
Quoted 2 lines
Since no comment regarding DT bindings has appeared for a long time, I decided to merge the patch set without DT maintainer's ack, thanks.
it is a good news that this series will be finally merged. However did you also take the patches "ARM: Kirkwood: add LED DT entries for netxbig boards" and "ARM: mvebu: remove static LED setup for netxbig boards" ?
Yes, I did:
https://git.kernel.org/cgit/linux/kernel/git/j.anaszewski/linux-leds.git/log/?h=for-next
They should appear in the next issue of linux-next.
Signature · 2 lines
Best Regards, Jacek Anaszewski