162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/interrupt-controller/qcom,pdc.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: PDC interrupt controller 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Bjorn Andersson <bjorn.andersson@linaro.org> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: | 1362306a36Sopenharmony_ci Qualcomm Technologies Inc. SoCs based on the RPM Hardened architecture have a 1462306a36Sopenharmony_ci Power Domain Controller (PDC) that is on always-on domain. In addition to 1562306a36Sopenharmony_ci providing power control for the power domains, the hardware also has an 1662306a36Sopenharmony_ci interrupt controller that can be used to help detect edge low interrupts as 1762306a36Sopenharmony_ci well detect interrupts when the GIC is non-operational. 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci GIC is parent interrupt controller at the highest level. Platform interrupt 2062306a36Sopenharmony_ci controller PDC is next in hierarchy, followed by others. Drivers requiring 2162306a36Sopenharmony_ci wakeup capabilities of their device interrupts routed through the PDC, must 2262306a36Sopenharmony_ci specify PDC as their interrupt controller and request the PDC port associated 2362306a36Sopenharmony_ci with the GIC interrupt. See example below. 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ciproperties: 2662306a36Sopenharmony_ci compatible: 2762306a36Sopenharmony_ci items: 2862306a36Sopenharmony_ci - enum: 2962306a36Sopenharmony_ci - qcom,qdu1000-pdc 3062306a36Sopenharmony_ci - qcom,sa8775p-pdc 3162306a36Sopenharmony_ci - qcom,sc7180-pdc 3262306a36Sopenharmony_ci - qcom,sc7280-pdc 3362306a36Sopenharmony_ci - qcom,sc8280xp-pdc 3462306a36Sopenharmony_ci - qcom,sdm670-pdc 3562306a36Sopenharmony_ci - qcom,sdm845-pdc 3662306a36Sopenharmony_ci - qcom,sdx55-pdc 3762306a36Sopenharmony_ci - qcom,sdx65-pdc 3862306a36Sopenharmony_ci - qcom,sm6350-pdc 3962306a36Sopenharmony_ci - qcom,sm8150-pdc 4062306a36Sopenharmony_ci - qcom,sm8250-pdc 4162306a36Sopenharmony_ci - qcom,sm8350-pdc 4262306a36Sopenharmony_ci - qcom,sm8450-pdc 4362306a36Sopenharmony_ci - const: qcom,pdc 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci reg: 4662306a36Sopenharmony_ci minItems: 1 4762306a36Sopenharmony_ci items: 4862306a36Sopenharmony_ci - description: PDC base register region 4962306a36Sopenharmony_ci - description: Edge or Level config register for SPI interrupts 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci '#interrupt-cells': 5262306a36Sopenharmony_ci const: 2 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci interrupt-controller: true 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci qcom,pdc-ranges: 5762306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-matrix 5862306a36Sopenharmony_ci minItems: 1 5962306a36Sopenharmony_ci maxItems: 128 # no hard limit 6062306a36Sopenharmony_ci items: 6162306a36Sopenharmony_ci items: 6262306a36Sopenharmony_ci - description: starting PDC port 6362306a36Sopenharmony_ci - description: GIC hwirq number for the PDC port 6462306a36Sopenharmony_ci - description: number of interrupts in sequence 6562306a36Sopenharmony_ci description: | 6662306a36Sopenharmony_ci Specifies the PDC pin offset and the number of PDC ports. 6762306a36Sopenharmony_ci The tuples indicates the valid mapping of valid PDC ports 6862306a36Sopenharmony_ci and their hwirq mapping. 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_cirequired: 7162306a36Sopenharmony_ci - compatible 7262306a36Sopenharmony_ci - reg 7362306a36Sopenharmony_ci - '#interrupt-cells' 7462306a36Sopenharmony_ci - interrupt-controller 7562306a36Sopenharmony_ci - qcom,pdc-ranges 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ciadditionalProperties: false 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ciexamples: 8062306a36Sopenharmony_ci - | 8162306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ci pdc: interrupt-controller@b220000 { 8462306a36Sopenharmony_ci compatible = "qcom,sdm845-pdc", "qcom,pdc"; 8562306a36Sopenharmony_ci reg = <0xb220000 0x30000>; 8662306a36Sopenharmony_ci qcom,pdc-ranges = <0 512 94>, <94 641 15>, <115 662 7>; 8762306a36Sopenharmony_ci #interrupt-cells = <2>; 8862306a36Sopenharmony_ci interrupt-parent = <&intc>; 8962306a36Sopenharmony_ci interrupt-controller; 9062306a36Sopenharmony_ci }; 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci wake-device { 9362306a36Sopenharmony_ci interrupts-extended = <&pdc 2 IRQ_TYPE_LEVEL_HIGH>; 9462306a36Sopenharmony_ci }; 95