1 # SPDX-License-Identifier: (GPL-2.0-only OR BS 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 %YAML 1.2 2 %YAML 1.2 3 --- 3 --- 4 $id: http://devicetree.org/schemas/leds/leds-q 4 $id: http://devicetree.org/schemas/leds/leds-qcom-lpg.yaml# 5 $schema: http://devicetree.org/meta-schemas/co 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 title: Qualcomm Light Pulse Generator 7 title: Qualcomm Light Pulse Generator 8 8 9 maintainers: 9 maintainers: 10 - Bjorn Andersson <bjorn.andersson@linaro.org 10 - Bjorn Andersson <bjorn.andersson@linaro.org> 11 11 12 description: > 12 description: > 13 The Qualcomm Light Pulse Generator consists 13 The Qualcomm Light Pulse Generator consists of three different hardware blocks; 14 a ramp generator with lookup table (LUT), th 14 a ramp generator with lookup table (LUT), the light pulse generator and a three 15 channel current sink. These blocks are found 15 channel current sink. These blocks are found in a wide range of Qualcomm PMICs. 16 16 17 properties: 17 properties: 18 compatible: 18 compatible: 19 oneOf: 19 oneOf: 20 - enum: 20 - enum: 21 - qcom,pm660l-lpg 21 - qcom,pm660l-lpg 22 - qcom,pm8150b-lpg 22 - qcom,pm8150b-lpg 23 - qcom,pm8150l-lpg 23 - qcom,pm8150l-lpg 24 - qcom,pm8350c-pwm 24 - qcom,pm8350c-pwm 25 - qcom,pm8916-pwm 25 - qcom,pm8916-pwm 26 - qcom,pm8941-lpg 26 - qcom,pm8941-lpg 27 - qcom,pm8994-lpg 27 - qcom,pm8994-lpg 28 - qcom,pmc8180c-lpg 28 - qcom,pmc8180c-lpg 29 - qcom,pmi632-lpg 29 - qcom,pmi632-lpg 30 - qcom,pmi8950-pwm 30 - qcom,pmi8950-pwm 31 - qcom,pmi8994-lpg 31 - qcom,pmi8994-lpg 32 - qcom,pmi8998-lpg 32 - qcom,pmi8998-lpg 33 - qcom,pmk8550-pwm 33 - qcom,pmk8550-pwm 34 - items: 34 - items: 35 - enum: 35 - enum: 36 - qcom,pm6150l-lpg 36 - qcom,pm6150l-lpg 37 - const: qcom,pm8150l-lpg 37 - const: qcom,pm8150l-lpg 38 - items: 38 - items: 39 - enum: 39 - enum: 40 - qcom,pm8550-pwm 40 - qcom,pm8550-pwm 41 - const: qcom,pm8350c-pwm 41 - const: qcom,pm8350c-pwm 42 42 43 "#pwm-cells": 43 "#pwm-cells": 44 const: 2 44 const: 2 45 45 46 "#address-cells": 46 "#address-cells": 47 const: 1 47 const: 1 48 48 49 "#size-cells": 49 "#size-cells": 50 const: 0 50 const: 0 51 51 52 qcom,power-source: 52 qcom,power-source: 53 $ref: /schemas/types.yaml#/definitions/uin 53 $ref: /schemas/types.yaml#/definitions/uint32 54 description: 54 description: 55 power-source used to drive the output, a 55 power-source used to drive the output, as defined in the datasheet. 56 Should be specified if the TRILED block 56 Should be specified if the TRILED block is present 57 enum: [0, 1, 3] 57 enum: [0, 1, 3] 58 58 59 qcom,dtest: 59 qcom,dtest: 60 $ref: /schemas/types.yaml#/definitions/uin 60 $ref: /schemas/types.yaml#/definitions/uint32-matrix 61 description: > 61 description: > 62 A list of integer pairs, where each pair 62 A list of integer pairs, where each pair represent the dtest line the 63 particular channel should be connected t 63 particular channel should be connected to and the flags denoting how the 64 value should be outputted, as defined in 64 value should be outputted, as defined in the datasheet. The number of 65 pairs should be the same as the number o 65 pairs should be the same as the number of channels. 66 items: 66 items: 67 items: 67 items: 68 - description: dtest line to attach 68 - description: dtest line to attach 69 - description: flags for the attachmen 69 - description: flags for the attachment 70 70 71 nvmem: 71 nvmem: 72 description: > 72 description: > 73 This property is required for PMICs that 73 This property is required for PMICs that supports PPG, which is when a 74 PMIC stores LPG per-channel data and pat 74 PMIC stores LPG per-channel data and pattern LUT in SDAM modules instead 75 of in a LUT peripheral. For PMICs, such 75 of in a LUT peripheral. For PMICs, such as PM8350C, per-channel data 76 and pattern LUT is separated into 2 SDAM 76 and pattern LUT is separated into 2 SDAM modules. In that case, phandles 77 to both SDAM modules need to be specifie 77 to both SDAM modules need to be specified. 78 minItems: 1 78 minItems: 1 79 maxItems: 2 79 maxItems: 2 80 80 81 nvmem-names: 81 nvmem-names: 82 minItems: 1 82 minItems: 1 83 items: 83 items: 84 - const: lpg_chan_sdam 84 - const: lpg_chan_sdam 85 - const: lut_sdam 85 - const: lut_sdam 86 86 87 qcom,pbs: 87 qcom,pbs: 88 $ref: /schemas/types.yaml#/definitions/pha 88 $ref: /schemas/types.yaml#/definitions/phandle 89 description: > 89 description: > 90 Phandle of the Qualcomm Programmable Boo 90 Phandle of the Qualcomm Programmable Boot Sequencer node (PBS). 91 PBS node is used to trigger LPG pattern 91 PBS node is used to trigger LPG pattern sequences for PMICs that support 92 single SDAM PPG. 92 single SDAM PPG. 93 93 94 multi-led: 94 multi-led: 95 type: object 95 type: object 96 $ref: leds-class-multicolor.yaml# 96 $ref: leds-class-multicolor.yaml# 97 unevaluatedProperties: false 97 unevaluatedProperties: false 98 98 99 properties: 99 properties: 100 "#address-cells": 100 "#address-cells": 101 const: 1 101 const: 1 102 102 103 "#size-cells": 103 "#size-cells": 104 const: 0 104 const: 0 105 105 106 patternProperties: 106 patternProperties: 107 "^led@[0-9a-f]$": 107 "^led@[0-9a-f]$": 108 type: object 108 type: object 109 $ref: common.yaml# 109 $ref: common.yaml# 110 unevaluatedProperties: false 110 unevaluatedProperties: false 111 111 112 properties: 112 properties: 113 reg: 113 reg: 114 maxItems: 1 114 maxItems: 1 115 115 116 required: 116 required: 117 - reg 117 - reg 118 118 119 patternProperties: 119 patternProperties: 120 "^led@[0-9a-f]$": 120 "^led@[0-9a-f]$": 121 type: object 121 type: object 122 $ref: common.yaml# 122 $ref: common.yaml# 123 unevaluatedProperties: false 123 unevaluatedProperties: false 124 124 125 properties: 125 properties: 126 reg: 126 reg: 127 maxItems: 1 127 maxItems: 1 128 128 129 required: 129 required: 130 - reg 130 - reg 131 131 132 required: 132 required: 133 - compatible 133 - compatible 134 134 135 additionalProperties: false 135 additionalProperties: false 136 136 137 allOf: 137 allOf: 138 - if: 138 - if: 139 properties: 139 properties: 140 compatible: 140 compatible: 141 contains: 141 contains: 142 enum: 142 enum: 143 - qcom,pm660l-lpg 143 - qcom,pm660l-lpg 144 - qcom,pm8150b-lpg 144 - qcom,pm8150b-lpg 145 - qcom,pm8150l-lpg 145 - qcom,pm8150l-lpg 146 - qcom,pm8916-pwm 146 - qcom,pm8916-pwm 147 - qcom,pm8941-lpg 147 - qcom,pm8941-lpg 148 - qcom,pm8994-lpg 148 - qcom,pm8994-lpg 149 - qcom,pmc8180c-lpg 149 - qcom,pmc8180c-lpg 150 - qcom,pmi8950-pwm 150 - qcom,pmi8950-pwm 151 - qcom,pmi8994-lpg 151 - qcom,pmi8994-lpg 152 - qcom,pmi8998-lpg 152 - qcom,pmi8998-lpg 153 - qcom,pmk8550-pwm 153 - qcom,pmk8550-pwm 154 then: 154 then: 155 properties: 155 properties: 156 nvmem: false 156 nvmem: false 157 nvmem-names: false 157 nvmem-names: false 158 158 159 - if: 159 - if: 160 properties: 160 properties: 161 compatible: 161 compatible: 162 contains: 162 contains: 163 const: qcom,pmi632-lpg 163 const: qcom,pmi632-lpg 164 then: 164 then: 165 properties: 165 properties: 166 nvmem: 166 nvmem: 167 maxItems: 1 167 maxItems: 1 168 nvmem-names: 168 nvmem-names: 169 maxItems: 1 169 maxItems: 1 170 170 171 - if: 171 - if: 172 properties: 172 properties: 173 compatible: 173 compatible: 174 contains: 174 contains: 175 enum: 175 enum: 176 - qcom,pm8350c-pwm 176 - qcom,pm8350c-pwm 177 then: 177 then: 178 properties: 178 properties: 179 nvmem: 179 nvmem: 180 minItems: 2 180 minItems: 2 181 nvmem-names: 181 nvmem-names: 182 minItems: 2 182 minItems: 2 183 183 184 examples: 184 examples: 185 - | 185 - | 186 #include <dt-bindings/leds/common.h> 186 #include <dt-bindings/leds/common.h> 187 187 188 led-controller { 188 led-controller { 189 compatible = "qcom,pmi8994-lpg"; 189 compatible = "qcom,pmi8994-lpg"; 190 190 191 #address-cells = <1>; 191 #address-cells = <1>; 192 #size-cells = <0>; 192 #size-cells = <0>; 193 193 194 qcom,power-source = <1>; 194 qcom,power-source = <1>; 195 195 196 qcom,dtest = <0 0>, 196 qcom,dtest = <0 0>, 197 <0 0>, 197 <0 0>, 198 <0 0>, 198 <0 0>, 199 <4 1>; 199 <4 1>; 200 200 201 led@1 { 201 led@1 { 202 reg = <1>; 202 reg = <1>; 203 color = <LED_COLOR_ID_GREEN>; 203 color = <LED_COLOR_ID_GREEN>; 204 function = LED_FUNCTION_INDICATOR; 204 function = LED_FUNCTION_INDICATOR; 205 function-enumerator = <1>; 205 function-enumerator = <1>; 206 }; 206 }; 207 207 208 led@2 { 208 led@2 { 209 reg = <2>; 209 reg = <2>; 210 color = <LED_COLOR_ID_GREEN>; 210 color = <LED_COLOR_ID_GREEN>; 211 function = LED_FUNCTION_INDICATOR; 211 function = LED_FUNCTION_INDICATOR; 212 function-enumerator = <0>; 212 function-enumerator = <0>; 213 default-state = "on"; 213 default-state = "on"; 214 }; 214 }; 215 215 216 led@3 { 216 led@3 { 217 reg = <3>; 217 reg = <3>; 218 color = <LED_COLOR_ID_GREEN>; 218 color = <LED_COLOR_ID_GREEN>; 219 function = LED_FUNCTION_INDICATOR; 219 function = LED_FUNCTION_INDICATOR; 220 function-enumerator = <2>; 220 function-enumerator = <2>; 221 }; 221 }; 222 222 223 led@4 { 223 led@4 { 224 reg = <4>; 224 reg = <4>; 225 color = <LED_COLOR_ID_GREEN>; 225 color = <LED_COLOR_ID_GREEN>; 226 function = LED_FUNCTION_INDICATOR; 226 function = LED_FUNCTION_INDICATOR; 227 function-enumerator = <3>; 227 function-enumerator = <3>; 228 }; 228 }; 229 }; 229 }; 230 - | 230 - | 231 #include <dt-bindings/leds/common.h> 231 #include <dt-bindings/leds/common.h> 232 232 233 led-controller { 233 led-controller { 234 compatible = "qcom,pmi8994-lpg"; 234 compatible = "qcom,pmi8994-lpg"; 235 235 236 #address-cells = <1>; 236 #address-cells = <1>; 237 #size-cells = <0>; 237 #size-cells = <0>; 238 238 239 qcom,power-source = <1>; 239 qcom,power-source = <1>; 240 240 241 multi-led { 241 multi-led { 242 color = <LED_COLOR_ID_RGB>; 242 color = <LED_COLOR_ID_RGB>; 243 function = LED_FUNCTION_STATUS; 243 function = LED_FUNCTION_STATUS; 244 244 245 #address-cells = <1>; 245 #address-cells = <1>; 246 #size-cells = <0>; 246 #size-cells = <0>; 247 247 248 led@1 { 248 led@1 { 249 reg = <1>; 249 reg = <1>; 250 color = <LED_COLOR_ID_RED>; 250 color = <LED_COLOR_ID_RED>; 251 }; 251 }; 252 252 253 led@2 { 253 led@2 { 254 reg = <2>; 254 reg = <2>; 255 color = <LED_COLOR_ID_GREEN>; 255 color = <LED_COLOR_ID_GREEN>; 256 }; 256 }; 257 257 258 led@3 { 258 led@3 { 259 reg = <3>; 259 reg = <3>; 260 color = <LED_COLOR_ID_BLUE>; 260 color = <LED_COLOR_ID_BLUE>; 261 }; 261 }; 262 }; 262 }; 263 }; 263 }; 264 - | 264 - | 265 pwm-controller { 265 pwm-controller { 266 compatible = "qcom,pm8916-pwm"; 266 compatible = "qcom,pm8916-pwm"; 267 #pwm-cells = <2>; 267 #pwm-cells = <2>; 268 }; 268 }; 269 - | 269 - | 270 #include <dt-bindings/leds/common.h> 270 #include <dt-bindings/leds/common.h> 271 271 272 led-controller { 272 led-controller { 273 compatible = "qcom,pmi632-lpg"; 273 compatible = "qcom,pmi632-lpg"; 274 #address-cells = <1>; 274 #address-cells = <1>; 275 #size-cells = <0>; 275 #size-cells = <0>; 276 #pwm-cells = <2>; 276 #pwm-cells = <2>; 277 nvmem-names = "lpg_chan_sdam"; 277 nvmem-names = "lpg_chan_sdam"; 278 nvmem = <&pmi632_sdam_7>; 278 nvmem = <&pmi632_sdam_7>; 279 qcom,pbs = <&pmi632_pbs_client3>; 279 qcom,pbs = <&pmi632_pbs_client3>; 280 280 281 led@1 { 281 led@1 { 282 reg = <1>; 282 reg = <1>; 283 color = <LED_COLOR_ID_RED>; 283 color = <LED_COLOR_ID_RED>; 284 label = "red"; 284 label = "red"; 285 }; 285 }; 286 286 287 led@2 { 287 led@2 { 288 reg = <2>; 288 reg = <2>; 289 color = <LED_COLOR_ID_GREEN>; 289 color = <LED_COLOR_ID_GREEN>; 290 label = "green"; 290 label = "green"; 291 }; 291 }; 292 292 293 led@3 { 293 led@3 { 294 reg = <3>; 294 reg = <3>; 295 color = <LED_COLOR_ID_BLUE>; 295 color = <LED_COLOR_ID_BLUE>; 296 label = "blue"; 296 label = "blue"; 297 }; 297 }; 298 }; 298 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.