From 959a976ceb72bd2b39558b9c199c10db7ef2370a Mon Sep 17 00:00:00 2001 From: Vivek Kumar Date: Fri, 28 Feb 2020 15:26:45 +0530 Subject: [PATCH] bindings: Add dt-bindings for pdc controller on qc SoCs Add documentation about pdc interrupt controller node and dt-bindings. This is taken from msm-4.14 commit ("aaa3cbba7c"). Change-Id: Id31d0b85cd2ccbe535e94595db7e60d3466d1fdc --- bindings/interrupt-controller/qti,pdc.txt | 69 +++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 bindings/interrupt-controller/qti,pdc.txt diff --git a/bindings/interrupt-controller/qti,pdc.txt b/bindings/interrupt-controller/qti,pdc.txt new file mode 100644 index 000000000000..1114838590f8 --- /dev/null +++ b/bindings/interrupt-controller/qti,pdc.txt @@ -0,0 +1,69 @@ +QTI PDC interrupt controller + +PDC is QTI's platform parent interrupt controller that serves as wakeup source. + +Newer QTI SOCs are replacing MPM (MSM sleep Power Manager) with PDC (Power +Domain Controller) to manage subsystem wakeups and resources during sleep. +This driver marks the wakeup interrupts in APSS PDC such that it monitors the +interrupts when the system is asleep, wakes up the APSS when one of these +interrupts occur and replays it to the subsystem interrupt controller after it +becomes operational. + +Earlier MPM architecture used arch-extension of GIC interrupt +controller to mark enabled wake-up interrupts and monitor these when the +system goes to sleep. Since the arch-extensions are no-longer available +on newer kernel versions, this driver is implemented as hierarchical irq +domain. GIC is parent interrupt controller at the highest level. +Platform interrupt controller PDC is next in hierarchy, followed by others. +This driver only configures the interrupts, does not handle them. + +PDC interrupt configuration involves programming of 2 set of registers: +IRQ_ENABLE_BANK - Enable the irq +IRQ_i_CFG - Configure the interrupt i + +Properties: + +- compatible: + Usage: required + Value type: + Definition: Should contain one of - + "qcom,pdc-sdm845", + "qcom,pdc-sdmmagpie", + "qcom,pdc-sm6150", + "qcom,pdc-sm8150", + "qcom,pdc-sdxprairie", + "qcom,pdc-atoll" + +- reg: + Usage: required + Value type: + Definition: Specifies the base physical address for PDC hardware + block for DRV2. + +- interrupt-cells: + Usage: required + Value type: + Definition: Specifies the number of cells needed to encode an interrupt source. + Value must be 3. + The encoding of these cells are same as described in + Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt + +- interrupt-parent: + Usage: required + Value type: + Definition: Specifies the interrupt parent necessary for hierarchical domain to operate. + +- interrupt-controller: + Usage: required + Value type: + Definition: Identifies the node as an interrupt controller. + +Example: + +pdcgic: interrupt-controller@0xb220000{ + compatible = "qcom,pdc-sdm845"; + reg = <0xb220000 0x30000>; + #interrupt-cells = <3>; + interrupt-parent = <&intc>; + interrupt-controller; +};