# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/spmi/qcom,x1e80100-spmi-pmic-arb.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Qualcomm X1E80100 SPMI Controller (PMIC Arbiter v7) maintainers: - Stephen Boyd description: | The X1E80100 SPMI PMIC Arbiter implements HW version 7 and it's an SPMI controller with wrapping arbitration logic to allow for multiple on-chip devices to control up to 2 SPMI separate buses. The PMIC Arbiter can also act as an interrupt controller, providing interrupts to slave devices. properties: compatible: const: qcom,x1e80100-spmi-pmic-arb reg: items: - description: core registers - description: tx-channel per virtual slave registers - description: rx-channel (called observer) per virtual slave registers reg-names: items: - const: core - const: chnls - const: obsrvr ranges: true '#address-cells': const: 2 '#size-cells': const: 2 qcom,ee: $ref: /schemas/types.yaml#/definitions/uint32 minimum: 0 maximum: 5 description: > indicates the active Execution Environment identifier qcom,channel: $ref: /schemas/types.yaml#/definitions/uint32 minimum: 0 maximum: 5 description: > which of the PMIC Arb provided channels to use for accesses patternProperties: "^spmi@[a-f0-9]+$": type: object $ref: /schemas/spmi/spmi.yaml unevaluatedProperties: false properties: reg: items: - description: configuration registers - description: interrupt controller registers reg-names: items: - const: cnfg - const: intr interrupts: maxItems: 1 interrupt-names: const: periph_irq interrupt-controller: true '#interrupt-cells': const: 4 description: | cell 1: slave ID for the requested interrupt (0-15) cell 2: peripheral ID for requested interrupt (0-255) cell 3: the requested peripheral interrupt (0-7) cell 4: interrupt flags indicating level-sense information, as defined in dt-bindings/interrupt-controller/irq.h required: - compatible - reg-names - qcom,ee - qcom,channel additionalProperties: false examples: - | #include soc { #address-cells = <2>; #size-cells = <2>; spmi: arbiter@c400000 { compatible = "qcom,x1e80100-spmi-pmic-arb"; reg = <0 0x0c400000 0 0x3000>, <0 0x0c500000 0 0x4000000>, <0 0x0c440000 0 0x80000>; reg-names = "core", "chnls", "obsrvr"; qcom,ee = <0>; qcom,channel = <0>; #address-cells = <2>; #size-cells = <2>; ranges; spmi_bus0: spmi@c42d000 { reg = <0 0x0c42d000 0 0x4000>, <0 0x0c4c0000 0 0x10000>; reg-names = "cnfg", "intr"; interrupt-names = "periph_irq"; interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>; interrupt-controller; #interrupt-cells = <4>; #address-cells = <2>; #size-cells = <0>; }; }; };