Commit a4789089 authored by Marek Vasut's avatar Marek Vasut Committed by Lee Jones
Browse files

dt-bindings: leds: pca995x: Add binding document for PCA995X chips



The PCA995x chips are I2C controlled LED drivers. Each chip has
up to 16 outputs, each one with an individual 8-bit resolution
PWM for brightness control. Add binding document.

Signed-off-by: default avatarMarek Vasut <marex@denx.de>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20230713163516.21644-1-marex@denx.de


Signed-off-by: default avatarLee Jones <lee@kernel.org>
parent 07cdd959
Loading
Loading
Loading
Loading
+81 −0
Original line number Diff line number Diff line
# 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 PCA9952/PCA9955B are programmable LED controllers connected via I2C
  that can drive 16 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

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

  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;
            };
        };
    };

...