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