          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,pm8941",
                   "qcom,pm8841",
                   "qcom,pma8084",
                   "qcom,pm8019",
                   "qcom,pm8226",
                   "qcom,pm8110",
                   "qcom,pma8084",
                   "qcom,pmi8962",
                   "qcom,pmd9635",
                   "qcom,pm8994",
                   "qcom,pmi8994",
                   "qcom,pm8916",
                   "qcom,pm8004",
                   "qcom,pm8909",
                   "qcom,pm8950",
                   "qcom,pmi8950",
                   "qcom,pm8998",
                   "qcom,pmi8998",
                   "qcom,pm8005",
                   or generalized "qcom,spmi-pmic".
- reg:             Specifies the SPMI USID slave address for this device.
                   For more information see:
                   Documentation/devicetree/bindings/spmi/spmi.txt

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.txt
- 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";
			};
		};
	};
