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

title: NXP PCA963x LED controllers

maintainers:
  - Laurent Pinchart <laurent.pinchart@ideasonboard.com>

description: |
  The NXP PCA963x are I2C-controlled LED drivers optimized for
  Red/Green/Blue/Amber (RGBA) color mixing applications. Each LED is
  individually controllable and has its own PWM controller.

  Datasheets are available at

  - https://www.nxp.com/docs/en/data-sheet/PCA9632.pdf
  - https://www.nxp.com/docs/en/data-sheet/PCA9633.pdf
  - https://www.nxp.com/docs/en/data-sheet/PCA9634.pdf
  - https://www.nxp.com/docs/en/data-sheet/PCA9635.pdf

properties:
  compatible:
    enum:
      - nxp,pca9632
      - nxp,pca9633
      - nxp,pca9634
      - nxp,pca9635

  reg:
    maxItems: 1

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  nxp,hw-blink:
    type: boolean
    description:
      Use hardware blinking instead of software blinking

  nxp,inverted-out:
    type: boolean
    description:
      Invert the polarity of the generated PWM.

  nxp,period-scale:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      In some configurations, the chip blinks faster than expected. This
      parameter provides a scaling ratio (fixed point, decimal divided by 1000)
      to compensate, e.g. 1300=1.3x and 750=0.75x.

  nxp,totem-pole:
    type: boolean
    description:
      Use totem pole (push-pull) instead of open-drain (pca9632 defaults to
      open-drain, newer chips to totem pole).

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

    properties:
      reg:
        minimum: 0

    required:
      - reg

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - nxp,pca9632
              - nxp,pca9633
    then:
      patternProperties:
        "^led@[0-9a-f]+$":
          properties:
            reg:
              maximum: 3
    else:
      patternProperties:
        "^led@[0-9a-f]+$":
          properties:
            reg:
              maximum: 7

additionalProperties: false

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

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

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

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

            led@1 {
                    reg = <1>;
                    color = <LED_COLOR_ID_GREEN>;
                    function = LED_FUNCTION_STATUS;
            };

            led@2 {
                    reg = <2>;
                    color = <LED_COLOR_ID_BLUE>;
                    function = LED_FUNCTION_STATUS;
            };

            led@3 {
                    reg = <3>;
                    color = <LED_COLOR_ID_WHITE>;
                    function = LED_FUNCTION_STATUS;
            };
        };
    };

...
