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