Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq updates from Thomas Gleixner: "The usual pile of boring changes: - Consolidate tasklet functions to share code instead of duplicating it - The first step for making the low level entry handler management on multi-platform kernels generic - A new sysfs file which allows to retrieve the wakeup state of interrupts. - Ensure that the interrupt thread follows the effective affinity and not the programmed affinity to avoid cross core wakeups. - Two new interrupt controller drivers (Microsemi Ocelot and Qualcomm PDC) - Fix the wakeup path clock handling for Reneasas interrupt chips. - Rework the boot time register reset for ARM GIC-V2/3 - Better suspend/resume support for ARM GIV-V3/ITS - Add missing locking to the ARM GIC set_type() callback - Small fixes for the irq simulator code - SPDX identifiers for the irq core code and removal of boiler plate - Small cleanups all over the place" * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (37 commits) openrisc: Set CONFIG_MULTI_IRQ_HANDLER arm64: Set CONFIG_MULTI_IRQ_HANDLER genirq: Make GENERIC_IRQ_MULTI_HANDLER depend on !MULTI_IRQ_HANDLER irqchip/gic: Take lock when updating irq type irqchip/gic: Update supports_deactivate static key to modern api irqchip/gic-v3: Ensure GICR_CTLR.EnableLPI=0 is observed before enabling irqchip: Add a driver for the Microsemi Ocelot controller dt-bindings: interrupt-controller: Add binding for the Microsemi Ocelot interrupt controller irqchip/gic-v3: Probe for SCR_EL3 being clear before resetting AP0Rn irqchip/gic-v3: Don't try to reset AP0Rn irqchip/gic-v3: Do not check trigger configuration of partitionned LPIs genirq: Remove license boilerplate/references genirq: Add missing SPDX identifiers genirq/matrix: Cleanup SPDX identifier genirq: Cleanup top of file comments genirq: Pass desc to __irq_free instead of irq number irqchip/gic-v3: Loudly complain about the use of IRQ_TYPE_NONE irqchip/gic: Loudly complain about the use of IRQ_TYPE_NONE RISC-V: Move to the new GENERIC_IRQ_MULTI_HANDLER handler genirq: Add CONFIG_GENERIC_IRQ_MULTI_HANDLER ...
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
Microsemi Ocelot SoC ICPU Interrupt Controller
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : should be "mscc,ocelot-icpu-intr"
|
||||
- reg : Specifies base physical address and size of the registers.
|
||||
- interrupt-controller : Identifies the node as an interrupt controller
|
||||
- #interrupt-cells : Specifies the number of cells needed to encode an
|
||||
interrupt source. The value shall be 1.
|
||||
- interrupt-parent : phandle of the CPU interrupt controller.
|
||||
- interrupts : Specifies the CPU interrupt the controller is connected to.
|
||||
|
||||
Example:
|
||||
|
||||
intc: interrupt-controller@70000070 {
|
||||
compatible = "mscc,ocelot-icpu-intr";
|
||||
reg = <0x70000070 0x70>;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&cpuintc>;
|
||||
interrupts = <2>;
|
||||
};
|
@@ -0,0 +1,78 @@
|
||||
PDC interrupt controller
|
||||
|
||||
Qualcomm Technologies Inc. SoCs based on the RPM Hardened architecture have a
|
||||
Power Domain Controller (PDC) that is on always-on domain. In addition to
|
||||
providing power control for the power domains, the hardware also has an
|
||||
interrupt controller that can be used to help detect edge low interrupts as
|
||||
well detect interrupts when the GIC is non-operational.
|
||||
|
||||
GIC is parent interrupt controller at the highest level. Platform interrupt
|
||||
controller PDC is next in hierarchy, followed by others. Drivers requiring
|
||||
wakeup capabilities of their device interrupts routed through the PDC, must
|
||||
specify PDC as their interrupt controller and request the PDC port associated
|
||||
with the GIC interrupt. See example below.
|
||||
|
||||
Properties:
|
||||
|
||||
- compatible:
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should contain "qcom,<soc>-pdc"
|
||||
- "qcom,sdm845-pdc": For SDM845
|
||||
|
||||
- reg:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: Specifies the base physical address for PDC hardware.
|
||||
|
||||
- interrupt-cells:
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Specifies the number of cells needed to encode an interrupt
|
||||
source.
|
||||
Must be 2.
|
||||
The first element of the tuple is the PDC pin for the
|
||||
interrupt.
|
||||
The second element is the trigger type.
|
||||
|
||||
- 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.
|
||||
|
||||
- qcom,pdc-ranges:
|
||||
Usage: required
|
||||
Value type: <u32 array>
|
||||
Definition: Specifies the PDC pin offset and the number of PDC ports.
|
||||
The tuples indicates the valid mapping of valid PDC ports
|
||||
and their hwirq mapping.
|
||||
The first element of the tuple is the starting PDC port.
|
||||
The second element is the GIC hwirq number for the PDC port.
|
||||
The third element is the number of interrupts in sequence.
|
||||
|
||||
Example:
|
||||
|
||||
pdc: interrupt-controller@b220000 {
|
||||
compatible = "qcom,sdm845-pdc";
|
||||
reg = <0xb220000 0x30000>;
|
||||
qcom,pdc-ranges = <0 512 94>, <94 641 15>, <115 662 7>;
|
||||
#interrupt-cells = <2>;
|
||||
interrupt-parent = <&intc>;
|
||||
interrupt-controller;
|
||||
};
|
||||
|
||||
DT binding of a device that wants to use the GIC SPI 514 as a wakeup
|
||||
interrupt, must do -
|
||||
|
||||
wake-device {
|
||||
interrupts-extended = <&pdc 2 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
In this case interrupt 514 would be mapped to port 2 on the PDC as defined by
|
||||
the qcom,pdc-ranges property.
|
Reference in New Issue
Block a user