Commit a45dddad authored by Maxime Ripard's avatar Maxime Ripard Committed by Rob Herring
Browse files

dt-bindings: irq: Convert Allwinner NMI Controller to a schema



The Allwinner SoCs have an interrupt controller called NMI supported in
Linux, with a matching Device Tree binding.

Now that we have the DT validation in place, let's convert the device tree
bindings for that controller over to a YAML schemas.

Signed-off-by: default avatarMaxime Ripard <maxime.ripard@bootlin.com>
Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent 2eccb565
Loading
Loading
Loading
Loading
+70 −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,sun7i-a20-sc-nmi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner A20 Non-Maskable Interrupt Controller Device Tree Bindings

maintainers:
  - Chen-Yu Tsai <wens@csie.org>
  - Maxime Ripard <maxime.ripard@bootlin.com>

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

properties:
  "#interrupt-cells":
    const: 2
    description:
      The first cell is the IRQ number, the second cell the trigger
      type as defined in interrupt.txt in this directory.

  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
      - const: allwinner,sun9i-a80-sc-nmi
      - items:
        - const: allwinner,sun50i-a64-r-intc
        - const: allwinner,sun6i-a31-r-intc
      - items:
        - const: allwinner,sun50i-h6-r-intc
        - const: allwinner,sun6i-a31-r-intc

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  interrupt-controller: true

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

# FIXME: We should set it, but it would report all the generic
# properties as additional properties.
# additionalProperties: false

examples:
  - |
    interrupt-controller@1c00030 {
        compatible = "allwinner,sun7i-a20-sc-nmi";
        interrupt-controller;
        #interrupt-cells = <2>;
        reg = <0x01c00030 0x0c>;
        interrupt-parent = <&gic>;
        interrupts = <0 0 4>;
    };

...
+0 −29
Original line number Diff line number Diff line
Allwinner Sunxi NMI Controller
==============================

Required properties:

- compatible : should be one of the following:
  - "allwinner,sun7i-a20-sc-nmi"
  - "allwinner,sun6i-a31-sc-nmi" (deprecated)
  - "allwinner,sun6i-a31-r-intc"
  - "allwinner,sun9i-a80-nmi"
- 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 2. The first cell is the IRQ number, the
  second cell the trigger type as defined in interrupt.txt in this directory.
- interrupts: Specifies the interrupt line (NMI) which is handled by
  the interrupt controller in the parent controller's notation. This value
  shall be the NMI.

Example:

sc-nmi-intc@1c00030 {
	compatible = "allwinner,sun7i-a20-sc-nmi";
	interrupt-controller;
	#interrupt-cells = <2>;
	reg = <0x01c00030 0x0c>;
	interrupt-parent = <&gic>;
	interrupts = <0 0 4>;
};