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

title: NXP PCA9532 LED Dimmer

maintainers:
  - Riku Voipio <riku.voipio@iki.fi>

description: |
  The PCA9532 family is SMBus I/O expander optimized for dimming LEDs.
  The PWM support 256 steps.

  For more product information please see the link below:
    https://www.nxp.com/docs/en/data-sheet/PCA9532.pdf

properties:
  compatible:
    enum:
      - nxp,pca9530
      - nxp,pca9531
      - nxp,pca9532
      - nxp,pca9533

  reg:
    maxItems: 1

  gpio-controller: true

  gpio-line-names:
    minItems: 1
    maxItems: 16

  '#gpio-cells':
    const: 2

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

    properties:
      type:
        description: |
          Output configuration, see include/dt-bindings/leds/leds-pca9532.h
        $ref: /schemas/types.yaml#/definitions/uint32
        default: 0
        minimum: 0
        maximum: 4

required:
  - compatible
  - reg

additionalProperties: false

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

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

        led-controller@62 {
            compatible = "nxp,pca9533";
            reg = <0x62>;

            led-1 {
                label = "pca:red:power";
                type = <PCA9532_TYPE_LED>;
            };

            led-2 {
                label = "pca:green:power";
                type = <PCA9532_TYPE_LED>;
            };

            led-3 {
                type = <PCA9532_TYPE_LED>;
                default-state = "on";
            };

            led-4 {
                type = <PCA9532_TYPE_LED>;
                default-state = "keep";
            };
        };
    };

...
