mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-12 14:23:00 +00:00
e555d4caac
Since both pm8916.c and pm8916_gpio.c are already supporting multiple Qcom SoCs, it makes sense to rename these drivers to pmic_qcom.c and qcom_pmic_gpio.c respectively. Also, these driver can be extended to support additional functionality if required for other Qcom SoCs. Along with this import latest DT binding: qcom,spmi-pmic.txt from Linux kernel and thereby remove pm8916.txt. Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
94 lines
3.3 KiB
Text
94 lines
3.3 KiB
Text
Qualcomm SPMI PMICs multi-function device bindings
|
|
|
|
The Qualcomm SPMI series presently includes PM8941, PM8841 and PMA8084
|
|
PMICs. These PMICs use a QPNP scheme through SPMI interface.
|
|
QPNP is effectively a partitioning scheme for dividing the SPMI extended
|
|
register space up into logical pieces, and set of fixed register
|
|
locations/definitions within these regions, with some of these regions
|
|
specifically used for interrupt handling.
|
|
|
|
The QPNP PMICs are used with the Qualcomm Snapdragon series SoCs, and are
|
|
interfaced to the chip via the SPMI (System Power Management Interface) bus.
|
|
Support for multiple independent functions are implemented by splitting the
|
|
16-bit SPMI slave address space into 256 smaller fixed-size regions, 256 bytes
|
|
each. A function can consume one or more of these fixed-size register regions.
|
|
|
|
Required properties:
|
|
- compatible: Should contain one of:
|
|
"qcom,pm660",
|
|
"qcom,pm660l",
|
|
"qcom,pm7325",
|
|
"qcom,pm8004",
|
|
"qcom,pm8005",
|
|
"qcom,pm8019",
|
|
"qcom,pm8028",
|
|
"qcom,pm8110",
|
|
"qcom,pm8150",
|
|
"qcom,pm8150b",
|
|
"qcom,pm8150c",
|
|
"qcom,pm8150l",
|
|
"qcom,pm8226",
|
|
"qcom,pm8350c",
|
|
"qcom,pm8841",
|
|
"qcom,pm8901",
|
|
"qcom,pm8909",
|
|
"qcom,pm8916",
|
|
"qcom,pm8941",
|
|
"qcom,pm8950",
|
|
"qcom,pm8953",
|
|
"qcom,pm8994",
|
|
"qcom,pm8998",
|
|
"qcom,pma8084",
|
|
"qcom,pmd9635",
|
|
"qcom,pmi8950",
|
|
"qcom,pmi8962",
|
|
"qcom,pmi8994",
|
|
"qcom,pmi8998",
|
|
"qcom,pmk8002",
|
|
"qcom,pmk8350",
|
|
"qcom,pmr735a",
|
|
"qcom,smb2351",
|
|
or generalized "qcom,spmi-pmic".
|
|
- reg: Specifies the SPMI USID slave address for this device.
|
|
For more information see:
|
|
Documentation/devicetree/bindings/spmi/spmi.yaml
|
|
|
|
Required properties for peripheral child nodes:
|
|
- compatible: Should contain "qcom,xxx", where "xxx" is a peripheral name.
|
|
|
|
Optional properties for peripheral child nodes:
|
|
- interrupts: Interrupts are specified as a 4-tuple. For more information
|
|
see:
|
|
Documentation/devicetree/bindings/spmi/qcom,spmi-pmic-arb.yaml
|
|
- interrupt-names: Corresponding interrupt name to the interrupts property
|
|
|
|
Each child node of SPMI slave id represents a function of the PMIC. In the
|
|
example below the rtc device node represents a peripheral of pm8941
|
|
SID = 0. The regulator device node represents a peripheral of pm8941 SID = 1.
|
|
|
|
Example:
|
|
|
|
spmi {
|
|
compatible = "qcom,spmi-pmic-arb";
|
|
|
|
pm8941@0 {
|
|
compatible = "qcom,pm8941", "qcom,spmi-pmic";
|
|
reg = <0x0 SPMI_USID>;
|
|
|
|
rtc {
|
|
compatible = "qcom,rtc";
|
|
interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
|
|
interrupt-names = "alarm";
|
|
};
|
|
};
|
|
|
|
pm8941@1 {
|
|
compatible = "qcom,pm8941", "qcom,spmi-pmic";
|
|
reg = <0x1 SPMI_USID>;
|
|
|
|
regulator {
|
|
compatible = "qcom,regulator";
|
|
regulator-name = "8941_boost";
|
|
};
|
|
};
|
|
};
|