qcom,pdc.yaml 2.9 KB

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