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

title: SGMICRO SGM3140 500mA Buck/Boost Charge Pump LED Driver

maintainers:
  - Luca Weiss <luca@z3ntu.xyz>

description: |
  The SGM3140 is a current-regulated charge pump which can regulate two current
  levels for Flash and Torch modes.

  The data sheet can be found at:
    http://www.sg-micro.com/uploads/soft/20190626/1561535688.pdf

properties:
  compatible:
    enum:
      - ocs,ocp8110
      - richtek,rt5033-led
      - sgmicro,sgm3140

  enable-gpios:
    maxItems: 1
    description: A connection to the 'EN' pin.

  flash-gpios:
    maxItems: 1
    description: A connection to the 'FLASH' pin.

  vin-supply:
    description: Regulator providing power to the 'VIN' pin.

  led:
    type: object
    $ref: common.yaml#
    unevaluatedProperties: false

required:
  - compatible
  - flash-gpios
  - enable-gpios

additionalProperties: false

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

    led-controller {
        compatible = "sgmicro,sgm3140";
        flash-gpios = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */
        enable-gpios = <&pio 2 3 GPIO_ACTIVE_HIGH>; /* PC3 */
        vin-supply = <&reg_dcdc1>;

        sgm3140_flash: led {
            function = LED_FUNCTION_FLASH;
            color = <LED_COLOR_ID_WHITE>;
            flash-max-timeout-us = <250000>;
        };
    };