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