1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/leds/leds-qcom-lpg.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm Light Pulse Generator
8
9maintainers:
10  - Bjorn Andersson <bjorn.andersson@linaro.org>
11
12description: >
13  The Qualcomm Light Pulse Generator consists of three different hardware blocks;
14  a ramp generator with lookup table, the light pulse generator and a three
15  channel current sink. These blocks are found in a wide range of Qualcomm PMICs.
16
17properties:
18  compatible:
19    enum:
20      - qcom,pm8150b-lpg
21      - qcom,pm8150l-lpg
22      - qcom,pm8350c-pwm
23      - qcom,pm8916-pwm
24      - qcom,pm8941-lpg
25      - qcom,pm8994-lpg
26      - qcom,pmc8180c-lpg
27      - qcom,pmi8994-lpg
28      - qcom,pmi8998-lpg
29
30  "#pwm-cells":
31    const: 2
32
33  "#address-cells":
34    const: 1
35
36  "#size-cells":
37    const: 0
38
39  qcom,power-source:
40    $ref: /schemas/types.yaml#/definitions/uint32
41    description:
42      power-source used to drive the output, as defined in the datasheet.
43      Should be specified if the TRILED block is present
44    enum: [0, 1, 3]
45
46  qcom,dtest:
47    $ref: /schemas/types.yaml#/definitions/uint32-matrix
48    description: >
49      A list of integer pairs, where each pair represent the dtest line the
50      particular channel should be connected to and the flags denoting how the
51      value should be outputed, as defined in the datasheet. The number of
52      pairs should be the same as the number of channels.
53    items:
54      items:
55        - description: dtest line to attach
56        - description: flags for the attachment
57
58  multi-led:
59    type: object
60    $ref: leds-class-multicolor.yaml#
61    properties:
62      "#address-cells":
63        const: 1
64
65      "#size-cells":
66        const: 0
67
68    patternProperties:
69      "^led@[0-9a-f]$":
70        type: object
71        $ref: common.yaml#
72
73patternProperties:
74  "^led@[0-9a-f]$":
75    type: object
76    $ref: common.yaml#
77
78    properties:
79      reg: true
80
81    required:
82      - reg
83
84required:
85  - compatible
86
87additionalProperties: false
88
89examples:
90  - |
91    #include <dt-bindings/leds/common.h>
92
93    led-controller {
94      compatible = "qcom,pmi8994-lpg";
95
96      #address-cells = <1>;
97      #size-cells = <0>;
98
99      qcom,power-source = <1>;
100
101      qcom,dtest = <0 0>,
102                   <0 0>,
103                   <0 0>,
104                   <4 1>;
105
106      led@1 {
107        reg = <1>;
108        color = <LED_COLOR_ID_GREEN>;
109        function = LED_FUNCTION_INDICATOR;
110        function-enumerator = <1>;
111      };
112
113      led@2 {
114        reg = <2>;
115        color = <LED_COLOR_ID_GREEN>;
116        function = LED_FUNCTION_INDICATOR;
117        function-enumerator = <0>;
118        default-state = "on";
119      };
120
121      led@3 {
122        reg = <3>;
123        color = <LED_COLOR_ID_GREEN>;
124        function = LED_FUNCTION_INDICATOR;
125        function-enumerator = <2>;
126      };
127
128      led@4 {
129        reg = <4>;
130        color = <LED_COLOR_ID_GREEN>;
131        function = LED_FUNCTION_INDICATOR;
132        function-enumerator = <3>;
133      };
134    };
135  - |
136    #include <dt-bindings/leds/common.h>
137
138    led-controller {
139      compatible = "qcom,pmi8994-lpg";
140
141      #address-cells = <1>;
142      #size-cells = <0>;
143
144      qcom,power-source = <1>;
145
146      multi-led {
147        color = <LED_COLOR_ID_RGB>;
148        function = LED_FUNCTION_STATUS;
149
150        #address-cells = <1>;
151        #size-cells = <0>;
152
153        led@1 {
154          reg = <1>;
155          color = <LED_COLOR_ID_RED>;
156        };
157
158        led@2 {
159          reg = <2>;
160          color = <LED_COLOR_ID_GREEN>;
161        };
162
163        led@3 {
164          reg = <3>;
165          color = <LED_COLOR_ID_BLUE>;
166        };
167      };
168    };
169  - |
170    pwm-controller {
171      compatible = "qcom,pm8916-pwm";
172      #pwm-cells = <2>;
173    };
174...
175