Loading bindings/interrupt-controller/qcom,mpm.txt 0 → 100644 +108 −0 Original line number Diff line number Diff line 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 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-bengal" - 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-bengal"; 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", - 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"; interrupt-controller; interrupt-parent = <&tlmm>; #interrupt-cells = <2>; }; qcom/bengal.dtsi +22 −1 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ model = "Qualcomm Technologies, Inc. BENGAL"; compatible = "qcom,bengal"; qcom,msm-id = <417 0x10000>; interrupt-parent = <&intc>; interrupt-parent = <&wakegic>; #address-cells = <2>; #size-cells = <2>; Loading Loading @@ -419,6 +419,7 @@ compatible = "arm,gic-v3"; #interrupt-cells = <3>; interrupt-controller; interrupt-parent = <&intc>; #redistributor-regions = <1>; redistributor-stride = <0x0 0x20000>; reg = <0xf200000 0x10000>, /* GICD */ Loading Loading @@ -556,6 +557,26 @@ status = "ok"; }; wakegic: wake-gic { compatible = "qcom,mpm-gic-bengal", "qcom,mpm-gic"; interrupts-extended = <&wakegic GIC_SPI 171 IRQ_TYPE_EDGE_RISING>; reg = <0x45f01b8 0x1000>, <0xf011008 0x4>; /* MSM_APCS_GCC_BASE 4K */ reg-names = "vmpm", "ipc"; qcom,num-mpm-irqs = <96>; interrupt-controller; interrupt-parent = <&intc>; #interrupt-cells = <3>; }; wakegpio: wake-gpio { compatible = "qcom,mpm-gpio"; interrupt-controller; interrupt-parent = <&intc>; #interrupt-cells = <2>; }; timer { compatible = "arm,armv8-timer"; interrupts = <1 1 0xf08>, Loading Loading
bindings/interrupt-controller/qcom,mpm.txt 0 → 100644 +108 −0 Original line number Diff line number Diff line 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 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-bengal" - 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-bengal"; 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", - 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"; interrupt-controller; interrupt-parent = <&tlmm>; #interrupt-cells = <2>; };
qcom/bengal.dtsi +22 −1 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ model = "Qualcomm Technologies, Inc. BENGAL"; compatible = "qcom,bengal"; qcom,msm-id = <417 0x10000>; interrupt-parent = <&intc>; interrupt-parent = <&wakegic>; #address-cells = <2>; #size-cells = <2>; Loading Loading @@ -419,6 +419,7 @@ compatible = "arm,gic-v3"; #interrupt-cells = <3>; interrupt-controller; interrupt-parent = <&intc>; #redistributor-regions = <1>; redistributor-stride = <0x0 0x20000>; reg = <0xf200000 0x10000>, /* GICD */ Loading Loading @@ -556,6 +557,26 @@ status = "ok"; }; wakegic: wake-gic { compatible = "qcom,mpm-gic-bengal", "qcom,mpm-gic"; interrupts-extended = <&wakegic GIC_SPI 171 IRQ_TYPE_EDGE_RISING>; reg = <0x45f01b8 0x1000>, <0xf011008 0x4>; /* MSM_APCS_GCC_BASE 4K */ reg-names = "vmpm", "ipc"; qcom,num-mpm-irqs = <96>; interrupt-controller; interrupt-parent = <&intc>; #interrupt-cells = <3>; }; wakegpio: wake-gpio { compatible = "qcom,mpm-gpio"; interrupt-controller; interrupt-parent = <&intc>; #interrupt-cells = <2>; }; timer { compatible = "arm,armv8-timer"; interrupts = <1 1 0xf08>, Loading