Commit aaef9cdc authored by Dharma Balasubiramani's avatar Dharma Balasubiramani Committed by Rob Herring

dt-bindings: interrupt-controller: Convert Atmel AIC to json-schema

Convert the Atmel AIC binding document to DT schema format using
json-schema.
Signed-off-by: default avatarDharma Balasubiramani <dharma.b@microchip.com>
Reviewed-by: default avatarConor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20240222090738.41628-1-dharma.b@microchip.comSigned-off-by: default avatarRob Herring <robh@kernel.org>
parent c5839535
* Advanced Interrupt Controller (AIC)
Required properties:
- compatible: Should be:
- "atmel,<chip>-aic" where <chip> can be "at91rm9200", "sama5d2",
"sama5d3" or "sama5d4"
- "microchip,<chip>-aic" where <chip> can be "sam9x60"
- interrupt-controller: Identifies the node as an interrupt controller.
- #interrupt-cells: The number of cells to define the interrupts. It should be 3.
The first cell is the IRQ number (aka "Peripheral IDentifier" on datasheet).
The second cell is used to specify flags:
bits[3:0] trigger type and level flags:
1 = low-to-high edge triggered.
2 = high-to-low edge triggered.
4 = active high level-sensitive.
8 = active low level-sensitive.
Valid combinations are 1, 2, 3, 4, 8.
Default flag for internal sources should be set to 4 (active high).
The third cell is used to specify the irq priority from 0 (lowest) to 7
(highest).
- reg: Should contain AIC registers location and length
- atmel,external-irqs: u32 array of external irqs.
Examples:
/*
* AIC
*/
aic: interrupt-controller@fffff000 {
compatible = "atmel,at91rm9200-aic";
interrupt-controller;
#interrupt-cells = <3>;
reg = <0xfffff000 0x200>;
};
/*
* An interrupt generating device that is wired to an AIC.
*/
dma: dma-controller@ffffec00 {
compatible = "atmel,at91sam9g45-dma";
reg = <0xffffec00 0x200>;
interrupts = <21 4 5>;
};
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/interrupt-controller/atmel,aic.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Advanced Interrupt Controller (AIC)
maintainers:
- Nicolas Ferre <nicolas.ferre@microchip.com>
- Dharma balasubiramani <dharma.b@microchip.com>
description:
The Advanced Interrupt Controller (AIC) is an 8-level priority, individually
maskable, vectored interrupt controller providing handling of up to one
hundred and twenty-eight interrupt sources.
properties:
compatible:
enum:
- atmel,at91rm9200-aic
- atmel,sama5d2-aic
- atmel,sama5d3-aic
- atmel,sama5d4-aic
- microchip,sam9x60-aic
reg:
maxItems: 1
interrupt-controller: true
"#interrupt-cells":
const: 3
description: |
The 1st cell is the IRQ number (Peripheral IDentifier on datasheet).
The 2nd cell specifies flags:
bits[3:0] trigger type and level flags:
1 = low-to-high edge triggered.
2 = high-to-low edge triggered.
4 = active high level-sensitive.
8 = active low level-sensitive.
Valid combinations: 1, 2, 3, 4, 8.
Default for internal sources: 4 (active high).
The 3rd cell specifies irq priority from 0 (lowest) to 7 (highest).
interrupts:
maxItems: 1
atmel,external-irqs:
$ref: /schemas/types.yaml#/definitions/uint32-array
description: u32 array of external irqs.
allOf:
- $ref: /schemas/interrupt-controller.yaml#
- if:
properties:
compatible:
contains:
const: atmel,at91rm9200-aic
then:
properties:
atmel,external-irqs:
minItems: 1
maxItems: 7
else:
properties:
atmel,external-irqs:
minItems: 1
maxItems: 1
required:
- compatible
- reg
- interrupt-controller
- "#interrupt-cells"
- atmel,external-irqs
unevaluatedProperties: false
examples:
- |
interrupt-controller@fffff000 {
compatible = "atmel,at91rm9200-aic";
reg = <0xfffff000 0x200>;
interrupt-controller;
#interrupt-cells = <3>;
atmel,external-irqs = <31>;
};
...
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment