Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e4b99d41 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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 interrupt department provides:

  Core updates:

   - Better spreading to NUMA nodes in the affinity management

   - Support for more than one set of interrupts to spread out to allow
     separate queues for separate functionality of a single device.

   - Decouple the non queue interrupts from being managed. Those are
     usually general interrupts for error handling etc. and those should
     never be shut down. This also a preparation to utilize the
     spreading mechanism for initial spreading of non-managed interrupts
     later.

   - Make the single CPU target selection in the matrix allocator more
     balanced so interrupts won't accumulate on single CPUs in certain
     situations.

   - A large spell checking patch so we don't end up fixing single typos
     over and over.

  Driver updates:

   - A bunch of new irqchip drivers (RDA8810PL, Madera, imx-irqsteer)

   - Updates for the 8MQ, F1C100s platform drivers

   - A number of SPDX cleanups

   - A workaround for a very broken GICv3 implementation on msm8996
     which sports a botched register set.

   - A platform-msi fix to prevent memory leakage

   - Various cleanups"

* 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (37 commits)
  genirq/affinity: Add is_managed to struct irq_affinity_desc
  genirq/core: Introduce struct irq_affinity_desc
  genirq/affinity: Remove excess indentation
  irqchip/stm32: protect configuration registers with hwspinlock
  dt-bindings: interrupt-controller: stm32: Document hwlock properties
  irqchip: Add driver for imx-irqsteer controller
  dt-bindings/irq: Add binding for Freescale IRQSTEER multiplexer
  irqchip: Add driver for Cirrus Logic Madera codecs
  genirq: Fix various typos in comments
  irqchip/irq-imx-gpcv2: Add IRQCHIP_DECLARE for i.MX8MQ compatible
  irqchip/irq-rda-intc: Fix return value check in rda8810_intc_init()
  irqchip/irq-imx-gpcv2: Silence "fall through" warning
  irqchip/gic-v3: Add quirk for msm8996 broken registers
  irqchip/gic: Add support to device tree based quirks
  dt-bindings/gic-v3: Add msm8996 compatible string
  irqchip/sun4i: Add support for Allwinner ARMv5 F1C100s
  irqchip/sun4i: Move IC specific register offsets to struct
  irqchip/sun4i: Add a struct to hold global variables
  dt-bindings: interrupt-controller: Add suniv interrupt-controller
  irqchip: Add RDA8810PL interrupt driver
  ...
parents d8924c0d c410abbb
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -2,7 +2,9 @@ Allwinner Sunxi Interrupt Controller

Required properties:

- compatible : should be "allwinner,sun4i-a10-ic"
- compatible : should be one of the following:
              "allwinner,sun4i-a10-ic"
              "allwinner,suniv-f1c100s-ic"
- 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
+3 −1
Original line number Diff line number Diff line
@@ -7,7 +7,9 @@ Interrupts (LPI).

Main node required properties:

- compatible : should at least contain  "arm,gic-v3".
- compatible : should at least contain  "arm,gic-v3" or either
		"qcom,msm8996-gic-v3", "arm,gic-v3" for msm8996 SoCs
		to address SoC specific bugs/quirks
- interrupt-controller : Identifies the node as an interrupt controller
- #interrupt-cells : Specifies the number of cells needed to encode an
  interrupt source. Must be a single cell with a value of at least 3.
+34 −0
Original line number Diff line number Diff line
Freescale IRQSTEER Interrupt multiplexer

Required properties:

- compatible: should be:
	- "fsl,imx8m-irqsteer"
	- "fsl,imx-irqsteer"
- reg: Physical base address and size of registers.
- interrupts: Should contain the parent interrupt line used to multiplex the
  input interrupts.
- clocks: Should contain one clock for entry in clock-names
  see Documentation/devicetree/bindings/clock/clock-bindings.txt
- clock-names:
   - "ipg": main logic clock
- interrupt-controller: Identifies the node as an interrupt controller.
- #interrupt-cells: Specifies the number of cells needed to encode an
  interrupt source. The value must be 1.
- fsl,channel: The output channel that all input IRQs should be steered into.
- fsl,irq-groups: Number of IRQ groups managed by this controller instance.
  Each group manages 64 input interrupts.

Example:

	interrupt-controller@32e2d000 {
		compatible = "fsl,imx8m-irqsteer", "fsl,imx-irqsteer";
		reg = <0x32e2d000 0x1000>;
		interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>;
		clock-names = "ipg";
		fsl,channel = <0>;
		fsl,irq-groups = <1>;
		interrupt-controller;
		#interrupt-cells = <1>;
	};
+61 −0
Original line number Diff line number Diff line
RDA Micro RDA8810PL Interrupt Controller

The interrupt controller in RDA8810PL SoC is a custom interrupt controller
which supports up to 32 interrupts.

Required properties:

- compatible: Should be "rda,8810pl-intc".
- reg: Specifies base physical address of the registers set.
- 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 2.

The interrupt sources are as follows:

ID	Name
------------
0:	PULSE_DUMMY
1:	I2C
2:	NAND_NFSC
3:	SDMMC1
4:	SDMMC2
5:	SDMMC3
6:	SPI1
7:	SPI2
8:	SPI3
9:	UART1
10:	UART2
11:	UART3
12:	GPIO1
13:	GPIO2
14:	GPIO3
15:	KEYPAD
16:	TIMER
17:	TIMEROS
18:	COMREG0
19:	COMREG1
20:	USB
21:	DMC
22:	DMA
23:	CAMERA
24:	GOUDA
25:	GPU
26:	VPU_JPG
27:	VPU_HOST
28:	VOC
29:	AUIFC0
30:	AUIFC1
31:	L2CC

Example:
		apb@20800000 {
			compatible = "simple-bus";
			...
			intc: interrupt-controller@0 {
				compatible = "rda,8810pl-intc";
				reg = <0x0 0x1000>;
				interrupt-controller;
				#interrupt-cells = <2>;
			};
		};
+4 −0
Original line number Diff line number Diff line
@@ -14,6 +14,10 @@ Required properties:
  (only needed for exti controller with multiple exti under
  same parent interrupt: st,stm32-exti and st,stm32h7-exti)

Optional properties:

- hwlocks: reference to a phandle of a hardware spinlock provider node.

Example:

exti: interrupt-controller@40013c00 {
Loading