# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/leds/nxp,pca995x.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NXP PCA995x LED controllers

maintainers:
  - Isai Gaspar <isaiezequiel.gaspar@nxp.com>
  - Marek Vasut <marex@denx.de>

description:
  The NXP PCA995x family are programmable LED controllers connected via I2C
  that can drive separate lines. Each of them can be individually switched
  on and off, and brightness can be controlled via individual PWM.

  Datasheets are available at
  https://www.nxp.com/docs/en/data-sheet/PCA9952_PCA9955.pdf
  https://www.nxp.com/docs/en/data-sheet/PCA9955B.pdf
  https://www.nxp.com/docs/en/data-sheet/PCA9956B.pdf

properties:
  compatible:
    enum:
      - nxp,pca9952
      - nxp,pca9955b
      - nxp,pca9956b

  reg:
    maxItems: 1

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

patternProperties:
  "^led@[0-9a-f]+$":
    type: object
    $ref: common.yaml#
    unevaluatedProperties: false

    properties:
      reg:
        minimum: 0
        maximum: 15

    required:
      - reg

additionalProperties: false

examples:
  - |
    #include <dt-bindings/leds/common.h>

    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        led-controller@1 {
            compatible = "nxp,pca9955b";
            reg = <0x01>;
            #address-cells = <1>;
            #size-cells = <0>;

            led@0 {
                reg = <0x0>;
                color = <LED_COLOR_ID_RED>;
                function = LED_FUNCTION_POWER;
            };

            led@2 {
                reg = <0x2>;
                color = <LED_COLOR_ID_WHITE>;
                function = LED_FUNCTION_STATUS;
            };
        };
    };

...
