xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/qcom,spmi-pmic.txt (revision d5b0e70f7e04d971691517ce1304d86a1e367e2e)
1c66ec88fSEmmanuel Vadot          Qualcomm SPMI PMICs multi-function device bindings
2c66ec88fSEmmanuel Vadot
3c66ec88fSEmmanuel VadotThe Qualcomm SPMI series presently includes PM8941, PM8841 and PMA8084
4c66ec88fSEmmanuel VadotPMICs.  These PMICs use a QPNP scheme through SPMI interface.
5c66ec88fSEmmanuel VadotQPNP is effectively a partitioning scheme for dividing the SPMI extended
6c66ec88fSEmmanuel Vadotregister space up into logical pieces, and set of fixed register
7c66ec88fSEmmanuel Vadotlocations/definitions within these regions, with some of these regions
8c66ec88fSEmmanuel Vadotspecifically used for interrupt handling.
9c66ec88fSEmmanuel Vadot
10c66ec88fSEmmanuel VadotThe QPNP PMICs are used with the Qualcomm Snapdragon series SoCs, and are
11c66ec88fSEmmanuel Vadotinterfaced to the chip via the SPMI (System Power Management Interface) bus.
12c66ec88fSEmmanuel VadotSupport for multiple independent functions are implemented by splitting the
13c66ec88fSEmmanuel Vadot16-bit SPMI slave address space into 256 smaller fixed-size regions, 256 bytes
14c66ec88fSEmmanuel Vadoteach. A function can consume one or more of these fixed-size register regions.
15c66ec88fSEmmanuel Vadot
16c66ec88fSEmmanuel VadotRequired properties:
17c66ec88fSEmmanuel Vadot- compatible:      Should contain one of:
188cc087a1SEmmanuel Vadot                   "qcom,pm660",
198cc087a1SEmmanuel Vadot                   "qcom,pm660l",
205956d97fSEmmanuel Vadot                   "qcom,pm7325",
218cc087a1SEmmanuel Vadot                   "qcom,pm8004",
228cc087a1SEmmanuel Vadot                   "qcom,pm8005",
238cc087a1SEmmanuel Vadot                   "qcom,pm8019",
248cc087a1SEmmanuel Vadot                   "qcom,pm8028",
258cc087a1SEmmanuel Vadot                   "qcom,pm8110",
268cc087a1SEmmanuel Vadot                   "qcom,pm8150",
278cc087a1SEmmanuel Vadot                   "qcom,pm8150b",
288cc087a1SEmmanuel Vadot                   "qcom,pm8150c",
298cc087a1SEmmanuel Vadot                   "qcom,pm8150l",
308cc087a1SEmmanuel Vadot                   "qcom,pm8226",
318cc087a1SEmmanuel Vadot                   "qcom,pm8350c",
328cc087a1SEmmanuel Vadot                   "qcom,pm8841",
338cc087a1SEmmanuel Vadot                   "qcom,pm8901",
348cc087a1SEmmanuel Vadot                   "qcom,pm8909",
358cc087a1SEmmanuel Vadot                   "qcom,pm8916",
368cc087a1SEmmanuel Vadot                   "qcom,pm8941",
378cc087a1SEmmanuel Vadot                   "qcom,pm8950",
38c9ccf3a3SEmmanuel Vadot                   "qcom,pm8953",
398cc087a1SEmmanuel Vadot                   "qcom,pm8994",
408cc087a1SEmmanuel Vadot                   "qcom,pm8998",
418cc087a1SEmmanuel Vadot                   "qcom,pma8084",
428cc087a1SEmmanuel Vadot                   "qcom,pmd9635",
438cc087a1SEmmanuel Vadot                   "qcom,pmi8950",
448cc087a1SEmmanuel Vadot                   "qcom,pmi8962",
458cc087a1SEmmanuel Vadot                   "qcom,pmi8994",
468cc087a1SEmmanuel Vadot                   "qcom,pmi8998",
478cc087a1SEmmanuel Vadot                   "qcom,pmk8002",
488cc087a1SEmmanuel Vadot                   "qcom,pmk8350",
495956d97fSEmmanuel Vadot                   "qcom,pmr735a",
508cc087a1SEmmanuel Vadot                   "qcom,smb2351",
51c66ec88fSEmmanuel Vadot                   or generalized "qcom,spmi-pmic".
52c66ec88fSEmmanuel Vadot- reg:             Specifies the SPMI USID slave address for this device.
53c66ec88fSEmmanuel Vadot                   For more information see:
546be33864SEmmanuel Vadot                   Documentation/devicetree/bindings/spmi/spmi.yaml
55c66ec88fSEmmanuel Vadot
56c66ec88fSEmmanuel VadotRequired properties for peripheral child nodes:
57c66ec88fSEmmanuel Vadot- compatible:      Should contain "qcom,xxx", where "xxx" is a peripheral name.
58c66ec88fSEmmanuel Vadot
59c66ec88fSEmmanuel VadotOptional properties for peripheral child nodes:
60c66ec88fSEmmanuel Vadot- interrupts:      Interrupts are specified as a 4-tuple. For more information
61c66ec88fSEmmanuel Vadot                   see:
62*d5b0e70fSEmmanuel Vadot                   Documentation/devicetree/bindings/spmi/qcom,spmi-pmic-arb.yaml
63c66ec88fSEmmanuel Vadot- interrupt-names: Corresponding interrupt name to the interrupts property
64c66ec88fSEmmanuel Vadot
65c66ec88fSEmmanuel VadotEach child node of SPMI slave id represents a function of the PMIC. In the
66c66ec88fSEmmanuel Vadotexample below the rtc device node represents a peripheral of pm8941
67c66ec88fSEmmanuel VadotSID = 0. The regulator device node represents a peripheral of pm8941 SID = 1.
68c66ec88fSEmmanuel Vadot
69c66ec88fSEmmanuel VadotExample:
70c66ec88fSEmmanuel Vadot
71c66ec88fSEmmanuel Vadot	spmi {
72c66ec88fSEmmanuel Vadot		compatible = "qcom,spmi-pmic-arb";
73c66ec88fSEmmanuel Vadot
74c66ec88fSEmmanuel Vadot		pm8941@0 {
75c66ec88fSEmmanuel Vadot			compatible = "qcom,pm8941", "qcom,spmi-pmic";
76c66ec88fSEmmanuel Vadot			reg = <0x0 SPMI_USID>;
77c66ec88fSEmmanuel Vadot
78c66ec88fSEmmanuel Vadot			rtc {
79c66ec88fSEmmanuel Vadot				compatible = "qcom,rtc";
80c66ec88fSEmmanuel Vadot				interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
81c66ec88fSEmmanuel Vadot				interrupt-names = "alarm";
82c66ec88fSEmmanuel Vadot			};
83c66ec88fSEmmanuel Vadot		};
84c66ec88fSEmmanuel Vadot
85c66ec88fSEmmanuel Vadot		pm8941@1 {
86c66ec88fSEmmanuel Vadot			compatible = "qcom,pm8941", "qcom,spmi-pmic";
87c66ec88fSEmmanuel Vadot			reg = <0x1 SPMI_USID>;
88c66ec88fSEmmanuel Vadot
89c66ec88fSEmmanuel Vadot			regulator {
90c66ec88fSEmmanuel Vadot				compatible = "qcom,regulator";
91c66ec88fSEmmanuel Vadot				regulator-name = "8941_boost";
92c66ec88fSEmmanuel Vadot			};
93c66ec88fSEmmanuel Vadot		};
94c66ec88fSEmmanuel Vadot	};
95