1 # SPDX-License-Identifier: GPL-2.0-only 2 %YAML 1.2 3 --- 4 $id: http://devicetree.org/schemas/mfd/qcom,sp 5 $schema: http://devicetree.org/meta-schemas/co 6 7 title: Qualcomm SPMI PMICs multi-function devi 8 9 description: | 10 Some Qualcomm PMICs used with the Snapdragon 11 to the chip via the SPMI (System Power Manag 12 Support for multiple independent functions a 13 16-bit SPMI peripheral address space into 25 14 each. A function can consume one or more of 15 16 The Qualcomm SPMI series includes the PM8941 17 PMICs. These PMICs use a "QPNP" scheme thro 18 QPNP is effectively a partitioning scheme fo 19 register space up into logical pieces, and s 20 locations/definitions within these regions, 21 specifically used for interrupt handling. 22 23 maintainers: 24 - Stephen Boyd <sboyd@kernel.org> 25 26 properties: 27 $nodename: 28 oneOf: 29 - pattern: '^pmic@.*$' 30 - pattern: '^pm(a|s)?[0-9]*@.*$' 31 deprecated: true 32 33 compatible: 34 items: 35 - enum: 36 - qcom,pm2250 37 - qcom,pm6125 38 - qcom,pm6150 39 - qcom,pm6150l 40 - qcom,pm6350 41 - qcom,pm660 42 - qcom,pm660l 43 - qcom,pm7250b 44 - qcom,pm7550ba 45 - qcom,pm7325 46 - qcom,pm8004 47 - qcom,pm8005 48 - qcom,pm8009 49 - qcom,pm8010 50 - qcom,pm8019 51 - qcom,pm8028 52 - qcom,pm8110 53 - qcom,pm8150 54 - qcom,pm8150b 55 - qcom,pm8150c 56 - qcom,pm8150l 57 - qcom,pm8226 58 - qcom,pm8350 59 - qcom,pm8350b 60 - qcom,pm8350c 61 - qcom,pm8450 62 - qcom,pm8550 63 - qcom,pm8550b 64 - qcom,pm8550ve 65 - qcom,pm8550vs 66 - qcom,pm8841 67 - qcom,pm8909 68 - qcom,pm8916 69 - qcom,pm8937 70 - qcom,pm8941 71 - qcom,pm8950 72 - qcom,pm8953 73 - qcom,pm8994 74 - qcom,pm8998 75 - qcom,pma8084 76 - qcom,pmc8180 77 - qcom,pmc8180c 78 - qcom,pmc8380 79 - qcom,pmd9635 80 - qcom,pmi632 81 - qcom,pmi8950 82 - qcom,pmi8962 83 - qcom,pmi8994 84 - qcom,pmi8998 85 - qcom,pmk8002 86 - qcom,pmk8350 87 - qcom,pmk8550 88 - qcom,pmm8155au 89 - qcom,pmm8654au 90 - qcom,pmp8074 91 - qcom,pmr735a 92 - qcom,pmr735b 93 - qcom,pmr735d 94 - qcom,pms405 95 - qcom,pmx55 96 - qcom,pmx65 97 - qcom,pmx75 98 - qcom,smb2351 99 - qcom,smb2360 100 - const: qcom,spmi-pmic 101 102 reg: 103 minItems: 1 104 maxItems: 2 105 106 '#address-cells': 107 const: 1 108 109 '#size-cells': 110 const: 0 111 112 labibb: 113 type: object 114 $ref: /schemas/regulator/qcom-labibb-regul 115 116 regulators: 117 type: object 118 $ref: /schemas/regulator/qcom,spmi-regulat 119 120 pwm: 121 type: object 122 $ref: /schemas/leds/leds-qcom-lpg.yaml# 123 124 patternProperties: 125 "^adc@[0-9a-f]+$": 126 type: object 127 oneOf: 128 - $ref: /schemas/iio/adc/qcom,spmi-iadc. 129 - $ref: /schemas/iio/adc/qcom,spmi-rradc 130 - $ref: /schemas/iio/adc/qcom,spmi-vadc. 131 132 "^adc-tm@[0-9a-f]+$": 133 type: object 134 # ref depends on compatible, see allOf bel 135 136 "^audio-codec@[0-9a-f]+$": 137 type: object 138 $ref: /schemas/sound/qcom,pm8916-wcd-analo 139 140 "^battery@[0-9a-f]+$": 141 type: object 142 oneOf: 143 - $ref: /schemas/power/supply/qcom,pm891 144 145 "^charger@[0-9a-f]+$": 146 type: object 147 oneOf: 148 - $ref: /schemas/power/supply/qcom,pm891 149 - $ref: /schemas/power/supply/qcom,pm894 150 - $ref: /schemas/power/supply/qcom,pm894 151 - $ref: /schemas/power/supply/qcom,pmi89 152 153 "gpio@[0-9a-f]+$": 154 type: object 155 $ref: /schemas/pinctrl/qcom,pmic-gpio.yaml 156 157 "^led-controller@[0-9a-f]+$": 158 type: object 159 $ref: /schemas/leds/qcom,spmi-flash-led.ya 160 161 "^nvram@[0-9a-f]+$": 162 type: object 163 $ref: /schemas/nvmem/qcom,spmi-sdam.yaml# 164 165 "^pbs@[0-9a-f]+$": 166 type: object 167 $ref: /schemas/soc/qcom/qcom,pbs.yaml# 168 169 "phy@[0-9a-f]+$": 170 type: object 171 $ref: /schemas/phy/qcom,snps-eusb2-repeate 172 173 "pon@[0-9a-f]+$": 174 type: object 175 $ref: /schemas/power/reset/qcom,pon.yaml# 176 177 "^rtc@[0-9a-f]+$": 178 type: object 179 $ref: /schemas/rtc/qcom-pm8xxx-rtc.yaml# 180 181 "^temp-alarm@[0-9a-f]+$": 182 type: object 183 $ref: /schemas/thermal/qcom,spmi-temp-alar 184 185 "^typec@[0-9a-f]+$": 186 type: object 187 $ref: /schemas/usb/qcom,pmic-typec.yaml# 188 189 "^usb-detect@[0-9a-f]+$": 190 type: object 191 $ref: /schemas/extcon/qcom,pm8941-misc.yam 192 193 "^usb-vbus-regulator@[0-9a-f]+$": 194 type: object 195 $ref: /schemas/regulator/qcom,usb-vbus-reg 196 197 "^vibrator@[0-9a-f]+$": 198 type: object 199 $ref: /schemas/input/qcom,pm8xxx-vib.yaml# 200 201 "^mpps@[0-9a-f]+$": 202 type: object 203 $ref: /schemas/pinctrl/qcom,pmic-mpp.yaml# 204 205 "(.*)?(wled|leds)@[0-9a-f]+$": 206 type: object 207 $ref: /schemas/leds/backlight/qcom-wled.ya 208 unevaluatedProperties: false 209 210 required: 211 - compatible 212 - reg 213 214 allOf: 215 - if: 216 properties: 217 compatible: 218 contains: 219 enum: 220 - qcom,pm8998 221 then: 222 patternProperties: 223 "^adc-tm@[0-9a-f]+$": 224 $ref: /schemas/thermal/qcom-spmi-adc 225 else: 226 patternProperties: 227 "^adc-tm@[0-9a-f]+$": 228 $ref: /schemas/thermal/qcom-spmi-adc 229 230 additionalProperties: false 231 232 examples: 233 - | 234 #include <dt-bindings/spmi/spmi.h> 235 #include <dt-bindings/interrupt-controller 236 #include <dt-bindings/interrupt-controller 237 238 spmi@c440000 { 239 compatible = "qcom,spmi-pmic-arb"; 240 reg = <0x0c440000 0x1100>, 241 <0x0c600000 0x2000000>, 242 <0x0e600000 0x100000>, 243 <0x0e700000 0xa0000>, 244 <0x0c40a000 0x26000>; 245 reg-names = "core", "chnls", "obsrvr", 246 interrupt-names = "periph_irq"; 247 interrupts = <GIC_SPI 481 IRQ_TYPE_LEV 248 qcom,ee = <0>; 249 qcom,channel = <0>; 250 #address-cells = <2>; 251 #size-cells = <0>; 252 interrupt-controller; 253 #interrupt-cells = <4>; 254 255 pmic@2 { 256 compatible = "qcom,pmi8998", "qcom 257 reg = <0x2 SPMI_USID>; 258 #address-cells = <1>; 259 #size-cells = <0>; 260 261 gpio@c000 { 262 compatible = "qcom,pmi8998-gpi 263 reg = <0xc000>; 264 gpio-controller; 265 gpio-ranges = <&pmi8998_gpio 0 266 #gpio-cells = <2>; 267 interrupt-controller; 268 #interrupt-cells = <2>; 269 }; 270 }; 271 }; 272 273 - | 274 #include <dt-bindings/input/input.h> 275 #include <dt-bindings/interrupt-controller 276 #include <dt-bindings/interrupt-controller 277 #include <dt-bindings/iio/qcom,spmi-vadc.h 278 #include <dt-bindings/spmi/spmi.h> 279 280 pmic@0 { 281 compatible = "qcom,pm6150", "qcom,spmi 282 reg = <0x0 SPMI_USID>; 283 #address-cells = <1>; 284 #size-cells = <0>; 285 286 pon@800 { 287 compatible = "qcom,pm8998-pon"; 288 reg = <0x800>; 289 mode-bootloader = <0x2>; 290 mode-recovery = <0x1>; 291 292 pwrkey { 293 compatible = "qcom,pm8941-pwrk 294 interrupts = <0x0 0x8 0 IRQ_TY 295 debounce = <15625>; 296 bias-pull-up; 297 linux,code = <KEY_POWER>; 298 }; 299 }; 300 301 temp-alarm@2400 { 302 compatible = "qcom,spmi-temp-alarm 303 reg = <0x2400>; 304 interrupts = <0x0 0x24 0x0 IRQ_TYP 305 io-channels = <&pm6150_adc ADC5_DI 306 io-channel-names = "thermal"; 307 #thermal-sensor-cells = <0>; 308 }; 309 310 pm6150_adc: adc@3100 { 311 compatible = "qcom,spmi-adc5"; 312 reg = <0x3100>; 313 interrupts = <0x0 0x31 0x0 IRQ_TYP 314 #address-cells = <1>; 315 #size-cells = <0>; 316 #io-channel-cells = <1>; 317 318 channel@6 { 319 reg = <ADC5_DIE_TEMP>; 320 label = "die_temp"; 321 }; 322 323 channel@4f { 324 reg = <ADC5_AMUX_THM3_100K_PU> 325 qcom,ratiometric; 326 qcom,hw-settle-time = <200>; 327 }; 328 }; 329 330 adc-tm@3500 { 331 compatible = "qcom,spmi-adc-tm5"; 332 reg = <0x3500>; 333 interrupts = <0x0 0x35 0x0 IRQ_TYP 334 #thermal-sensor-cells = <1>; 335 #address-cells = <1>; 336 #size-cells = <0>; 337 338 charger-thermistor@0 { 339 reg = <0>; 340 io-channels = <&pm6150_adc ADC 341 qcom,ratiometric; 342 qcom,hw-settle-time-us = <200> 343 }; 344 }; 345 346 gpio@c000 { 347 compatible = "qcom,pm6150-gpio", " 348 reg = <0xc000>; 349 gpio-controller; 350 gpio-ranges = <&pm6150_gpio 0 0 10 351 #gpio-cells = <2>; 352 interrupt-controller; 353 #interrupt-cells = <2>; 354 }; 355 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.