18c2ecf20Sopenharmony_ciQualcomm SPMI Controller (PMIC Arbiter)
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciThe SPMI PMIC Arbiter is found on Snapdragon chipsets.  It is an SPMI
48c2ecf20Sopenharmony_cicontroller with wrapping arbitration logic to allow for multiple on-chip
58c2ecf20Sopenharmony_cidevices to control a single SPMI master.
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ciThe PMIC Arbiter can also act as an interrupt controller, providing interrupts
88c2ecf20Sopenharmony_cito slave devices.
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ciSee Documentation/devicetree/bindings/spmi/spmi.yaml for the generic SPMI
118c2ecf20Sopenharmony_cicontroller binding requirements for child nodes.
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ciSee Documentation/devicetree/bindings/interrupt-controller/interrupts.txt for
148c2ecf20Sopenharmony_cigeneric interrupt controller binding documentation.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ciRequired properties:
178c2ecf20Sopenharmony_ci- compatible : should be "qcom,spmi-pmic-arb".
188c2ecf20Sopenharmony_ci- reg-names  : must contain:
198c2ecf20Sopenharmony_ci     "core" - core registers
208c2ecf20Sopenharmony_ci     "intr" - interrupt controller registers
218c2ecf20Sopenharmony_ci     "cnfg" - configuration registers
228c2ecf20Sopenharmony_ci   Registers used only for V2 PMIC Arbiter:
238c2ecf20Sopenharmony_ci     "chnls"  - tx-channel per virtual slave registers.
248c2ecf20Sopenharmony_ci     "obsrvr" - rx-channel (called observer) per virtual slave registers.
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci- reg : address + size pairs describing the PMIC arb register sets; order must
278c2ecf20Sopenharmony_ci        correspond with the order of entries in reg-names
288c2ecf20Sopenharmony_ci- #address-cells : must be set to 2
298c2ecf20Sopenharmony_ci- #size-cells : must be set to 0
308c2ecf20Sopenharmony_ci- qcom,ee : indicates the active Execution Environment identifier (0-5)
318c2ecf20Sopenharmony_ci- qcom,channel : which of the PMIC Arb provided channels to use for accesses (0-5)
328c2ecf20Sopenharmony_ci- interrupts : interrupt list for the PMIC Arb controller, must contain a
338c2ecf20Sopenharmony_ci               single interrupt entry for the peripheral interrupt
348c2ecf20Sopenharmony_ci- interrupt-names : corresponding interrupt names for the interrupts
358c2ecf20Sopenharmony_ci                    listed in the 'interrupts' property, must contain:
368c2ecf20Sopenharmony_ci     "periph_irq" - summary interrupt for PMIC peripherals
378c2ecf20Sopenharmony_ci- interrupt-controller : boolean indicator that the PMIC arbiter is an interrupt controller
388c2ecf20Sopenharmony_ci- #interrupt-cells :  must be set to 4. Interrupts are specified as a 4-tuple:
398c2ecf20Sopenharmony_ci    cell 1: slave ID for the requested interrupt (0-15)
408c2ecf20Sopenharmony_ci    cell 2: peripheral ID for requested interrupt (0-255)
418c2ecf20Sopenharmony_ci    cell 3: the requested peripheral interrupt (0-7)
428c2ecf20Sopenharmony_ci    cell 4: interrupt flags indicating level-sense information, as defined in
438c2ecf20Sopenharmony_ci            dt-bindings/interrupt-controller/irq.h
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ciExample:
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci	spmi {
488c2ecf20Sopenharmony_ci		compatible = "qcom,spmi-pmic-arb";
498c2ecf20Sopenharmony_ci		reg-names = "core", "intr", "cnfg";
508c2ecf20Sopenharmony_ci		reg = <0xfc4cf000 0x1000>,
518c2ecf20Sopenharmony_ci		      <0xfc4cb000 0x1000>,
528c2ecf20Sopenharmony_ci		      <0xfc4ca000 0x1000>;
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci		interrupt-names = "periph_irq";
558c2ecf20Sopenharmony_ci		interrupts = <0 190 0>;
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci		qcom,ee = <0>;
588c2ecf20Sopenharmony_ci		qcom,channel = <0>;
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ci		#address-cells = <2>;
618c2ecf20Sopenharmony_ci		#size-cells = <0>;
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci		interrupt-controller;
648c2ecf20Sopenharmony_ci		#interrupt-cells = <4>;
658c2ecf20Sopenharmony_ci	};
66