~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/mfd/qcom,spmi-pmic.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: GPL-2.0-only
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/mfd/qcom,spmi-pmic.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Qualcomm SPMI PMICs multi-function device
  8 
  9 description: |
 10   Some Qualcomm PMICs used with the Snapdragon series SoCs are interfaced
 11   to the chip via the SPMI (System Power Management Interface) bus.
 12   Support for multiple independent functions are implemented by splitting the
 13   16-bit SPMI peripheral address space into 256 smaller fixed-size regions, 256 bytes
 14   each. A function can consume one or more of these fixed-size register regions.
 15 
 16   The Qualcomm SPMI series includes the PM8941, PM8841, PMA8084, PM8998 and other
 17   PMICs.  These PMICs use a "QPNP" scheme through SPMI interface.
 18   QPNP is effectively a partitioning scheme for dividing the SPMI extended
 19   register space up into logical pieces, and set of fixed register
 20   locations/definitions within these regions, with some of 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-regulator.yaml#
115 
116   regulators:
117     type: object
118     $ref: /schemas/regulator/qcom,spmi-regulator.yaml#
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.yaml#
129       - $ref: /schemas/iio/adc/qcom,spmi-rradc.yaml#
130       - $ref: /schemas/iio/adc/qcom,spmi-vadc.yaml#
131 
132   "^adc-tm@[0-9a-f]+$":
133     type: object
134     # ref depends on compatible, see allOf below
135 
136   "^audio-codec@[0-9a-f]+$":
137     type: object
138     $ref: /schemas/sound/qcom,pm8916-wcd-analog-codec.yaml#
139 
140   "^battery@[0-9a-f]+$":
141     type: object
142     oneOf:
143       - $ref: /schemas/power/supply/qcom,pm8916-bms-vm.yaml#
144 
145   "^charger@[0-9a-f]+$":
146     type: object
147     oneOf:
148       - $ref: /schemas/power/supply/qcom,pm8916-lbc.yaml#
149       - $ref: /schemas/power/supply/qcom,pm8941-charger.yaml#
150       - $ref: /schemas/power/supply/qcom,pm8941-coincell.yaml#
151       - $ref: /schemas/power/supply/qcom,pmi8998-charger.yaml#
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.yaml#
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-repeater.yaml#
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-alarm.yaml#
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.yaml#
192 
193   "^usb-vbus-regulator@[0-9a-f]+$":
194     type: object
195     $ref: /schemas/regulator/qcom,usb-vbus-regulator.yaml#
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.yaml#
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-tm-hc.yaml#
225     else:
226       patternProperties:
227         "^adc-tm@[0-9a-f]+$":
228           $ref: /schemas/thermal/qcom-spmi-adc-tm5.yaml#
229 
230 additionalProperties: false
231 
232 examples:
233   - |
234     #include <dt-bindings/spmi/spmi.h>
235     #include <dt-bindings/interrupt-controller/irq.h>
236     #include <dt-bindings/interrupt-controller/arm-gic.h>
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", "intr", "cnfg";
246         interrupt-names = "periph_irq";
247         interrupts = <GIC_SPI 481 IRQ_TYPE_LEVEL_HIGH>;
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,spmi-pmic";
257             reg = <0x2 SPMI_USID>;
258             #address-cells = <1>;
259             #size-cells = <0>;
260 
261             gpio@c000 {
262                 compatible = "qcom,pmi8998-gpio", "qcom,spmi-gpio";
263                 reg = <0xc000>;
264                 gpio-controller;
265                 gpio-ranges = <&pmi8998_gpio 0 0 14>;
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/irq.h>
276     #include <dt-bindings/interrupt-controller/arm-gic.h>
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-pmic";
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-pwrkey";
294                 interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
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_TYPE_EDGE_RISING>;
305             io-channels = <&pm6150_adc ADC5_DIE_TEMP>;
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_TYPE_EDGE_RISING>;
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_TYPE_EDGE_RISING>;
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 ADC5_AMUX_THM3_100K_PU>;
341                 qcom,ratiometric;
342                 qcom,hw-settle-time-us = <200>;
343             };
344         };
345 
346         gpio@c000 {
347             compatible = "qcom,pm6150-gpio", "qcom,spmi-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     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php