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

title: Flash LED device inside Qualcomm Technologies, Inc. PMICs

maintainers:
  - Fenglin Wu <quic_fenglinw@quicinc.com>

description: |
  Flash LED controller is present inside some Qualcomm Technologies, Inc. PMICs.
  The flash LED module can have different number of LED channels supported
  e.g. 3 or 4. There are some different registers between them but they can
  both support maximum current up to 1.5 A per channel and they can also support
  ganging 2 channels together to supply maximum current up to 2 A. The current
  will be split symmetrically on each channel and they will be enabled and
  disabled at the same time.

properties:
  compatible:
    items:
      - enum:
          - qcom,pm6150l-flash-led
          - qcom,pm8150c-flash-led
          - qcom,pm8150l-flash-led
          - qcom,pm8350c-flash-led
          - qcom,pm8550-flash-led
          - qcom,pmi8998-flash-led
      - const: qcom,spmi-flash-led

  reg:
    maxItems: 1

patternProperties:
  "^led-[0-3]$":
    type: object
    $ref: common.yaml#
    unevaluatedProperties: false
    description:
      Represents the physical LED components which are connected to the
      flash LED channels' output.

    properties:
      led-sources:
        description:
          The HW indices of the flash LED channels that connect to the
          physical LED
        allOf:
          - minItems: 1
            maxItems: 2
            items:
              enum: [1, 2, 3, 4]

      led-max-microamp:
        anyOf:
          - minimum: 5000
            maximum: 500000
            multipleOf: 5000
          - minimum: 10000
            maximum: 1000000
            multipleOf: 10000

      flash-max-microamp:
        anyOf:
          - minimum: 12500
            maximum: 1500000
            multipleOf: 12500
          - minimum: 25000
            maximum: 2000000
            multipleOf: 25000

      flash-max-timeout-us:
        minimum: 10000
        maximum: 1280000
        multipleOf: 10000

    required:
      - led-sources
      - led-max-microamp

required:
  - compatible
  - reg

additionalProperties: false

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

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

        led-controller@ee00 {
            compatible = "qcom,pm8350c-flash-led", "qcom,spmi-flash-led";
            reg = <0xee00>;

            led-0 {
                function = LED_FUNCTION_FLASH;
                color = <LED_COLOR_ID_WHITE>;
                led-sources = <1>, <4>;
                led-max-microamp = <300000>;
                flash-max-microamp = <2000000>;
                flash-max-timeout-us = <1280000>;
                function-enumerator = <0>;
            };

            led-1 {
                function = LED_FUNCTION_FLASH;
                color = <LED_COLOR_ID_YELLOW>;
                led-sources = <2>, <3>;
                led-max-microamp = <300000>;
                flash-max-microamp = <2000000>;
                flash-max-timeout-us = <1280000>;
                function-enumerator = <1>;
            };
        };
    };
