[PATCH 1/3] dt-bindings: leds: nxp,pca963x: add multicolor LED support
From: Loic Poulain
Date: Mon Jun 29 2026 - 15:52:21 EST
Add support for grouping individual PCA963x channels into a multicolor
LED by introducing a multi-led@N node pattern. This follows the
convention established by other multicolor LED drivers such as
kinetic,ktd202x.
---
.../devicetree/bindings/leds/nxp,pca963x.yaml | 83 +++++++++++++++++++++-
1 file changed, 81 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/leds/nxp,pca963x.yaml b/Documentation/devicetree/bindings/leds/nxp,pca963x.yaml
index 938d0e48fe51bce82779c4457c8e99cb6d80fe70..09ec140c5092950c54e1d4a55f52e11e8dd7b0f0 100644
--- a/Documentation/devicetree/bindings/leds/nxp,pca963x.yaml
+++ b/Documentation/devicetree/bindings/leds/nxp,pca963x.yaml
@@ -74,6 +74,39 @@ patternProperties:
required:
- reg
+ "^multi-led@[0-9a-f]+$":
+ type: object
+ $ref: leds-class-multicolor.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ reg:
+ minimum: 0
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+ patternProperties:
+ "^led@[0-9a-f]+$":
+ type: object
+ $ref: common.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ reg:
+ minimum: 0
+
+ required:
+ - reg
+
+ required:
+ - reg
+ - "#address-cells"
+ - "#size-cells"
+
allOf:
- if:
properties:
@@ -84,13 +117,13 @@ allOf:
- nxp,pca9633
then:
patternProperties:
- "^led@[0-9a-f]+$":
+ "^.*led@[0-9a-f]+$":
properties:
reg:
maximum: 3
else:
patternProperties:
- "^led@[0-9a-f]+$":
+ "^.*led@[0-9a-f]+$":
properties:
reg:
maximum: 7
@@ -137,4 +170,50 @@ examples:
};
};
+ - |
+ #include <dt-bindings/leds/common.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ led-controller@62 {
+ compatible = "nxp,pca9633";
+ reg = <0x62>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* Three channels controlling one RGB LED */
+ multi-led@0 {
+ reg = <0>;
+ color = <LED_COLOR_ID_RGB>;
+ function = LED_FUNCTION_STATUS;
+ #address-cells = <1>;
+ #size-cells = <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>;
+ };
+ };
+
+ /* Remaining channel used as a plain white LED */
+ led@3 {
+ reg = <3>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_STATUS;
+ };
+ };
+ };
+
...
--
2.34.1