152077d82SDavid Heidelberg# SPDX-License-Identifier: GPL-2.0-only 252077d82SDavid Heidelberg%YAML 1.2 352077d82SDavid Heidelberg--- 452077d82SDavid Heidelberg$id: http://devicetree.org/schemas/spmi/qcom,spmi-pmic-arb.yaml# 552077d82SDavid Heidelberg$schema: http://devicetree.org/meta-schemas/core.yaml# 652077d82SDavid Heidelberg 752077d82SDavid Heidelbergtitle: Qualcomm SPMI Controller (PMIC Arbiter) 852077d82SDavid Heidelberg 952077d82SDavid Heidelbergmaintainers: 1052077d82SDavid Heidelberg - Stephen Boyd <sboyd@kernel.org> 1152077d82SDavid Heidelberg 1252077d82SDavid Heidelbergdescription: | 1352077d82SDavid Heidelberg The SPMI PMIC Arbiter is found on Snapdragon chipsets. It is an SPMI 1452077d82SDavid Heidelberg controller with wrapping arbitration logic to allow for multiple on-chip 1552077d82SDavid Heidelberg devices to control a single SPMI master. 1652077d82SDavid Heidelberg 1752077d82SDavid Heidelberg The PMIC Arbiter can also act as an interrupt controller, providing interrupts 1852077d82SDavid Heidelberg to slave devices. 1952077d82SDavid Heidelberg 2052077d82SDavid HeidelbergallOf: 2152077d82SDavid Heidelberg - $ref: spmi.yaml 2252077d82SDavid Heidelberg 2352077d82SDavid Heidelbergproperties: 2452077d82SDavid Heidelberg compatible: 2552077d82SDavid Heidelberg const: qcom,spmi-pmic-arb 2652077d82SDavid Heidelberg 2752077d82SDavid Heidelberg reg: 2852077d82SDavid Heidelberg oneOf: 2952077d82SDavid Heidelberg - items: # V1 3052077d82SDavid Heidelberg - description: core registers 3152077d82SDavid Heidelberg - description: interrupt controller registers 3252077d82SDavid Heidelberg - description: configuration registers 3352077d82SDavid Heidelberg - items: # V2 3452077d82SDavid Heidelberg - description: core registers 3552077d82SDavid Heidelberg - description: tx-channel per virtual slave regosters 3652077d82SDavid Heidelberg - description: rx-channel (called observer) per virtual slave registers 3752077d82SDavid Heidelberg - description: interrupt controller registers 3852077d82SDavid Heidelberg - description: configuration registers 3952077d82SDavid Heidelberg 4052077d82SDavid Heidelberg reg-names: 4152077d82SDavid Heidelberg oneOf: 4252077d82SDavid Heidelberg - items: 4352077d82SDavid Heidelberg - const: core 4452077d82SDavid Heidelberg - const: intr 4552077d82SDavid Heidelberg - const: cnfg 4652077d82SDavid Heidelberg - items: 4752077d82SDavid Heidelberg - const: core 4852077d82SDavid Heidelberg - const: chnls 4952077d82SDavid Heidelberg - const: obsrvr 5052077d82SDavid Heidelberg - const: intr 5152077d82SDavid Heidelberg - const: cnfg 5252077d82SDavid Heidelberg 5352077d82SDavid Heidelberg interrupts: 5452077d82SDavid Heidelberg maxItems: 1 5552077d82SDavid Heidelberg 5652077d82SDavid Heidelberg interrupt-names: 5752077d82SDavid Heidelberg const: periph_irq 5852077d82SDavid Heidelberg 5952077d82SDavid Heidelberg interrupt-controller: true 6052077d82SDavid Heidelberg 6152077d82SDavid Heidelberg '#address-cells': true 6252077d82SDavid Heidelberg 6352077d82SDavid Heidelberg '#interrupt-cells': 6452077d82SDavid Heidelberg const: 4 6552077d82SDavid Heidelberg description: | 6652077d82SDavid Heidelberg cell 1: slave ID for the requested interrupt (0-15) 6752077d82SDavid Heidelberg cell 2: peripheral ID for requested interrupt (0-255) 6852077d82SDavid Heidelberg cell 3: the requested peripheral interrupt (0-7) 6952077d82SDavid Heidelberg cell 4: interrupt flags indicating level-sense information, 7052077d82SDavid Heidelberg as defined in dt-bindings/interrupt-controller/irq.h 7152077d82SDavid Heidelberg 7252077d82SDavid Heidelberg '#size-cells': true 7352077d82SDavid Heidelberg 7452077d82SDavid Heidelberg qcom,ee: 7552077d82SDavid Heidelberg $ref: /schemas/types.yaml#/definitions/uint32 7652077d82SDavid Heidelberg minimum: 0 7752077d82SDavid Heidelberg maximum: 5 7852077d82SDavid Heidelberg description: > 7952077d82SDavid Heidelberg indicates the active Execution Environment identifier 8052077d82SDavid Heidelberg 8152077d82SDavid Heidelberg qcom,channel: 8252077d82SDavid Heidelberg $ref: /schemas/types.yaml#/definitions/uint32 8352077d82SDavid Heidelberg minimum: 0 8452077d82SDavid Heidelberg maximum: 5 8552077d82SDavid Heidelberg description: > 8652077d82SDavid Heidelberg which of the PMIC Arb provided channels to use for accesses 8752077d82SDavid Heidelberg 88*2d2879e1SVinod Koul qcom,bus-id: 89*2d2879e1SVinod Koul $ref: /schemas/types.yaml#/definitions/uint32 90*2d2879e1SVinod Koul minimum: 0 91*2d2879e1SVinod Koul maximum: 1 92*2d2879e1SVinod Koul description: > 93*2d2879e1SVinod Koul SPMI bus instance. only applicable to PMIC arbiter version 7 and beyond. 94*2d2879e1SVinod Koul Supported values, 0 = primary bus, 1 = secondary bus 95*2d2879e1SVinod Koul 9652077d82SDavid Heidelbergrequired: 9752077d82SDavid Heidelberg - compatible 9852077d82SDavid Heidelberg - reg-names 9952077d82SDavid Heidelberg - qcom,ee 10052077d82SDavid Heidelberg - qcom,channel 10152077d82SDavid Heidelberg 10252077d82SDavid HeidelbergunevaluatedProperties: false 10352077d82SDavid Heidelberg 10452077d82SDavid Heidelbergexamples: 10552077d82SDavid Heidelberg - | 10652077d82SDavid Heidelberg spmi@fc4cf000 { 10752077d82SDavid Heidelberg compatible = "qcom,spmi-pmic-arb"; 10852077d82SDavid Heidelberg reg-names = "core", "intr", "cnfg"; 10952077d82SDavid Heidelberg reg = <0xfc4cf000 0x1000>, 11052077d82SDavid Heidelberg <0xfc4cb000 0x1000>, 11152077d82SDavid Heidelberg <0xfc4ca000 0x1000>; 11252077d82SDavid Heidelberg 11352077d82SDavid Heidelberg interrupt-names = "periph_irq"; 11452077d82SDavid Heidelberg interrupts = <0 190 0>; 11552077d82SDavid Heidelberg 11652077d82SDavid Heidelberg qcom,ee = <0>; 11752077d82SDavid Heidelberg qcom,channel = <0>; 11852077d82SDavid Heidelberg 11952077d82SDavid Heidelberg #address-cells = <2>; 12052077d82SDavid Heidelberg #size-cells = <0>; 12152077d82SDavid Heidelberg 12252077d82SDavid Heidelberg interrupt-controller; 12352077d82SDavid Heidelberg #interrupt-cells = <4>; 124*2d2879e1SVinod Koul 125*2d2879e1SVinod Koul qcom,bus-id = <0>; 12652077d82SDavid Heidelberg }; 12752077d82SDavid Heidelberg 128