leds: leds-ns2: move LED modes mapping outside of the driver
authorVincent Donnefort <vdonnefort@gmail.com>
Thu, 2 Jul 2015 17:56:40 +0000 (19:56 +0200)
committerJacek Anaszewski <j.anaszewski@samsung.com>
Fri, 28 Aug 2015 12:06:06 +0000 (14:06 +0200)
On the board n090401 (Seagate NAS 4-Bay), the LED mode mapping (GPIO
values to LED mode) is different from the one used on other boards
supported by the leds-ns2 driver.

With this patch the hardcoded mapping is removed from leds-ns2. Now,
it must be defined either in the platform data (if an old-fashion board
setup file is used) or in the DT node. In order to allow the later, this
patch also introduces a modes-map property for the leds-ns2 DT binding.

Signed-off-by: Vincent Donnefort <vdonnefort@gmail.com>
Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Documentation/devicetree/bindings/leds/leds-ns2.txt
drivers/leds/leds-ns2.c
include/dt-bindings/leds/leds-ns2.h [new file with mode: 0644]
include/linux/platform_data/leds-kirkwood-ns2.h

index aef3aca..9f81258 100644 (file)
@@ -8,6 +8,9 @@ Each LED is represented as a sub-node of the ns2-leds device.
 Required sub-node properties:
 - cmd-gpio: Command LED GPIO. See OF device-tree GPIO specification.
 - slow-gpio: Slow LED GPIO. See OF device-tree GPIO specification.
+- modes-map: A mapping between LED modes (off, on or SATA activity blinking) and
+  the corresponding cmd-gpio/slow-gpio values. All the GPIO values combinations
+  should be given in order to avoid having an unknown mode at driver probe time.
 
 Optional sub-node properties:
 - label: Name for this LED. If omitted, the label is taken from the node name.
@@ -15,6 +18,8 @@ Optional sub-node properties:
 
 Example:
 
+#include <dt-bindings/leds/leds-ns2.h>
+
 ns2-leds {
        compatible = "lacie,ns2-leds";
 
@@ -22,5 +27,9 @@ ns2-leds {
                label = "ns2:blue:sata";
                slow-gpio = <&gpio0 29 0>;
                cmd-gpio = <&gpio0 30 0>;
+               modes-map = <NS_V2_LED_OFF  0 1
+                            NS_V2_LED_ON   1 0
+                            NS_V2_LED_ON   0 0
+                            NS_V2_LED_SATA 1 1>;
        };
 };
Simple merge
Simple merge