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