Documentation / devicetree / bindings / leds / qcom,spmi-flash-led.yaml


Based on kernel version 6.11. Page generated on 2024-09-24 08:21 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
# 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>;
            };
        };
    };