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

Merge tag 'irq-core-2021-02-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull irq updates from Thomas Gleixner:
 "Updates for the irq subsystem:

   - The usual new irq chip driver (Realtek RTL83xx)

   - Removal of sirfsoc and tango irq chip drivers

   - Conversion of the sun6i chip support to hierarchical irq domains

   - The usual fixes, improvements and cleanups all over the place"

* tag 'irq-core-2021-02-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  irqchip/imx: IMX_INTMUX should not default to y, unconditionally
  irqchip/loongson-pch-msi: Use bitmap_zalloc() to allocate bitmap
  irqchip/csky-mpintc: Prevent selection on unsupported platforms
  irqchip: Add support for Realtek RTL838x/RTL839x interrupt controller
  dt-bindings: interrupt-controller: Add Realtek RTL838x/RTL839x support
  irqchip/ls-extirq: add IRQCHIP_SKIP_SET_WAKE to the irqchip flags
  genirq: Use new tasklet API for resend_tasklet
  dt-bindings: qcom,pdc: Add compatible for SM8350
  dt-bindings: qcom,pdc: Add compatible for SM8250
  irqchip/sun6i-r: Add wakeup support
  irqchip/sun6i-r: Use a stacked irqchip driver
  dt-bindings: irq: sun6i-r: Add a compatible for the H3
  dt-bindings: irq: sun6i-r: Split the binding from sun7i-nmi
  irqchip/gic-v3: Fix typos in PMR/RPR SCR_EL3.FIQ handling explanation
  irqchip: Remove sirfsoc driver
  irqchip: Remove sigma tango driver
parents 5bbb336b 0b6d70e5
Loading
Loading
Loading
Loading
+67 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/interrupt-controller/allwinner,sun6i-a31-r-intc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner A31 NMI/Wakeup Interrupt Controller Device Tree Bindings

maintainers:
  - Chen-Yu Tsai <wens@csie.org>
  - Maxime Ripard <mripard@kernel.org>

allOf:
  - $ref: /schemas/interrupt-controller.yaml#

properties:
  "#interrupt-cells":
    const: 3
    description:
      The first cell is GIC_SPI (0), the second cell is the IRQ number, and
      the third cell is the trigger type as defined in interrupt.txt in this
      directory.

  compatible:
    oneOf:
      - const: allwinner,sun6i-a31-r-intc
      - items:
          - enum:
              - allwinner,sun8i-a83t-r-intc
              - allwinner,sun8i-h3-r-intc
              - allwinner,sun50i-a64-r-intc
          - const: allwinner,sun6i-a31-r-intc
      - const: allwinner,sun50i-h6-r-intc

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1
    description:
      The GIC interrupt labeled as "External NMI".

  interrupt-controller: true

required:
  - "#interrupt-cells"
  - compatible
  - reg
  - interrupts
  - interrupt-controller

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    r_intc: interrupt-controller@1f00c00 {
            compatible = "allwinner,sun50i-a64-r-intc",
                         "allwinner,sun6i-a31-r-intc";
            interrupt-controller;
            #interrupt-cells = <3>;
            reg = <0x01f00c00 0x400>;
            interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
    };

...
+0 −10
Original line number Diff line number Diff line
@@ -22,26 +22,16 @@ properties:

  compatible:
    oneOf:
      - const: allwinner,sun6i-a31-r-intc
      - const: allwinner,sun6i-a31-sc-nmi
        deprecated: true
      - const: allwinner,sun7i-a20-sc-nmi
      - items:
          - const: allwinner,sun8i-a83t-r-intc
          - const: allwinner,sun6i-a31-r-intc
      - items:
          - const: allwinner,sun8i-v3s-nmi
          - const: allwinner,sun9i-a80-nmi
      - const: allwinner,sun9i-a80-nmi
      - items:
          - const: allwinner,sun50i-a64-r-intc
          - const: allwinner,sun6i-a31-r-intc
      - items:
          - const: allwinner,sun50i-a100-nmi
          - const: allwinner,sun9i-a80-nmi
      - items:
          - const: allwinner,sun50i-h6-r-intc
          - const: allwinner,sun6i-a31-r-intc

  reg:
    maxItems: 1
+2 −0
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ Properties:
	Definition: Should contain "qcom,<soc>-pdc" and "qcom,pdc"
		    - "qcom,sc7180-pdc": For SC7180
		    - "qcom,sdm845-pdc": For SDM845
		    - "qcom,sdm8250-pdc": For SM8250
		    - "qcom,sdm8350-pdc": For SM8350

- reg:
	Usage: required
+57 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/interrupt-controller/realtek,rtl-intc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Realtek RTL SoC interrupt controller devicetree bindings

maintainers:
  - Birger Koblitz <mail@birger-koblitz.de>
  - Bert Vermeulen <bert@biot.com>
  - John Crispin <john@phrozen.org>

properties:
  compatible:
    const: realtek,rtl-intc

  "#interrupt-cells":
    const: 1

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  interrupt-controller: true

  "#address-cells":
    const: 0

  interrupt-map:
    description: Describes mapping from SoC interrupts to CPU interrupts

required:
  - compatible
  - reg
  - "#interrupt-cells"
  - interrupt-controller
  - "#address-cells"
  - interrupt-map

additionalProperties: false

examples:
  - |
    intc: interrupt-controller@3000 {
      compatible = "realtek,rtl-intc";
      #interrupt-cells = <1>;
      interrupt-controller;
      reg = <0x3000 0x20>;
      #address-cells = <0>;
      interrupt-map =
              <31 &cpuintc 2>,
              <30 &cpuintc 1>,
              <29 &cpuintc 5>;
    };
+0 −48
Original line number Diff line number Diff line
Sigma Designs SMP86xx/SMP87xx secondary interrupt controller

Required properties:
- compatible: should be "sigma,smp8642-intc"
- reg: physical address of MMIO region
- ranges: address space mapping of child nodes
- interrupt-controller: boolean
- #address-cells: should be <1>
- #size-cells: should be <1>

One child node per control block with properties:
- reg: address of registers for this control block
- interrupt-controller: boolean
- #interrupt-cells: should be <2>, interrupt index and flags per interrupts.txt
- interrupts: interrupt spec of primary interrupt controller

Example:

interrupt-controller@6e000 {
	compatible = "sigma,smp8642-intc";
	reg = <0x6e000 0x400>;
	ranges = <0x0 0x6e000 0x400>;
	interrupt-parent = <&gic>;
	interrupt-controller;
	#address-cells = <1>;
	#size-cells = <1>;

	irq0: interrupt-controller@0 {
		reg = <0x000 0x100>;
		interrupt-controller;
		#interrupt-cells = <2>;
		interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
	};

	irq1: interrupt-controller@100 {
		reg = <0x100 0x100>;
		interrupt-controller;
		#interrupt-cells = <2>;
		interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
	};

	irq2: interrupt-controller@300 {
		reg = <0x300 0x100>;
		interrupt-controller;
		#interrupt-cells = <2>;
		interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
	};
};
Loading