1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/leds/backlight/qcom-wled.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Binding for Qualcomm Technologies, Inc. WLED driver
8
9maintainers:
10  - Bjorn Andersson <bjorn.andersson@linaro.org>
11  - Kiran Gunda <kgunda@codeaurora.org>
12
13description: |
14  WLED (White Light Emitting Diode) driver is used for controlling display
15  backlight that is part of PMIC on Qualcomm Technologies, Inc. reference
16  platforms. The PMIC is connected to the host processor via SPMI bus.
17
18properties:
19  compatible:
20    enum:
21      - qcom,pm8941-wled
22      - qcom,pmi8998-wled
23      - qcom,pm660l-wled
24      - qcom,pm8150l-wled
25
26  reg:
27    maxItems: 1
28
29  default-brightness:
30    description: |
31      brightness value on boot.
32
33  label: true
34
35  max-brightness:
36    description: |
37      Maximum brightness level.
38
39  qcom,cs-out:
40    description: |
41      enable current sink output.
42      This property is supported only for WLED3.
43    type: boolean
44
45  qcom,cabc:
46    description: |
47      enable content adaptive backlight control.
48    type: boolean
49
50  qcom,ext-gen:
51    description: |
52      use externally generated modulator signal to dim.
53      This property is supported only for WLED3.
54    type: boolean
55
56  qcom,current-limit:
57    description: |
58      mA; per-string current limit.
59      This property is supported only for WLED3.
60    $ref: /schemas/types.yaml#/definitions/uint32
61    default: 20
62    minimum: 0
63    maximum: 25
64
65  qcom,current-limit-microamp:
66    description: |
67      uA; per-string current limit.
68    default: 25
69    minimum: 0
70    maximum: 30000
71    multipleOf: 25
72
73  qcom,current-boost-limit:
74    description: |
75      mA; boost current limit.
76    $ref: /schemas/types.yaml#/definitions/uint32
77
78  qcom,switching-freq:
79    description: |
80      kHz; switching frequency.
81    $ref: /schemas/types.yaml#/definitions/uint32
82    enum: [ 600, 640, 685, 738, 800, 872, 960, 1066, 1200, 1371, 1600, 1920, 2400, 3200, 4800, 9600 ]
83
84  qcom,ovp:
85    description: |
86      V; Over-voltage protection limit.
87      This property is supported only for WLED3.
88    $ref: /schemas/types.yaml#/definitions/uint32
89    enum: [ 27, 29, 32, 35 ]
90    default: 29
91
92  qcom,ovp-millivolt:
93    description: |
94      Over-voltage protection limit. This property is for WLED4 only.
95    $ref: /schemas/types.yaml#/definitions/uint32
96    enum: [ 18100, 19600, 29600, 31100 ]
97    default: 29600
98
99  qcom,num-strings:
100    description: |
101      number of led strings attached.
102    $ref: /schemas/types.yaml#/definitions/uint32
103
104  qcom,enabled-strings:
105    description: |
106      Array of the WLED strings numbered from 0 to 3. Each
107      string of leds are operated individually. Specify the
108      list of strings used by the device. Any combination of
109      led strings can be used.
110    $ref: /schemas/types.yaml#/definitions/uint32-array
111    minItems: 1
112    maxItems: 4
113
114  qcom,external-pfet:
115    description: |
116      Specify if external PFET control for short circuit
117      protection is used. This property is supported only
118      for WLED4.
119    type: boolean
120
121  qcom,auto-string-detection:
122    description: |
123      Enables auto-detection of the WLED string configuration.
124      This feature is not supported for WLED3.
125    type: boolean
126
127  interrupts:
128    minItems: 1
129    items:
130      - description: over voltage protection interrupt.
131      - description: short circuit interrupt.
132
133  interrupt-names:
134    minItems: 1
135    items:
136      - const: ovp
137      - const: short
138
139  qcom,modulator-sel:
140    description: |
141      Selects the modulator used for brightness modulation.
142      Allowed values are,
143           0 - Modulator A
144           1 - Modulator B
145      This property is applicable only to WLED5 peripheral.
146    $ref: /schemas/types.yaml#/definitions/uint32
147    enum: [ 0, 1 ]
148    default: 0
149
150  qcom,cabc-sel:
151    description: |
152      Selects the CABC pin signal used for brightness modulation.
153      Allowed values are,
154           0 - CABC disabled
155           1 - CABC 1
156           2 - CABC 2
157           3 - External signal (e.g. LPG) is used for dimming
158      This property is applicable only to WLED5 peripheral.
159    $ref: /schemas/types.yaml#/definitions/uint32
160    enum: [ 0, 1, 2, 3 ]
161
162allOf:
163  - if:
164      properties:
165        compatible:
166          contains:
167            const: qcom,pm8941-wled
168
169    then:
170      properties:
171        qcom,current-boost-limit:
172          enum: [ 105, 385, 525, 805, 980, 1260, 1400, 1680 ]
173          default: 805
174
175        qcom,switching-freq:
176          default: 1600
177
178        qcom,num-strings:
179          enum: [ 1, 2, 3 ]
180
181        interrupts:
182          maxItems: 1
183
184        interrupt-names:
185          maxItems: 1
186
187    else:
188      properties:
189        qcom,current-boost-limit:
190          enum: [ 105, 280, 450, 620, 970, 1150, 1300, 1500 ]
191          default: 970
192
193        qcom,switching-freq:
194          default: 800
195
196        qcom,num-strings:
197          enum: [ 1, 2, 3, 4 ]
198
199        interrupts:
200          minItems: 2
201
202        interrupt-names:
203          minItems: 2
204  - if:
205      properties:
206        compatible:
207          contains:
208            enum:
209              - qcom,pm8150l-wled
210
211    then:
212      properties:
213        default-brightness:
214          minimum: 0
215          maximum: 32767
216
217        max-brightness:
218          minimum: 0
219          maximum: 32767
220
221    else:
222      properties:
223        default-brightness:
224          minimum: 0
225          maximum: 4095
226
227        max-brightness:
228          minimum: 0
229          maximum: 4095
230
231required:
232  - compatible
233  - reg
234  - label
235
236additionalProperties: false
237
238examples:
239  - |
240    backlight@d800 {
241        compatible = "qcom,pm8941-wled";
242        reg = <0xd800 0x100>;
243        label = "backlight";
244
245        qcom,cs-out;
246        qcom,current-limit = <20>;
247        qcom,current-boost-limit = <805>;
248        qcom,switching-freq = <1600>;
249        qcom,ovp = <29>;
250        qcom,num-strings = <2>;
251        qcom,enabled-strings = <0 1>;
252     };
253