[PATCH v3 1/2] dt-bindings: leds: Add multi-color default-intensities property

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Sven Schwermer <sven.schwermer@xxxxxxxxxxxxxxxxxxxxxxxxxxx>

This allows to assign intensity values to the individual sub LEDs
(colors) at driver probe time, i.e. most commonly at kernel boot time.
This is crucial for setting a specific color early in the boot process.

Signed-off-by: Sven Schwermer <sven.schwermer@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
---

Notes:
    V1->V2: no changes
    V2->V3:
    - Use color-intensity mapping instead of simple intensity array
    - Add example DTS snippet

 .../bindings/leds/leds-class-multicolor.yaml  | 37 +++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/Documentation/devicetree/bindings/leds/leds-class-multicolor.yaml b/Documentation/devicetree/bindings/leds/leds-class-multicolor.yaml
index f41d021ed677..41050de496f6 100644
--- a/Documentation/devicetree/bindings/leds/leds-class-multicolor.yaml
+++ b/Documentation/devicetree/bindings/leds/leds-class-multicolor.yaml
@@ -31,6 +31,19 @@ patternProperties:
           include/linux/leds/common.h.
         enum: [ 8, 9 ]
 
+      default-intensities:
+        description: |
+          This parameter, if present, sets the initial intensities of the
+          individual colors. The format is a list of pairs, mapping an intensity
+          value to a sub LED identified by its color.
+        $ref: /schemas/types.yaml#/definitions/uint32-matrix
+        items:
+          minItems: 2
+          maxItems: 2
+          items:
+            - description: color identifier (LED_COLOR_ID_*)
+            - description: intensity value
+
     $ref: "common.yaml#"
 
     required:
@@ -38,4 +51,28 @@ patternProperties:
 
 additionalProperties: true
 
+examples:
+  - |
+    #include <dt-bindings/leds/common.h>
+
+    multi-led {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      color = <LED_COLOR_ID_RGB>;
+      default-intensities = <LED_COLOR_ID_RED 64>,
+                            <LED_COLOR_ID_BLUE 0>;
+      led@0 {
+        reg = <0>;
+        color = <LED_COLOR_ID_RED>;
+      };
+      led@1 {
+        reg = <1>;
+        color = <LED_COLOR_ID_GREEN>;
+      };
+      led@2 {
+        reg = <2>;
+        color = <LED_COLOR_ID_BLUE>;
+      };
+    };
 ...
-- 
2.36.0




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux