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