109 lines
2.9 KiB
Plaintext
109 lines
2.9 KiB
Plaintext
QTI MPM interrupt controller
|
|
|
|
MPM (MSM sleep Power Manager) is QTI's platform parent interrupt controller.
|
|
It manages subsystem wakeups and resources during sleep. This driver marks
|
|
the wakeup interrupts in APSS 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.
|
|
|
|
Platform interrupt controller MPM is next in hierarchy, followed by others.
|
|
|
|
This defines 2 interrupt controllers to monitor the interrupts when the system is asleep:
|
|
|
|
One to monitor the wakeup capable gic interrupts called wakegic.
|
|
|
|
Properties:
|
|
|
|
- compatible:
|
|
Usage: required
|
|
Value type: <string>
|
|
Definition: Should contain "qcom,mpm-gic" and the respective target compatible flag
|
|
from below ones.
|
|
"qcom,mpm-gic-msm8953",
|
|
"qcom,mpm-gic-msm8937",
|
|
"qcom,mpm-gic-qcs405"
|
|
"qcom,mpm-gic-trinket"
|
|
"qcom,mpm-gic-mdm9607"
|
|
"qcom,mpm-gic-sdm660"
|
|
"qcom,mpm-gic-sdm429"
|
|
|
|
- interrupts:
|
|
Usage: required
|
|
Value type: <prop-encoded-array>
|
|
Definition: should specify the IRQ used by remote processor to wakeup APSS.
|
|
|
|
- interrupt-parent:
|
|
Usage: required
|
|
Value type: <phandle>
|
|
Definition: Specifies the interrupt parent necessary for hierarchical domain to operate.
|
|
|
|
- interrupt-controller:
|
|
Usage: required
|
|
Value type: <bool>
|
|
Definition: Identifies the node as an interrupt controller.
|
|
|
|
- reg:
|
|
Usage: required
|
|
Value type: <prop-encoded-array>
|
|
Definition: Specifies the base physical address to trigger an interrupt into remote processor.
|
|
|
|
-reg-names:
|
|
Usage: required
|
|
Value type: <string>, <string>
|
|
Definition: Specifies the address field names.
|
|
|
|
- qcom,num-mpm-irqs:
|
|
Usage: optional
|
|
Value type: <value>
|
|
Defination: Specifies the number of interrupts supported.
|
|
|
|
Example:
|
|
|
|
wakegic: wake-gic@7781b8 {
|
|
compatible = "qcom,mpm-gic", "qcom,mpm-gic-msm8953";
|
|
interrupts = <GIC_SPI 171 IRQ_TYPE_EDGE_RISING>;
|
|
reg = <0x601d4 0x1000>,
|
|
<0xb011008 0x4>; /* MSM_APCS_GCC_BASE 4K */
|
|
reg-names = "vmpm", "ipc";
|
|
interrupt-controller;
|
|
interrupt-parent = <&intc>;
|
|
#interrupt-cells = <3>;
|
|
};
|
|
|
|
|
|
One to monitor the wakeup capable gpio interrupts called wakegpio.
|
|
|
|
properties:
|
|
|
|
- compatible:
|
|
Usage: required
|
|
Value type: <string>
|
|
Definition: Should contain "qcom,mpm-gpio" and the respective target compatible flag
|
|
from below ones.
|
|
"qcom,mpm-gpio-msm8953",
|
|
"qcom,mpm-gpio-msm8937",
|
|
"qcom,mpm-gpio-qcs405"
|
|
"qcom,mpm-gpio-trinket",
|
|
"qcom,mpm-gpio-mdm9607"
|
|
"qcom,mpm-gpio-sdm660"
|
|
"qcom,mpm-gpio-sdm429"
|
|
|
|
- interrupt-parent:
|
|
Usage: required
|
|
Value type: <phandle>
|
|
Definition: Specifies the interrupt parent necessary for hierarchical domain to operate.
|
|
|
|
- interrupt-controller:
|
|
Usage: required
|
|
Value type: <bool>
|
|
Definition: Identifies the node as an interrupt controller.
|
|
|
|
Example:
|
|
|
|
wakegpio: wake-gpio {
|
|
compatible = "qcom,mpm-gpio", "qcom,mpm-gpio-msm8953";
|
|
interrupt-controller;
|
|
interrupt-parent = <&tlmm>;
|
|
#interrupt-cells = <2>;
|
|
};
|