18c2ecf20Sopenharmony_ci Qualcomm SPMI PMICs multi-function device bindings 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciThe Qualcomm SPMI series presently includes PM8941, PM8841 and PMA8084 48c2ecf20Sopenharmony_ciPMICs. These PMICs use a QPNP scheme through SPMI interface. 58c2ecf20Sopenharmony_ciQPNP is effectively a partitioning scheme for dividing the SPMI extended 68c2ecf20Sopenharmony_ciregister space up into logical pieces, and set of fixed register 78c2ecf20Sopenharmony_cilocations/definitions within these regions, with some of these regions 88c2ecf20Sopenharmony_cispecifically used for interrupt handling. 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ciThe QPNP PMICs are used with the Qualcomm Snapdragon series SoCs, and are 118c2ecf20Sopenharmony_ciinterfaced to the chip via the SPMI (System Power Management Interface) bus. 128c2ecf20Sopenharmony_ciSupport for multiple independent functions are implemented by splitting the 138c2ecf20Sopenharmony_ci16-bit SPMI slave address space into 256 smaller fixed-size regions, 256 bytes 148c2ecf20Sopenharmony_cieach. A function can consume one or more of these fixed-size register regions. 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ciRequired properties: 178c2ecf20Sopenharmony_ci- compatible: Should contain one of: 188c2ecf20Sopenharmony_ci "qcom,pm8941", 198c2ecf20Sopenharmony_ci "qcom,pm8841", 208c2ecf20Sopenharmony_ci "qcom,pma8084", 218c2ecf20Sopenharmony_ci "qcom,pm8019", 228c2ecf20Sopenharmony_ci "qcom,pm8226", 238c2ecf20Sopenharmony_ci "qcom,pm8110", 248c2ecf20Sopenharmony_ci "qcom,pma8084", 258c2ecf20Sopenharmony_ci "qcom,pmi8962", 268c2ecf20Sopenharmony_ci "qcom,pmd9635", 278c2ecf20Sopenharmony_ci "qcom,pm8994", 288c2ecf20Sopenharmony_ci "qcom,pmi8994", 298c2ecf20Sopenharmony_ci "qcom,pm8916", 308c2ecf20Sopenharmony_ci "qcom,pm8004", 318c2ecf20Sopenharmony_ci "qcom,pm8909", 328c2ecf20Sopenharmony_ci "qcom,pm8950", 338c2ecf20Sopenharmony_ci "qcom,pmi8950", 348c2ecf20Sopenharmony_ci "qcom,pm8998", 358c2ecf20Sopenharmony_ci "qcom,pmi8998", 368c2ecf20Sopenharmony_ci "qcom,pm8005", 378c2ecf20Sopenharmony_ci or generalized "qcom,spmi-pmic". 388c2ecf20Sopenharmony_ci- reg: Specifies the SPMI USID slave address for this device. 398c2ecf20Sopenharmony_ci For more information see: 408c2ecf20Sopenharmony_ci Documentation/devicetree/bindings/spmi/spmi.yaml 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ciRequired properties for peripheral child nodes: 438c2ecf20Sopenharmony_ci- compatible: Should contain "qcom,xxx", where "xxx" is a peripheral name. 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ciOptional properties for peripheral child nodes: 468c2ecf20Sopenharmony_ci- interrupts: Interrupts are specified as a 4-tuple. For more information 478c2ecf20Sopenharmony_ci see: 488c2ecf20Sopenharmony_ci Documentation/devicetree/bindings/spmi/qcom,spmi-pmic-arb.txt 498c2ecf20Sopenharmony_ci- interrupt-names: Corresponding interrupt name to the interrupts property 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_ciEach child node of SPMI slave id represents a function of the PMIC. In the 528c2ecf20Sopenharmony_ciexample below the rtc device node represents a peripheral of pm8941 538c2ecf20Sopenharmony_ciSID = 0. The regulator device node represents a peripheral of pm8941 SID = 1. 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ciExample: 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ci spmi { 588c2ecf20Sopenharmony_ci compatible = "qcom,spmi-pmic-arb"; 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci pm8941@0 { 618c2ecf20Sopenharmony_ci compatible = "qcom,pm8941", "qcom,spmi-pmic"; 628c2ecf20Sopenharmony_ci reg = <0x0 SPMI_USID>; 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ci rtc { 658c2ecf20Sopenharmony_ci compatible = "qcom,rtc"; 668c2ecf20Sopenharmony_ci interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>; 678c2ecf20Sopenharmony_ci interrupt-names = "alarm"; 688c2ecf20Sopenharmony_ci }; 698c2ecf20Sopenharmony_ci }; 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci pm8941@1 { 728c2ecf20Sopenharmony_ci compatible = "qcom,pm8941", "qcom,spmi-pmic"; 738c2ecf20Sopenharmony_ci reg = <0x1 SPMI_USID>; 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_ci regulator { 768c2ecf20Sopenharmony_ci compatible = "qcom,regulator"; 778c2ecf20Sopenharmony_ci regulator-name = "8941_boost"; 788c2ecf20Sopenharmony_ci }; 798c2ecf20Sopenharmony_ci }; 808c2ecf20Sopenharmony_ci }; 81