Skip to content

Commit 3f5117b

Browse files
okiasrobherring
authored andcommitted
dt-bindings: mfd: convert to yaml Qualcomm SPMI PMIC
Convert Qualcomm SPMI PMIC binding to yaml format. Additional changes: - filled many missing compatibles Co-developed-by: Caleb Connolly <[email protected]> Signed-off-by: David Heidelberg <[email protected]> Reviewed-by: Rob Herring <[email protected]> Signed-off-by: Rob Herring <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent 331753f commit 3f5117b

File tree

2 files changed

+190
-94
lines changed

2 files changed

+190
-94
lines changed

Documentation/devicetree/bindings/mfd/qcom,spmi-pmic.txt

Lines changed: 0 additions & 94 deletions
This file was deleted.
Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
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 <[email protected]>
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,pm660
37+
- qcom,pm660l
38+
- qcom,pm6150
39+
- qcom,pm6150l
40+
- qcom,pm6350
41+
- qcom,pm7325
42+
- qcom,pm8004
43+
- qcom,pm8005
44+
- qcom,pm8009
45+
- qcom,pm8019
46+
- qcom,pm8110
47+
- qcom,pm8150
48+
- qcom,pm8150b
49+
- qcom,pm8150l
50+
- qcom,pm8226
51+
- qcom,pm8350
52+
- qcom,pm8350b
53+
- qcom,pm8350c
54+
- qcom,pm8841
55+
- qcom,pm8909
56+
- qcom,pm8916
57+
- qcom,pm8941
58+
- qcom,pm8950
59+
- qcom,pm8994
60+
- qcom,pm8998
61+
- qcom,pma8084
62+
- qcom,pmd9635
63+
- qcom,pmi8950
64+
- qcom,pmi8962
65+
- qcom,pmi8994
66+
- qcom,pmi8998
67+
- qcom,pmk8350
68+
- qcom,pmm8155au
69+
- qcom,pmr735a
70+
- qcom,pmr735b
71+
- qcom,pms405
72+
- qcom,pmx55
73+
- qcom,pmx65
74+
- qcom,smb2351
75+
- const: qcom,spmi-pmic
76+
77+
reg:
78+
minItems: 1
79+
maxItems: 2
80+
81+
'#address-cells':
82+
const: 1
83+
84+
'#size-cells':
85+
const: 0
86+
87+
labibb:
88+
type: object
89+
$ref: /schemas/regulator/qcom-labibb-regulator.yaml#
90+
91+
regulators:
92+
type: object
93+
$ref: /schemas/regulator/regulator.yaml#
94+
95+
patternProperties:
96+
"^adc@[0-9a-f]+$":
97+
type: object
98+
$ref: /schemas/iio/adc/qcom,spmi-vadc.yaml#
99+
100+
"^adc-tm@[0-9a-f]+$":
101+
type: object
102+
$ref: /schemas/thermal/qcom-spmi-adc-tm5.yaml#
103+
104+
"^audio-codec@[0-9a-f]+$":
105+
type: object
106+
additionalProperties: true # FIXME qcom,pm8916-wcd-analog-codec binding not converted yet
107+
108+
"extcon@[0-9a-f]+$":
109+
type: object
110+
$ref: /schemas/extcon/qcom,pm8941-misc.yaml#
111+
112+
"gpio(s)?@[0-9a-f]+$":
113+
type: object
114+
$ref: /schemas/pinctrl/qcom,pmic-gpio.yaml#
115+
116+
"pon@[0-9a-f]+$":
117+
type: object
118+
$ref: /schemas/power/reset/qcom,pon.yaml#
119+
120+
"pwm@[0-9a-f]+$":
121+
type: object
122+
$ref: /schemas/leds/leds-qcom-lpg.yaml#
123+
124+
"^rtc@[0-9a-f]+$":
125+
type: object
126+
$ref: /schemas/rtc/qcom-pm8xxx-rtc.yaml#
127+
128+
"^temp-alarm@[0-9a-f]+$":
129+
type: object
130+
$ref: /schemas/thermal/qcom,spmi-temp-alarm.yaml#
131+
132+
"^vibrator@[0-9a-f]+$":
133+
type: object
134+
additionalProperties: true # FIXME qcom,pm8916-vib binding not converted yet
135+
136+
"^mpps@[0-9a-f]+$":
137+
type: object
138+
$ref: /schemas/pinctrl/qcom,pmic-mpp.yaml#
139+
140+
"(.*)?(wled|leds)@[0-9a-f]+$":
141+
type: object
142+
$ref: /schemas/leds/backlight/qcom-wled.yaml#
143+
unevaluatedProperties: false
144+
145+
required:
146+
- compatible
147+
- reg
148+
149+
additionalProperties: false
150+
151+
examples:
152+
- |
153+
#include <dt-bindings/spmi/spmi.h>
154+
#include <dt-bindings/interrupt-controller/irq.h>
155+
#include <dt-bindings/interrupt-controller/arm-gic.h>
156+
157+
spmi@c440000 {
158+
compatible = "qcom,spmi-pmic-arb";
159+
reg = <0x0c440000 0x1100>,
160+
<0x0c600000 0x2000000>,
161+
<0x0e600000 0x100000>,
162+
<0x0e700000 0xa0000>,
163+
<0x0c40a000 0x26000>;
164+
reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
165+
interrupt-names = "periph_irq";
166+
interrupts = <GIC_SPI 481 IRQ_TYPE_LEVEL_HIGH>;
167+
qcom,ee = <0>;
168+
qcom,channel = <0>;
169+
#address-cells = <2>;
170+
#size-cells = <0>;
171+
interrupt-controller;
172+
#interrupt-cells = <4>;
173+
174+
pmi8998_lsid0: pmic@2 {
175+
compatible = "qcom,pmi8998", "qcom,spmi-pmic";
176+
reg = <0x2 SPMI_USID>;
177+
#address-cells = <1>;
178+
#size-cells = <0>;
179+
180+
pmi8998_gpio: gpios@c000 {
181+
compatible = "qcom,pmi8998-gpio", "qcom,spmi-gpio";
182+
reg = <0xc000>;
183+
gpio-controller;
184+
gpio-ranges = <&pmi8998_gpio 0 0 14>;
185+
#gpio-cells = <2>;
186+
interrupt-controller;
187+
#interrupt-cells = <2>;
188+
};
189+
};
190+
};

0 commit comments

Comments
 (0)