Commit b7705ba6 authored by Sudeep Holla's avatar Sudeep Holla Committed by Rob Herring
Browse files

dt-bindings: interrupt-controller: Convert ARM VIC to json-schema



Convert the ARM VIC binding document to DT schema format using
json-schema.

Cc: Rob Herring <robh@kernel.org>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
Link: https://lore.kernel.org/r/20210617205317.3060163-1-sudeep.holla@arm.com


Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent 7b25995f
Loading
Loading
Loading
Loading
+0 −41
Original line number Diff line number Diff line
* ARM Vectored Interrupt Controller

One or more Vectored Interrupt Controllers (VIC's) can be connected in an ARM
system for interrupt routing.  For multiple controllers they can either be
nested or have the outputs wire-OR'd together.

Required properties:

- compatible : should be one of
	"arm,pl190-vic"
	"arm,pl192-vic"
- interrupt-controller : Identifies the node as an interrupt controller
- #interrupt-cells : The number of cells to define the interrupts.  Must be 1 as
  the VIC has no configuration options for interrupt sources.  The cell is a u32
  and defines the interrupt number.
- reg : The register bank for the VIC.

Optional properties:

- interrupts : Interrupt source for parent controllers if the VIC is nested.
- valid-mask : A one cell big bit mask of valid interrupt sources. Each bit
  represents single interrupt source, starting from source 0 at LSb and ending
  at source 31 at MSb. A bit that is set means that the source is wired and
  clear means otherwise. If unspecified, defaults to all valid.
- valid-wakeup-mask : A one cell big bit mask of interrupt sources that can be
  configured as wake up source for the system. Order of bits is the same as for
  valid-mask property. A set bit means that this interrupt source can be
  configured as a wake up source for the system. If unspecied, defaults to all
  interrupt sources configurable as wake up sources.

Example:

	vic0: interrupt-controller@60000 {
		compatible = "arm,pl192-vic";
		interrupt-controller;
		#interrupt-cells = <1>;
		reg = <0x60000 0x1000>;

		valid-mask = <0xffffff7f>;
		valid-wakeup-mask = <0x0000ff7f>;
	};
+81 −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/arm,vic.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: ARM Vectored Interrupt Controller

maintainers:
  - Rob Herring <robh@kernel.org>

description: |+
  One or more Vectored Interrupt Controllers (VIC's) can be connected in an
  ARM system for interrupt routing.  For multiple controllers they can either
  be nested or have the outputs wire-OR'd together.

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

properties:
  compatible:
    enum:
      - arm,pl190-vic
      - arm,pl192-vic
      - arm,versatile-vic

  interrupt-controller: true

  "#interrupt-cells":
    const: 1
    description:
      The number of cells to define the interrupts.  It must be 1 as the
      VIC has no configuration options for interrupt sources. The single
      cell defines the interrupt number.

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  valid-mask:
    description:
      A one cell big bit mask of valid interrupt sources. Each bit
      represents single interrupt source, starting from source 0 at
      LSb and ending at source 31 at MSb. A bit that is set means
      that the source is wired and clear means otherwise. If unspecified,
      defaults to all valid.
    $ref: /schemas/types.yaml#/definitions/uint32

  valid-wakeup-mask:
    description:
      A one cell big bit mask of interrupt sources that can be configured
      as wake up source for the system. Order of bits is the same as for
      valid-mask property. A set bit means that this interrupt source
      can be configured as a wake up source for the system. If unspecied,
      defaults to all interrupt sources configurable as wake up sources.
    $ref: /schemas/types.yaml#/definitions/uint32

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

additionalProperties: false

examples:
  - |
    // PL192 VIC
    vic0: interrupt-controller@60000 {
      compatible = "arm,pl192-vic";
      interrupt-controller;
      #interrupt-cells = <1>;
      reg = <0x60000 0x1000>;

      valid-mask = <0xffffff7f>;
      valid-wakeup-mask = <0x0000ff7f>;
    };

...