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

title: Richtek RT8515 1.5A dual channel LED driver

maintainers:
  - Linus Walleij <linus.walleij@linaro.org>

description: |
  The Richtek RT8515 is a dual channel (two mode) LED driver that
  supports driving a white LED in flash or torch mode. The maximum
  current for each mode is defined in hardware using two resistors
  RFS and RTS.

properties:
  compatible:
    const: richtek,rt8515

  enf-gpios:
    maxItems: 1
    description: A connection to the 'ENF' (enable flash) pin.

  ent-gpios:
    maxItems: 1
    description: A connection to the 'ENT' (enable torch) pin.

  richtek,rfs-ohms:
    minimum: 7680
    maximum: 367000
    description: The resistance value of the RFS resistor. This
      resistors limits the maximum flash current. This must be set
      for the property flash-max-microamp to work, the RFS resistor
      defines the range of the dimmer setting (brightness) of the
      flash LED.

  richtek,rts-ohms:
    minimum: 7680
    maximum: 367000
    description: The resistance value of the RTS resistor. This
      resistors limits the maximum torch current. This must be set
      for the property torch-max-microamp to work, the RTS resistor
      defines the range of the dimmer setting (brightness) of the
      torch LED.

  led:
    type: object
    $ref: common.yaml#
    properties:
      function: true
      color: true
      flash-max-timeout-us: true

      flash-max-microamp:
        maximum: 700000
        description: The maximum current for flash mode
          is hardwired to the component using the RFS resistor to
          ground. The maximum hardware current setting is calculated
          according to the formula Imax = 5500 / RFS. The lowest
          allowed resistance value is 7.86 kOhm giving an absolute
          maximum current of 700mA. By setting this attribute in
          the device tree, you can further restrict the maximum
          current below the hardware limit. This requires the RFS
          to be defined as it defines the maximum range.

      led-max-microamp:
        maximum: 700000
        description: The maximum current for torch mode
          is hardwired to the component using the RTS resistor to
          ground. The maximum hardware current setting is calculated
          according to the formula Imax = 5500 / RTS. The lowest
          allowed resistance value is 7.86 kOhm giving an absolute
          maximum current of 700mA. By setting this attribute in
          the device tree, you can further restrict the maximum
          current below the hardware limit. This requires the RTS
          to be defined as it defines the maximum range.

    additionalProperties: false

required:
  - compatible
  - ent-gpios
  - enf-gpios
  - led

additionalProperties: false

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

    led-controller {
        compatible = "richtek,rt8515";
        enf-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
        ent-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
        richtek,rfs-ohms = <16000>;
        richtek,rts-ohms = <100000>;

        led {
            function = LED_FUNCTION_FLASH;
            color = <LED_COLOR_ID_WHITE>;
            flash-max-timeout-us = <250000>;
            flash-max-microamp = <150000>;
            led-max-microamp = <25000>;
        };
    };

...
