1aaef9cdcSDharma Balasubiramani# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2aaef9cdcSDharma Balasubiramani%YAML 1.2 3aaef9cdcSDharma Balasubiramani--- 4aaef9cdcSDharma Balasubiramani$id: http://devicetree.org/schemas/interrupt-controller/atmel,aic.yaml# 5aaef9cdcSDharma Balasubiramani$schema: http://devicetree.org/meta-schemas/core.yaml# 6aaef9cdcSDharma Balasubiramani 7aaef9cdcSDharma Balasubiramanititle: Advanced Interrupt Controller (AIC) 8aaef9cdcSDharma Balasubiramani 9aaef9cdcSDharma Balasubiramanimaintainers: 10aaef9cdcSDharma Balasubiramani - Nicolas Ferre <nicolas.ferre@microchip.com> 11aaef9cdcSDharma Balasubiramani - Dharma balasubiramani <dharma.b@microchip.com> 12aaef9cdcSDharma Balasubiramani 13aaef9cdcSDharma Balasubiramanidescription: 14aaef9cdcSDharma Balasubiramani The Advanced Interrupt Controller (AIC) is an 8-level priority, individually 15aaef9cdcSDharma Balasubiramani maskable, vectored interrupt controller providing handling of up to one 16aaef9cdcSDharma Balasubiramani hundred and twenty-eight interrupt sources. 17aaef9cdcSDharma Balasubiramani 18aaef9cdcSDharma Balasubiramaniproperties: 19aaef9cdcSDharma Balasubiramani compatible: 20aaef9cdcSDharma Balasubiramani enum: 21aaef9cdcSDharma Balasubiramani - atmel,at91rm9200-aic 22aaef9cdcSDharma Balasubiramani - atmel,sama5d2-aic 23aaef9cdcSDharma Balasubiramani - atmel,sama5d3-aic 24aaef9cdcSDharma Balasubiramani - atmel,sama5d4-aic 25aaef9cdcSDharma Balasubiramani - microchip,sam9x60-aic 26*5a5d6753SVarshini Rajendran - microchip,sam9x7-aic 27aaef9cdcSDharma Balasubiramani 28aaef9cdcSDharma Balasubiramani reg: 29aaef9cdcSDharma Balasubiramani maxItems: 1 30aaef9cdcSDharma Balasubiramani 31aaef9cdcSDharma Balasubiramani interrupt-controller: true 32aaef9cdcSDharma Balasubiramani 33aaef9cdcSDharma Balasubiramani "#interrupt-cells": 34aaef9cdcSDharma Balasubiramani const: 3 35aaef9cdcSDharma Balasubiramani description: | 36aaef9cdcSDharma Balasubiramani The 1st cell is the IRQ number (Peripheral IDentifier on datasheet). 37aaef9cdcSDharma Balasubiramani The 2nd cell specifies flags: 38aaef9cdcSDharma Balasubiramani bits[3:0] trigger type and level flags: 39aaef9cdcSDharma Balasubiramani 1 = low-to-high edge triggered. 40aaef9cdcSDharma Balasubiramani 2 = high-to-low edge triggered. 41aaef9cdcSDharma Balasubiramani 4 = active high level-sensitive. 42aaef9cdcSDharma Balasubiramani 8 = active low level-sensitive. 43aaef9cdcSDharma Balasubiramani Valid combinations: 1, 2, 3, 4, 8. 44aaef9cdcSDharma Balasubiramani Default for internal sources: 4 (active high). 45aaef9cdcSDharma Balasubiramani The 3rd cell specifies irq priority from 0 (lowest) to 7 (highest). 46aaef9cdcSDharma Balasubiramani 47aaef9cdcSDharma Balasubiramani interrupts: 48aaef9cdcSDharma Balasubiramani maxItems: 1 49aaef9cdcSDharma Balasubiramani 50aaef9cdcSDharma Balasubiramani atmel,external-irqs: 51aaef9cdcSDharma Balasubiramani $ref: /schemas/types.yaml#/definitions/uint32-array 52aaef9cdcSDharma Balasubiramani description: u32 array of external irqs. 53aaef9cdcSDharma Balasubiramani 54aaef9cdcSDharma BalasubiramaniallOf: 55aaef9cdcSDharma Balasubiramani - $ref: /schemas/interrupt-controller.yaml# 56aaef9cdcSDharma Balasubiramani - if: 57aaef9cdcSDharma Balasubiramani properties: 58aaef9cdcSDharma Balasubiramani compatible: 59aaef9cdcSDharma Balasubiramani contains: 60aaef9cdcSDharma Balasubiramani const: atmel,at91rm9200-aic 61aaef9cdcSDharma Balasubiramani then: 62aaef9cdcSDharma Balasubiramani properties: 63aaef9cdcSDharma Balasubiramani atmel,external-irqs: 64aaef9cdcSDharma Balasubiramani minItems: 1 65aaef9cdcSDharma Balasubiramani maxItems: 7 66aaef9cdcSDharma Balasubiramani else: 67aaef9cdcSDharma Balasubiramani properties: 68aaef9cdcSDharma Balasubiramani atmel,external-irqs: 69aaef9cdcSDharma Balasubiramani minItems: 1 70aaef9cdcSDharma Balasubiramani maxItems: 1 71aaef9cdcSDharma Balasubiramani 72aaef9cdcSDharma Balasubiramanirequired: 73aaef9cdcSDharma Balasubiramani - compatible 74aaef9cdcSDharma Balasubiramani - reg 75aaef9cdcSDharma Balasubiramani - interrupt-controller 76aaef9cdcSDharma Balasubiramani - "#interrupt-cells" 77aaef9cdcSDharma Balasubiramani - atmel,external-irqs 78aaef9cdcSDharma Balasubiramani 79aaef9cdcSDharma BalasubiramaniunevaluatedProperties: false 80aaef9cdcSDharma Balasubiramani 81aaef9cdcSDharma Balasubiramaniexamples: 82aaef9cdcSDharma Balasubiramani - | 83aaef9cdcSDharma Balasubiramani interrupt-controller@fffff000 { 84aaef9cdcSDharma Balasubiramani compatible = "atmel,at91rm9200-aic"; 85aaef9cdcSDharma Balasubiramani reg = <0xfffff000 0x200>; 86aaef9cdcSDharma Balasubiramani interrupt-controller; 87aaef9cdcSDharma Balasubiramani #interrupt-cells = <3>; 88aaef9cdcSDharma Balasubiramani atmel,external-irqs = <31>; 89aaef9cdcSDharma Balasubiramani }; 90aaef9cdcSDharma Balasubiramani... 91