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

title: Kinetic Technologies KTZ8866 backlight

maintainers:
  - Jianhua Lu <lujianhua000@gmail.com>

description: |
  The Kinetic Technologies KTZ8866 is a high efficiency 6-channels-current-sinks
  led backlight with dual lcd bias power.
  https://www.kinet-ic.com/ktz8866/

allOf:
  - $ref: common.yaml#

properties:
  compatible:
    const: kinetic,ktz8866

  reg:
    maxItems: 1

  vddpos-supply:
    description: positive boost supply regulator.

  vddneg-supply:
    description: negative boost supply regulator.

  enable-gpios:
    description: GPIO to use to enable/disable the backlight (HWEN pin).
    maxItems: 1

  current-num-sinks:
    description: number of the LED current sinks' channels.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [1, 2, 3, 4, 5, 6]

  kinetic,current-ramp-delay-ms:
    description: |
      LED current ramping delay time in milliseconds, note that the
      case 1 will be mapped to 1μs.
    enum: [1, 2, 4, 8, 16, 32, 64, 128, 192, 256, 320, 384, 448, 512, 576, 640]

  kinetic,led-enable-ramp-delay-ms:
    description: |
      LED on/off ramping delay time in milliseconds, note that the case 0 will be
      mapped to 512μs because ktz8866 can't ramp faster than it.
    enum: [0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384]

  kinetic,enable-lcd-bias:
    description: Set if we want to output bias power supply for LCD.
    type: boolean

required:
  - compatible
  - reg
  - vddpos-supply
  - vddneg-supply
  - enable-gpios

unevaluatedProperties: false

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

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

        backlight@11 {
            compatible = "kinetic,ktz8866";
            reg = <0x11>;
            vddpos-supply = <&bl_vddpos_5p5>;
            vddneg-supply = <&bl_vddneg_5p5>;
            enable-gpios = <&tlmm 139 GPIO_ACTIVE_HIGH>;
            current-num-sinks = <5>;
            kinetic,current-ramp-delay-ms = <128>;
            kinetic,led-enable-ramp-delay-ms = <1>;
            kinetic,enable-lcd-bias;
        };
    };