17ef62cebSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 27ef62cebSEmmanuel Vadot%YAML 1.2 37ef62cebSEmmanuel Vadot--- 47ef62cebSEmmanuel Vadot$id: http://devicetree.org/schemas/interrupt-controller/qcom,pdc.yaml# 57ef62cebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 67ef62cebSEmmanuel Vadot 77ef62cebSEmmanuel Vadottitle: PDC interrupt controller 87ef62cebSEmmanuel Vadot 97ef62cebSEmmanuel Vadotmaintainers: 107ef62cebSEmmanuel Vadot - Bjorn Andersson <bjorn.andersson@linaro.org> 117ef62cebSEmmanuel Vadot 127ef62cebSEmmanuel Vadotdescription: | 137ef62cebSEmmanuel Vadot Qualcomm Technologies Inc. SoCs based on the RPM Hardened architecture have a 147ef62cebSEmmanuel Vadot Power Domain Controller (PDC) that is on always-on domain. In addition to 157ef62cebSEmmanuel Vadot providing power control for the power domains, the hardware also has an 167ef62cebSEmmanuel Vadot interrupt controller that can be used to help detect edge low interrupts as 177ef62cebSEmmanuel Vadot well detect interrupts when the GIC is non-operational. 187ef62cebSEmmanuel Vadot 197ef62cebSEmmanuel Vadot GIC is parent interrupt controller at the highest level. Platform interrupt 207ef62cebSEmmanuel Vadot controller PDC is next in hierarchy, followed by others. Drivers requiring 217ef62cebSEmmanuel Vadot wakeup capabilities of their device interrupts routed through the PDC, must 227ef62cebSEmmanuel Vadot specify PDC as their interrupt controller and request the PDC port associated 237ef62cebSEmmanuel Vadot with the GIC interrupt. See example below. 247ef62cebSEmmanuel Vadot 257ef62cebSEmmanuel Vadotproperties: 267ef62cebSEmmanuel Vadot compatible: 277ef62cebSEmmanuel Vadot items: 287ef62cebSEmmanuel Vadot - enum: 29fac71e4eSEmmanuel Vadot - qcom,qdu1000-pdc 30*b2d2a78aSEmmanuel Vadot - qcom,sa8255p-pdc 31fac71e4eSEmmanuel Vadot - qcom,sa8775p-pdc 327ef62cebSEmmanuel Vadot - qcom,sc7180-pdc 337ef62cebSEmmanuel Vadot - qcom,sc7280-pdc 340e8011faSEmmanuel Vadot - qcom,sc8180x-pdc 358bab661aSEmmanuel Vadot - qcom,sc8280xp-pdc 36aa1a8ff2SEmmanuel Vadot - qcom,sdm670-pdc 377ef62cebSEmmanuel Vadot - qcom,sdm845-pdc 388bab661aSEmmanuel Vadot - qcom,sdx55-pdc 398bab661aSEmmanuel Vadot - qcom,sdx65-pdc 408d13bc63SEmmanuel Vadot - qcom,sdx75-pdc 4184943d6fSEmmanuel Vadot - qcom,sm4450-pdc 427ef62cebSEmmanuel Vadot - qcom,sm6350-pdc 437ef62cebSEmmanuel Vadot - qcom,sm8150-pdc 447ef62cebSEmmanuel Vadot - qcom,sm8250-pdc 457ef62cebSEmmanuel Vadot - qcom,sm8350-pdc 468bab661aSEmmanuel Vadot - qcom,sm8450-pdc 478d13bc63SEmmanuel Vadot - qcom,sm8550-pdc 488d13bc63SEmmanuel Vadot - qcom,sm8650-pdc 498d13bc63SEmmanuel Vadot - qcom,x1e80100-pdc 507ef62cebSEmmanuel Vadot - const: qcom,pdc 517ef62cebSEmmanuel Vadot 527ef62cebSEmmanuel Vadot reg: 537ef62cebSEmmanuel Vadot minItems: 1 547ef62cebSEmmanuel Vadot items: 557ef62cebSEmmanuel Vadot - description: PDC base register region 567ef62cebSEmmanuel Vadot - description: Edge or Level config register for SPI interrupts 577ef62cebSEmmanuel Vadot 587ef62cebSEmmanuel Vadot '#interrupt-cells': 597ef62cebSEmmanuel Vadot const: 2 607ef62cebSEmmanuel Vadot 617ef62cebSEmmanuel Vadot interrupt-controller: true 627ef62cebSEmmanuel Vadot 637ef62cebSEmmanuel Vadot qcom,pdc-ranges: 647ef62cebSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32-matrix 657ef62cebSEmmanuel Vadot minItems: 1 66fac71e4eSEmmanuel Vadot maxItems: 128 # no hard limit 677ef62cebSEmmanuel Vadot items: 687ef62cebSEmmanuel Vadot items: 697ef62cebSEmmanuel Vadot - description: starting PDC port 707ef62cebSEmmanuel Vadot - description: GIC hwirq number for the PDC port 717ef62cebSEmmanuel Vadot - description: number of interrupts in sequence 727ef62cebSEmmanuel Vadot description: | 737ef62cebSEmmanuel Vadot Specifies the PDC pin offset and the number of PDC ports. 747ef62cebSEmmanuel Vadot The tuples indicates the valid mapping of valid PDC ports 757ef62cebSEmmanuel Vadot and their hwirq mapping. 767ef62cebSEmmanuel Vadot 777ef62cebSEmmanuel Vadotrequired: 787ef62cebSEmmanuel Vadot - compatible 797ef62cebSEmmanuel Vadot - reg 807ef62cebSEmmanuel Vadot - '#interrupt-cells' 817ef62cebSEmmanuel Vadot - interrupt-controller 827ef62cebSEmmanuel Vadot - qcom,pdc-ranges 837ef62cebSEmmanuel Vadot 847ef62cebSEmmanuel VadotadditionalProperties: false 857ef62cebSEmmanuel Vadot 867ef62cebSEmmanuel Vadotexamples: 877ef62cebSEmmanuel Vadot - | 887ef62cebSEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 897ef62cebSEmmanuel Vadot 907ef62cebSEmmanuel Vadot pdc: interrupt-controller@b220000 { 917ef62cebSEmmanuel Vadot compatible = "qcom,sdm845-pdc", "qcom,pdc"; 927ef62cebSEmmanuel Vadot reg = <0xb220000 0x30000>; 937ef62cebSEmmanuel Vadot qcom,pdc-ranges = <0 512 94>, <94 641 15>, <115 662 7>; 947ef62cebSEmmanuel Vadot #interrupt-cells = <2>; 957ef62cebSEmmanuel Vadot interrupt-parent = <&intc>; 967ef62cebSEmmanuel Vadot interrupt-controller; 977ef62cebSEmmanuel Vadot }; 987ef62cebSEmmanuel Vadot 997ef62cebSEmmanuel Vadot wake-device { 1007ef62cebSEmmanuel Vadot interrupts-extended = <&pdc 2 IRQ_TYPE_LEVEL_HIGH>; 1017ef62cebSEmmanuel Vadot }; 102