1// SPDX-License-Identifier: GPL-2.0
2
3/ {
4	testcase-data {
5		interrupts {
6			#address-cells = <1>;
7			#size-cells = <1>;
8
9			test_intc0: intc0 {
10				interrupt-controller;
11				#interrupt-cells = <1>;
12			};
13
14			test_intc1: intc1 {
15				interrupt-controller;
16				#interrupt-cells = <3>;
17			};
18
19			test_intc2: intc2 {
20				interrupt-controller;
21				#interrupt-cells = <2>;
22			};
23
24			test_intmap0: intmap0 {
25				#interrupt-cells = <1>;
26				#address-cells = <0>;
27				interrupt-map = <1 &test_intc0 9>,
28						<2 &test_intc1 10 11 12>,
29						<3 &test_intc2 13 14>,
30						<4 &test_intc2 15 16>;
31			};
32
33			test_intmap1: intmap1 {
34				#interrupt-cells = <2>;
35				/*
36				 * #address-cells is required
37				 *
38				 * The property is not provided in this node to
39				 * test that the code will properly handle
40				 * this case for legacy .dts files.
41				 *
42				 * Not having #address-cells will result in a
43				 * warning from dtc starting with
44				 * version v1.6.1-19-g0a3a9d3449c8
45				 * The warning is suppressed by adding
46				 * -Wno-interrupt_map to the Makefile for all
47				 * .dts files this include this .dtsi
48				#address-cells = <1>;
49				 */
50				interrupt-map = <0x5000 1 2 &test_intc0 15>;
51			};
52
53			test_intc_intmap0: intc-intmap0 {
54				#interrupt-cells = <1>;
55				#address-cells = <1>;
56				interrupt-controller;
57				interrupt-map = <0x6000 1 &test_intc_intmap0 0x7000 2>;
58			};
59
60			interrupts0 {
61				interrupt-parent = <&test_intc0>;
62				interrupts = <1>, <2>, <3>, <4>;
63			};
64
65			interrupts1 {
66				interrupt-parent = <&test_intmap0>;
67				interrupts = <1>, <2>, <3>, <4>;
68			};
69
70			interrupts2 {
71				reg = <0x6000 0x100>;
72				interrupt-parent = <&test_intc_intmap0>;
73				interrupts = <1>;
74			};
75
76			interrupts-extended0 {
77				reg = <0x5000 0x100>;
78				/*
79				 * Do not remove &test_intmap1 from this
80				 * property - see comment in node intmap1
81				 */
82				interrupts-extended = <&test_intc0 1>,
83						      <&test_intc1 2 3 4>,
84						      <&test_intc2 5 6>,
85						      <&test_intmap0 1>,
86						      <&test_intmap0 2>,
87						      <&test_intmap0 3>,
88						      <&test_intmap1 1 2>;
89			};
90		};
91
92		testcase-device1 {
93			compatible = "testcase-device";
94			interrupt-parent = <&test_intc0>;
95			interrupts = <1>;
96		};
97
98		/*
99		 * testcase data that intentionally results in an error is
100		 * located in testcases.dts instead of in this file so that the
101		 * static overlay apply tests will not include the error.
102		 */
103	};
104};
105