1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/leds/qcom,spmi-flash-led.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Flash LED device inside Qualcomm Technologies, Inc. PMICs
8
9maintainers:
10  - Fenglin Wu <quic_fenglinw@quicinc.com>
11
12description: |
13  Flash LED controller is present inside some Qualcomm Technologies, Inc. PMICs.
14  The flash LED module can have different number of LED channels supported
15  e.g. 3 or 4. There are some different registers between them but they can
16  both support maximum current up to 1.5 A per channel and they can also support
17  ganging 2 channels together to supply maximum current up to 2 A. The current
18  will be split symmetrically on each channel and they will be enabled and
19  disabled at the same time.
20
21properties:
22  compatible:
23    items:
24      - enum:
25          - qcom,pm6150l-flash-led
26          - qcom,pm8150c-flash-led
27          - qcom,pm8150l-flash-led
28          - qcom,pm8350c-flash-led
29          - qcom,pm8550-flash-led
30          - qcom,pmi8998-flash-led
31      - const: qcom,spmi-flash-led
32
33  reg:
34    maxItems: 1
35
36patternProperties:
37  "^led-[0-3]$":
38    type: object
39    $ref: common.yaml#
40    unevaluatedProperties: false
41    description:
42      Represents the physical LED components which are connected to the
43      flash LED channels' output.
44
45    properties:
46      led-sources:
47        description:
48          The HW indices of the flash LED channels that connect to the
49          physical LED
50        allOf:
51          - minItems: 1
52            maxItems: 2
53            items:
54              enum: [1, 2, 3, 4]
55
56      led-max-microamp:
57        anyOf:
58          - minimum: 5000
59            maximum: 500000
60            multipleOf: 5000
61          - minimum: 10000
62            maximum: 1000000
63            multipleOf: 10000
64
65      flash-max-microamp:
66        anyOf:
67          - minimum: 12500
68            maximum: 1500000
69            multipleOf: 12500
70          - minimum: 25000
71            maximum: 2000000
72            multipleOf: 25000
73
74      flash-max-timeout-us:
75        minimum: 10000
76        maximum: 1280000
77        multipleOf: 10000
78
79    required:
80      - led-sources
81      - led-max-microamp
82
83required:
84  - compatible
85  - reg
86
87additionalProperties: false
88
89examples:
90  - |
91    #include <dt-bindings/leds/common.h>
92    spmi {
93        #address-cells = <1>;
94        #size-cells = <0>;
95        led-controller@ee00 {
96            compatible = "qcom,pm8350c-flash-led", "qcom,spmi-flash-led";
97            reg = <0xee00>;
98
99            led-0 {
100                function = LED_FUNCTION_FLASH;
101                color = <LED_COLOR_ID_WHITE>;
102                led-sources = <1>, <4>;
103                led-max-microamp = <300000>;
104                flash-max-microamp = <2000000>;
105                flash-max-timeout-us = <1280000>;
106                function-enumerator = <0>;
107            };
108
109            led-1 {
110                function = LED_FUNCTION_FLASH;
111                color = <LED_COLOR_ID_YELLOW>;
112                led-sources = <2>, <3>;
113                led-max-microamp = <300000>;
114                flash-max-microamp = <2000000>;
115                flash-max-timeout-us = <1280000>;
116                function-enumerator = <1>;
117            };
118        };
119    };
120