1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: "http://devicetree.org/schemas/interrupt-controller/loongson,liointc.yaml#" 5$schema: "http://devicetree.org/meta-schemas/core.yaml#" 6 7title: Loongson Local I/O Interrupt Controller 8 9maintainers: 10 - Jiaxun Yang <jiaxun.yang@flygoat.com> 11 12description: | 13 This interrupt controller is found in the Loongson-3 family of chips and 14 Loongson-2K1000 chip, as the primary package interrupt controller which 15 can route local I/O interrupt to interrupt lines of cores. 16 17allOf: 18 - $ref: /schemas/interrupt-controller.yaml# 19 20properties: 21 compatible: 22 oneOf: 23 - const: loongson,liointc-1.0 24 - const: loongson,liointc-1.0a 25 - const: loongson,liointc-2.0 26 27 reg: 28 minItems: 1 29 maxItems: 3 30 31 reg-names: 32 items: 33 - const: main 34 - const: isr0 35 - const: isr1 36 37 interrupt-controller: true 38 39 interrupts: 40 description: 41 Interrupt source of the CPU interrupts. 42 minItems: 1 43 maxItems: 4 44 45 interrupt-names: 46 description: List of names for the parent interrupts. 47 items: 48 - const: int0 49 - const: int1 50 - const: int2 51 - const: int3 52 minItems: 1 53 maxItems: 4 54 55 '#interrupt-cells': 56 const: 2 57 58 'loongson,parent_int_map': 59 description: | 60 This property points how the children interrupts will be mapped into CPU 61 interrupt lines. Each cell refers to a parent interrupt line from 0 to 3 62 and each bit in the cell refers to a child interrupt from 0 to 31. 63 If a CPU interrupt line didn't connect with liointc, then keep its 64 cell with zero. 65 $ref: /schemas/types.yaml#/definitions/uint32-array 66 minItems: 4 67 maxItems: 4 68 69required: 70 - compatible 71 - reg 72 - interrupts 73 - interrupt-controller 74 - '#interrupt-cells' 75 - 'loongson,parent_int_map' 76 77 78unevaluatedProperties: false 79 80if: 81 properties: 82 compatible: 83 contains: 84 enum: 85 - loongson,liointc-2.0 86 87then: 88 properties: 89 reg: 90 minItems: 3 91 92 required: 93 - reg-names 94 95else: 96 properties: 97 reg: 98 maxItems: 1 99 100examples: 101 - | 102 iointc: interrupt-controller@3ff01400 { 103 compatible = "loongson,liointc-1.0"; 104 reg = <0x3ff01400 0x64>; 105 106 interrupt-controller; 107 #interrupt-cells = <2>; 108 109 interrupt-parent = <&cpuintc>; 110 interrupts = <2>, <3>; 111 interrupt-names = "int0", "int1"; 112 113 loongson,parent_int_map = <0xf0ffffff>, /* int0 */ 114 <0x0f000000>, /* int1 */ 115 <0x00000000>, /* int2 */ 116 <0x00000000>; /* int3 */ 117 118 }; 119 120... 121