18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: "http://devicetree.org/schemas/interrupt-controller/loongson,liointc.yaml#" 58c2ecf20Sopenharmony_ci$schema: "http://devicetree.org/meta-schemas/core.yaml#" 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Loongson Local I/O Interrupt Controller 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimaintainers: 108c2ecf20Sopenharmony_ci - Jiaxun Yang <jiaxun.yang@flygoat.com> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_cidescription: | 138c2ecf20Sopenharmony_ci This interrupt controller is found in the Loongson-3 family of chips as the primary 148c2ecf20Sopenharmony_ci package interrupt controller which can route local I/O interrupt to interrupt lines 158c2ecf20Sopenharmony_ci of cores. 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ciallOf: 188c2ecf20Sopenharmony_ci - $ref: /schemas/interrupt-controller.yaml# 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ciproperties: 218c2ecf20Sopenharmony_ci compatible: 228c2ecf20Sopenharmony_ci oneOf: 238c2ecf20Sopenharmony_ci - const: loongson,liointc-1.0 248c2ecf20Sopenharmony_ci - const: loongson,liointc-1.0a 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci reg: 278c2ecf20Sopenharmony_ci maxItems: 1 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci interrupt-controller: true 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci interrupts: 328c2ecf20Sopenharmony_ci description: 338c2ecf20Sopenharmony_ci Interrupt source of the CPU interrupts. 348c2ecf20Sopenharmony_ci minItems: 1 358c2ecf20Sopenharmony_ci maxItems: 4 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci interrupt-names: 388c2ecf20Sopenharmony_ci description: List of names for the parent interrupts. 398c2ecf20Sopenharmony_ci items: 408c2ecf20Sopenharmony_ci - const: int0 418c2ecf20Sopenharmony_ci - const: int1 428c2ecf20Sopenharmony_ci - const: int2 438c2ecf20Sopenharmony_ci - const: int3 448c2ecf20Sopenharmony_ci minItems: 1 458c2ecf20Sopenharmony_ci maxItems: 4 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci '#interrupt-cells': 488c2ecf20Sopenharmony_ci const: 2 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci 'loongson,parent_int_map': 518c2ecf20Sopenharmony_ci description: | 528c2ecf20Sopenharmony_ci This property points how the children interrupts will be mapped into CPU 538c2ecf20Sopenharmony_ci interrupt lines. Each cell refers to a parent interrupt line from 0 to 3 548c2ecf20Sopenharmony_ci and each bit in the cell refers to a child interrupt from 0 to 31. 558c2ecf20Sopenharmony_ci If a CPU interrupt line didn't connect with liointc, then keep its 568c2ecf20Sopenharmony_ci cell with zero. 578c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 588c2ecf20Sopenharmony_ci minItems: 4 598c2ecf20Sopenharmony_ci maxItems: 4 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_cirequired: 628c2ecf20Sopenharmony_ci - compatible 638c2ecf20Sopenharmony_ci - reg 648c2ecf20Sopenharmony_ci - interrupts 658c2ecf20Sopenharmony_ci - interrupt-controller 668c2ecf20Sopenharmony_ci - '#interrupt-cells' 678c2ecf20Sopenharmony_ci - 'loongson,parent_int_map' 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ciunevaluatedProperties: false 718c2ecf20Sopenharmony_ci 728c2ecf20Sopenharmony_ciexamples: 738c2ecf20Sopenharmony_ci - | 748c2ecf20Sopenharmony_ci iointc: interrupt-controller@3ff01400 { 758c2ecf20Sopenharmony_ci compatible = "loongson,liointc-1.0"; 768c2ecf20Sopenharmony_ci reg = <0x3ff01400 0x64>; 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci interrupt-controller; 798c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci interrupt-parent = <&cpuintc>; 828c2ecf20Sopenharmony_ci interrupts = <2>, <3>; 838c2ecf20Sopenharmony_ci interrupt-names = "int0", "int1"; 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ci loongson,parent_int_map = <0xf0ffffff>, /* int0 */ 868c2ecf20Sopenharmony_ci <0x0f000000>, /* int1 */ 878c2ecf20Sopenharmony_ci <0x00000000>, /* int2 */ 888c2ecf20Sopenharmony_ci <0x00000000>; /* int3 */ 898c2ecf20Sopenharmony_ci 908c2ecf20Sopenharmony_ci }; 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ci... 93