# Copyright (c) 2021 Esco Medical ApS
# SPDX-License-Identifier: Apache-2.0

description: |
  Texas Instruments TLC5971 (and compatible) LED controller

  Driver bindings for daisy chains of a TLC5971 devices using a single device
  tree node. Length of daisy chains in pixels is defined by the chain-length
  property.

  The color order of the TLC5971 is BGR. Applications can provide custom mappings
  using the color-mapping property.

  Example device tree node w. 24 pixels (6 TLC5971 devices):

    &spi1 {
      led_controller: led_controller@0 {
        status = "okay";
        compatible = "ti,tlc59711", "ti,tlc5971";
        spi-max-frequency = <DT_FREQ_M(1)>;
        reg = <0x0>;
        chain-length = <24>;
        color-mapping = <LED_COLOR_ID_BLUE>,
                        <LED_COLOR_ID_GREEN>,
                        <LED_COLOR_ID_RED>;
      };
    };

compatible: "ti,tlc5971"

include: spi-device.yaml

properties:
  chain-length:
    type: int
    required: true
    description: |
      The number of RGB LEDs in the daisy-chain.
      Must be multiple of 4. A single TLC5971 device supports 4 RGB LEDs.

  color-mapping:
    type: array
    required: true
    description: |
      Channel to color mapping (or pixel order).
      For example a BGR channel to color mapping would be

         color-mapping = <LED_COLOR_ID_BLUE
                          LED_COLOR_ID_GREEN
                          LED_COLOR_ID_RED>;
