1*13ef76d8SLuca Weiss# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2*13ef76d8SLuca Weiss%YAML 1.2 3*13ef76d8SLuca Weiss--- 4*13ef76d8SLuca Weiss$id: http://devicetree.org/schemas/interrupt-controller/qcom,pdc.yaml# 5*13ef76d8SLuca Weiss$schema: http://devicetree.org/meta-schemas/core.yaml# 6*13ef76d8SLuca Weiss 7*13ef76d8SLuca Weisstitle: PDC interrupt controller 8*13ef76d8SLuca Weiss 9*13ef76d8SLuca Weissmaintainers: 10*13ef76d8SLuca Weiss - Bjorn Andersson <bjorn.andersson@linaro.org> 11*13ef76d8SLuca Weiss 12*13ef76d8SLuca Weissdescription: | 13*13ef76d8SLuca Weiss Qualcomm Technologies Inc. SoCs based on the RPM Hardened architecture have a 14*13ef76d8SLuca Weiss Power Domain Controller (PDC) that is on always-on domain. In addition to 15*13ef76d8SLuca Weiss providing power control for the power domains, the hardware also has an 16*13ef76d8SLuca Weiss interrupt controller that can be used to help detect edge low interrupts as 17*13ef76d8SLuca Weiss well detect interrupts when the GIC is non-operational. 18*13ef76d8SLuca Weiss 19*13ef76d8SLuca Weiss GIC is parent interrupt controller at the highest level. Platform interrupt 20*13ef76d8SLuca Weiss controller PDC is next in hierarchy, followed by others. Drivers requiring 21*13ef76d8SLuca Weiss wakeup capabilities of their device interrupts routed through the PDC, must 22*13ef76d8SLuca Weiss specify PDC as their interrupt controller and request the PDC port associated 23*13ef76d8SLuca Weiss with the GIC interrupt. See example below. 24*13ef76d8SLuca Weiss 25*13ef76d8SLuca Weissproperties: 26*13ef76d8SLuca Weiss compatible: 27*13ef76d8SLuca Weiss items: 28*13ef76d8SLuca Weiss - enum: 29*13ef76d8SLuca Weiss - qcom,sc7180-pdc 30*13ef76d8SLuca Weiss - qcom,sc7280-pdc 31*13ef76d8SLuca Weiss - qcom,sdm845-pdc 32*13ef76d8SLuca Weiss - qcom,sm6350-pdc 33*13ef76d8SLuca Weiss - qcom,sm8150-pdc 34*13ef76d8SLuca Weiss - qcom,sm8250-pdc 35*13ef76d8SLuca Weiss - qcom,sm8350-pdc 36*13ef76d8SLuca Weiss - const: qcom,pdc 37*13ef76d8SLuca Weiss 38*13ef76d8SLuca Weiss reg: 39*13ef76d8SLuca Weiss minItems: 1 40*13ef76d8SLuca Weiss items: 41*13ef76d8SLuca Weiss - description: PDC base register region 42*13ef76d8SLuca Weiss - description: Edge or Level config register for SPI interrupts 43*13ef76d8SLuca Weiss 44*13ef76d8SLuca Weiss '#interrupt-cells': 45*13ef76d8SLuca Weiss const: 2 46*13ef76d8SLuca Weiss 47*13ef76d8SLuca Weiss interrupt-controller: true 48*13ef76d8SLuca Weiss 49*13ef76d8SLuca Weiss qcom,pdc-ranges: 50*13ef76d8SLuca Weiss $ref: /schemas/types.yaml#/definitions/uint32-matrix 51*13ef76d8SLuca Weiss minItems: 1 52*13ef76d8SLuca Weiss maxItems: 32 # no hard limit 53*13ef76d8SLuca Weiss items: 54*13ef76d8SLuca Weiss items: 55*13ef76d8SLuca Weiss - description: starting PDC port 56*13ef76d8SLuca Weiss - description: GIC hwirq number for the PDC port 57*13ef76d8SLuca Weiss - description: number of interrupts in sequence 58*13ef76d8SLuca Weiss description: | 59*13ef76d8SLuca Weiss Specifies the PDC pin offset and the number of PDC ports. 60*13ef76d8SLuca Weiss The tuples indicates the valid mapping of valid PDC ports 61*13ef76d8SLuca Weiss and their hwirq mapping. 62*13ef76d8SLuca Weiss 63*13ef76d8SLuca Weissrequired: 64*13ef76d8SLuca Weiss - compatible 65*13ef76d8SLuca Weiss - reg 66*13ef76d8SLuca Weiss - '#interrupt-cells' 67*13ef76d8SLuca Weiss - interrupt-controller 68*13ef76d8SLuca Weiss - qcom,pdc-ranges 69*13ef76d8SLuca Weiss 70*13ef76d8SLuca WeissadditionalProperties: false 71*13ef76d8SLuca Weiss 72*13ef76d8SLuca Weissexamples: 73*13ef76d8SLuca Weiss - | 74*13ef76d8SLuca Weiss #include <dt-bindings/interrupt-controller/irq.h> 75*13ef76d8SLuca Weiss 76*13ef76d8SLuca Weiss pdc: interrupt-controller@b220000 { 77*13ef76d8SLuca Weiss compatible = "qcom,sdm845-pdc", "qcom,pdc"; 78*13ef76d8SLuca Weiss reg = <0xb220000 0x30000>; 79*13ef76d8SLuca Weiss qcom,pdc-ranges = <0 512 94>, <94 641 15>, <115 662 7>; 80*13ef76d8SLuca Weiss #interrupt-cells = <2>; 81*13ef76d8SLuca Weiss interrupt-parent = <&intc>; 82*13ef76d8SLuca Weiss interrupt-controller; 83*13ef76d8SLuca Weiss }; 84*13ef76d8SLuca Weiss 85*13ef76d8SLuca Weiss wake-device { 86*13ef76d8SLuca Weiss interrupts-extended = <&pdc 2 IRQ_TYPE_LEVEL_HIGH>; 87*13ef76d8SLuca Weiss }; 88