mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-08-31 22:23:05 +00:00

Document the support added for the Advanced interrupt controller(AIC) chip in the sam9x7 SoC family. New compatible is introduced to capture the differences like the number of interrupts supported in the integration of the IP to that of the previous designs. Signed-off-by: Varshini Rajendran <varshini.rajendran@microchip.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Rob Herring (Arm) <robh@kernel.org> Acked-by: Dharma Balasubiramani <dharma.b@microchip.com> Link: https://lore.kernel.org/all/20240903064240.49415-1-varshini.rajendran@microchip.com
91 lines
2.2 KiB
YAML
91 lines
2.2 KiB
YAML
# 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
|
|
- microchip,sam9x7-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>;
|
|
};
|
|
...
|