17d2d16ccSHector Martin// SPDX-License-Identifier: GPL-2.0+ OR MIT
27d2d16ccSHector Martin/*
37d2d16ccSHector Martin * Apple T8103 "M1" SoC
47d2d16ccSHector Martin *
57d2d16ccSHector Martin * Other names: H13G, "Tonga"
67d2d16ccSHector Martin *
77d2d16ccSHector Martin * Copyright The Asahi Linux Contributors
87d2d16ccSHector Martin */
97d2d16ccSHector Martin
10*5b970dfcSMarc Zyngier#include <dt-bindings/gpio/gpio.h>
117d2d16ccSHector Martin#include <dt-bindings/interrupt-controller/apple-aic.h>
127d2d16ccSHector Martin#include <dt-bindings/interrupt-controller/irq.h>
130a8282b8SMark Kettenis#include <dt-bindings/pinctrl/apple.h>
147d2d16ccSHector Martin
157d2d16ccSHector Martin/ {
167d2d16ccSHector Martin	compatible = "apple,t8103", "apple,arm-platform";
177d2d16ccSHector Martin
187d2d16ccSHector Martin	#address-cells = <2>;
197d2d16ccSHector Martin	#size-cells = <2>;
207d2d16ccSHector Martin
217d2d16ccSHector Martin	cpus {
227d2d16ccSHector Martin		#address-cells = <2>;
237d2d16ccSHector Martin		#size-cells = <0>;
247d2d16ccSHector Martin
257d2d16ccSHector Martin		cpu0: cpu@0 {
267d2d16ccSHector Martin			compatible = "apple,icestorm";
277d2d16ccSHector Martin			device_type = "cpu";
287d2d16ccSHector Martin			reg = <0x0 0x0>;
297d2d16ccSHector Martin			enable-method = "spin-table";
307d2d16ccSHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
317d2d16ccSHector Martin		};
327d2d16ccSHector Martin
337d2d16ccSHector Martin		cpu1: cpu@1 {
347d2d16ccSHector Martin			compatible = "apple,icestorm";
357d2d16ccSHector Martin			device_type = "cpu";
367d2d16ccSHector Martin			reg = <0x0 0x1>;
377d2d16ccSHector Martin			enable-method = "spin-table";
387d2d16ccSHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
397d2d16ccSHector Martin		};
407d2d16ccSHector Martin
417d2d16ccSHector Martin		cpu2: cpu@2 {
427d2d16ccSHector Martin			compatible = "apple,icestorm";
437d2d16ccSHector Martin			device_type = "cpu";
447d2d16ccSHector Martin			reg = <0x0 0x2>;
457d2d16ccSHector Martin			enable-method = "spin-table";
467d2d16ccSHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
477d2d16ccSHector Martin		};
487d2d16ccSHector Martin
497d2d16ccSHector Martin		cpu3: cpu@3 {
507d2d16ccSHector Martin			compatible = "apple,icestorm";
517d2d16ccSHector Martin			device_type = "cpu";
527d2d16ccSHector Martin			reg = <0x0 0x3>;
537d2d16ccSHector Martin			enable-method = "spin-table";
547d2d16ccSHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
557d2d16ccSHector Martin		};
567d2d16ccSHector Martin
577d2d16ccSHector Martin		cpu4: cpu@10100 {
587d2d16ccSHector Martin			compatible = "apple,firestorm";
597d2d16ccSHector Martin			device_type = "cpu";
607d2d16ccSHector Martin			reg = <0x0 0x10100>;
617d2d16ccSHector Martin			enable-method = "spin-table";
627d2d16ccSHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
637d2d16ccSHector Martin		};
647d2d16ccSHector Martin
657d2d16ccSHector Martin		cpu5: cpu@10101 {
667d2d16ccSHector Martin			compatible = "apple,firestorm";
677d2d16ccSHector Martin			device_type = "cpu";
687d2d16ccSHector Martin			reg = <0x0 0x10101>;
697d2d16ccSHector Martin			enable-method = "spin-table";
707d2d16ccSHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
717d2d16ccSHector Martin		};
727d2d16ccSHector Martin
737d2d16ccSHector Martin		cpu6: cpu@10102 {
747d2d16ccSHector Martin			compatible = "apple,firestorm";
757d2d16ccSHector Martin			device_type = "cpu";
767d2d16ccSHector Martin			reg = <0x0 0x10102>;
777d2d16ccSHector Martin			enable-method = "spin-table";
787d2d16ccSHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
797d2d16ccSHector Martin		};
807d2d16ccSHector Martin
817d2d16ccSHector Martin		cpu7: cpu@10103 {
827d2d16ccSHector Martin			compatible = "apple,firestorm";
837d2d16ccSHector Martin			device_type = "cpu";
847d2d16ccSHector Martin			reg = <0x0 0x10103>;
857d2d16ccSHector Martin			enable-method = "spin-table";
867d2d16ccSHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
877d2d16ccSHector Martin		};
887d2d16ccSHector Martin	};
897d2d16ccSHector Martin
907d2d16ccSHector Martin	timer {
917d2d16ccSHector Martin		compatible = "arm,armv8-timer";
927d2d16ccSHector Martin		interrupt-parent = <&aic>;
937d2d16ccSHector Martin		interrupt-names = "phys", "virt", "hyp-phys", "hyp-virt";
947d2d16ccSHector Martin		interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>,
957d2d16ccSHector Martin			     <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>,
967d2d16ccSHector Martin			     <AIC_FIQ AIC_TMR_HV_PHYS IRQ_TYPE_LEVEL_HIGH>,
977d2d16ccSHector Martin			     <AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>;
987d2d16ccSHector Martin	};
997d2d16ccSHector Martin
1007d2d16ccSHector Martin	clk24: clock-24m {
1017d2d16ccSHector Martin		compatible = "fixed-clock";
1027d2d16ccSHector Martin		#clock-cells = <0>;
1037d2d16ccSHector Martin		clock-frequency = <24000000>;
1047d2d16ccSHector Martin		clock-output-names = "clk24";
1057d2d16ccSHector Martin	};
1067d2d16ccSHector Martin
1077d2d16ccSHector Martin	soc {
1087d2d16ccSHector Martin		compatible = "simple-bus";
1097d2d16ccSHector Martin		#address-cells = <2>;
1107d2d16ccSHector Martin		#size-cells = <2>;
1117d2d16ccSHector Martin
1127d2d16ccSHector Martin		ranges;
1137d2d16ccSHector Martin		nonposted-mmio;
1147d2d16ccSHector Martin
1157d2d16ccSHector Martin		serial0: serial@235200000 {
1167d2d16ccSHector Martin			compatible = "apple,s5l-uart";
1177d2d16ccSHector Martin			reg = <0x2 0x35200000 0x0 0x1000>;
1187d2d16ccSHector Martin			reg-io-width = <4>;
1197d2d16ccSHector Martin			interrupt-parent = <&aic>;
1207d2d16ccSHector Martin			interrupts = <AIC_IRQ 605 IRQ_TYPE_LEVEL_HIGH>;
1217d2d16ccSHector Martin			/*
1227d2d16ccSHector Martin			 * TODO: figure out the clocking properly, there may
1237d2d16ccSHector Martin			 * be a third selectable clock.
1247d2d16ccSHector Martin			 */
1257d2d16ccSHector Martin			clocks = <&clk24>, <&clk24>;
1267d2d16ccSHector Martin			clock-names = "uart", "clk_uart_baud0";
1277d2d16ccSHector Martin			status = "disabled";
1287d2d16ccSHector Martin		};
1297d2d16ccSHector Martin
1307d2d16ccSHector Martin		aic: interrupt-controller@23b100000 {
1317d2d16ccSHector Martin			compatible = "apple,t8103-aic", "apple,aic";
1327d2d16ccSHector Martin			#interrupt-cells = <3>;
1337d2d16ccSHector Martin			interrupt-controller;
1347d2d16ccSHector Martin			reg = <0x2 0x3b100000 0x0 0x8000>;
1357d2d16ccSHector Martin		};
1360a8282b8SMark Kettenis
1370a8282b8SMark Kettenis		pinctrl_ap: pinctrl@23c100000 {
1380a8282b8SMark Kettenis			compatible = "apple,t8103-pinctrl", "apple,pinctrl";
1390a8282b8SMark Kettenis			reg = <0x2 0x3c100000 0x0 0x100000>;
1400a8282b8SMark Kettenis
1410a8282b8SMark Kettenis			gpio-controller;
1420a8282b8SMark Kettenis			#gpio-cells = <2>;
1430a8282b8SMark Kettenis			gpio-ranges = <&pinctrl_ap 0 0 212>;
1440a8282b8SMark Kettenis			apple,npins = <212>;
1450a8282b8SMark Kettenis
1460a8282b8SMark Kettenis			interrupt-controller;
1470a8282b8SMark Kettenis			interrupt-parent = <&aic>;
1480a8282b8SMark Kettenis			interrupts = <AIC_IRQ 190 IRQ_TYPE_LEVEL_HIGH>,
1490a8282b8SMark Kettenis				     <AIC_IRQ 191 IRQ_TYPE_LEVEL_HIGH>,
1500a8282b8SMark Kettenis				     <AIC_IRQ 192 IRQ_TYPE_LEVEL_HIGH>,
1510a8282b8SMark Kettenis				     <AIC_IRQ 193 IRQ_TYPE_LEVEL_HIGH>,
1520a8282b8SMark Kettenis				     <AIC_IRQ 194 IRQ_TYPE_LEVEL_HIGH>,
1530a8282b8SMark Kettenis				     <AIC_IRQ 195 IRQ_TYPE_LEVEL_HIGH>,
1540a8282b8SMark Kettenis				     <AIC_IRQ 196 IRQ_TYPE_LEVEL_HIGH>;
1550a8282b8SMark Kettenis
1560a8282b8SMark Kettenis			pcie_pins: pcie-pins {
1570a8282b8SMark Kettenis				pinmux = <APPLE_PINMUX(150, 1)>,
1580a8282b8SMark Kettenis					 <APPLE_PINMUX(151, 1)>,
1590a8282b8SMark Kettenis					 <APPLE_PINMUX(32, 1)>;
1600a8282b8SMark Kettenis			};
1610a8282b8SMark Kettenis		};
1620a8282b8SMark Kettenis
1630a8282b8SMark Kettenis		pinctrl_aop: pinctrl@24a820000 {
1640a8282b8SMark Kettenis			compatible = "apple,t8103-pinctrl", "apple,pinctrl";
1650a8282b8SMark Kettenis			reg = <0x2 0x4a820000 0x0 0x4000>;
1660a8282b8SMark Kettenis
1670a8282b8SMark Kettenis			gpio-controller;
1680a8282b8SMark Kettenis			#gpio-cells = <2>;
1690a8282b8SMark Kettenis			gpio-ranges = <&pinctrl_aop 0 0 42>;
1700a8282b8SMark Kettenis			apple,npins = <42>;
1710a8282b8SMark Kettenis
1720a8282b8SMark Kettenis			interrupt-controller;
1730a8282b8SMark Kettenis			interrupt-parent = <&aic>;
1740a8282b8SMark Kettenis			interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>,
1750a8282b8SMark Kettenis				     <AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>,
1760a8282b8SMark Kettenis				     <AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>,
1770a8282b8SMark Kettenis				     <AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>,
1780a8282b8SMark Kettenis				     <AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>,
1790a8282b8SMark Kettenis				     <AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>,
1800a8282b8SMark Kettenis				     <AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>;
1810a8282b8SMark Kettenis		};
1820a8282b8SMark Kettenis
1830a8282b8SMark Kettenis		pinctrl_nub: pinctrl@23d1f0000 {
1840a8282b8SMark Kettenis			compatible = "apple,t8103-pinctrl", "apple,pinctrl";
1850a8282b8SMark Kettenis			reg = <0x2 0x3d1f0000 0x0 0x4000>;
1860a8282b8SMark Kettenis
1870a8282b8SMark Kettenis			gpio-controller;
1880a8282b8SMark Kettenis			#gpio-cells = <2>;
1890a8282b8SMark Kettenis			gpio-ranges = <&pinctrl_nub 0 0 23>;
1900a8282b8SMark Kettenis			apple,npins = <23>;
1910a8282b8SMark Kettenis
1920a8282b8SMark Kettenis			interrupt-controller;
1930a8282b8SMark Kettenis			interrupt-parent = <&aic>;
1940a8282b8SMark Kettenis			interrupts = <AIC_IRQ 330 IRQ_TYPE_LEVEL_HIGH>,
1950a8282b8SMark Kettenis				     <AIC_IRQ 331 IRQ_TYPE_LEVEL_HIGH>,
1960a8282b8SMark Kettenis				     <AIC_IRQ 332 IRQ_TYPE_LEVEL_HIGH>,
1970a8282b8SMark Kettenis				     <AIC_IRQ 333 IRQ_TYPE_LEVEL_HIGH>,
1980a8282b8SMark Kettenis				     <AIC_IRQ 334 IRQ_TYPE_LEVEL_HIGH>,
1990a8282b8SMark Kettenis				     <AIC_IRQ 335 IRQ_TYPE_LEVEL_HIGH>,
2000a8282b8SMark Kettenis				     <AIC_IRQ 336 IRQ_TYPE_LEVEL_HIGH>;
2010a8282b8SMark Kettenis		};
2020a8282b8SMark Kettenis
2030a8282b8SMark Kettenis		pinctrl_smc: pinctrl@23e820000 {
2040a8282b8SMark Kettenis			compatible = "apple,t8103-pinctrl", "apple,pinctrl";
2050a8282b8SMark Kettenis			reg = <0x2 0x3e820000 0x0 0x4000>;
2060a8282b8SMark Kettenis
2070a8282b8SMark Kettenis			gpio-controller;
2080a8282b8SMark Kettenis			#gpio-cells = <2>;
2090a8282b8SMark Kettenis			gpio-ranges = <&pinctrl_smc 0 0 16>;
2100a8282b8SMark Kettenis			apple,npins = <16>;
2110a8282b8SMark Kettenis
2120a8282b8SMark Kettenis			interrupt-controller;
2130a8282b8SMark Kettenis			interrupt-parent = <&aic>;
2140a8282b8SMark Kettenis			interrupts = <AIC_IRQ 391 IRQ_TYPE_LEVEL_HIGH>,
2150a8282b8SMark Kettenis				     <AIC_IRQ 392 IRQ_TYPE_LEVEL_HIGH>,
2160a8282b8SMark Kettenis				     <AIC_IRQ 393 IRQ_TYPE_LEVEL_HIGH>,
2170a8282b8SMark Kettenis				     <AIC_IRQ 394 IRQ_TYPE_LEVEL_HIGH>,
2180a8282b8SMark Kettenis				     <AIC_IRQ 395 IRQ_TYPE_LEVEL_HIGH>,
2190a8282b8SMark Kettenis				     <AIC_IRQ 396 IRQ_TYPE_LEVEL_HIGH>,
2200a8282b8SMark Kettenis				     <AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>;
2210a8282b8SMark Kettenis		};
222ff2a8d91SMark Kettenis
2233c866bb7SMarc Zyngier		pcie0_dart_0: dart@681008000 {
2243c866bb7SMarc Zyngier			compatible = "apple,t8103-dart";
2253c866bb7SMarc Zyngier			reg = <0x6 0x81008000 0x0 0x4000>;
2263c866bb7SMarc Zyngier			#iommu-cells = <1>;
2273c866bb7SMarc Zyngier			interrupt-parent = <&aic>;
2283c866bb7SMarc Zyngier			interrupts = <AIC_IRQ 696 IRQ_TYPE_LEVEL_HIGH>;
2293c866bb7SMarc Zyngier		};
2303c866bb7SMarc Zyngier
2313c866bb7SMarc Zyngier		pcie0_dart_1: dart@682008000 {
2323c866bb7SMarc Zyngier			compatible = "apple,t8103-dart";
2333c866bb7SMarc Zyngier			reg = <0x6 0x82008000 0x0 0x4000>;
2343c866bb7SMarc Zyngier			#iommu-cells = <1>;
2353c866bb7SMarc Zyngier			interrupt-parent = <&aic>;
2363c866bb7SMarc Zyngier			interrupts = <AIC_IRQ 699 IRQ_TYPE_LEVEL_HIGH>;
2373c866bb7SMarc Zyngier		};
2383c866bb7SMarc Zyngier
2393c866bb7SMarc Zyngier		pcie0_dart_2: dart@683008000 {
2403c866bb7SMarc Zyngier			compatible = "apple,t8103-dart";
2413c866bb7SMarc Zyngier			reg = <0x6 0x83008000 0x0 0x4000>;
2423c866bb7SMarc Zyngier			#iommu-cells = <1>;
2433c866bb7SMarc Zyngier			interrupt-parent = <&aic>;
2443c866bb7SMarc Zyngier			interrupts = <AIC_IRQ 702 IRQ_TYPE_LEVEL_HIGH>;
2453c866bb7SMarc Zyngier		};
2463c866bb7SMarc Zyngier
247ff2a8d91SMark Kettenis		pcie0: pcie@690000000 {
248ff2a8d91SMark Kettenis			compatible = "apple,t8103-pcie", "apple,pcie";
249ff2a8d91SMark Kettenis			device_type = "pci";
250ff2a8d91SMark Kettenis
251ff2a8d91SMark Kettenis			reg = <0x6 0x90000000 0x0 0x1000000>,
252ff2a8d91SMark Kettenis			      <0x6 0x80000000 0x0 0x100000>,
253ff2a8d91SMark Kettenis			      <0x6 0x81000000 0x0 0x4000>,
254ff2a8d91SMark Kettenis			      <0x6 0x82000000 0x0 0x4000>,
255ff2a8d91SMark Kettenis			      <0x6 0x83000000 0x0 0x4000>;
256ff2a8d91SMark Kettenis			reg-names = "config", "rc", "port0", "port1", "port2";
257ff2a8d91SMark Kettenis
258ff2a8d91SMark Kettenis			interrupt-parent = <&aic>;
259ff2a8d91SMark Kettenis			interrupts = <AIC_IRQ 695 IRQ_TYPE_LEVEL_HIGH>,
260ff2a8d91SMark Kettenis				     <AIC_IRQ 698 IRQ_TYPE_LEVEL_HIGH>,
261ff2a8d91SMark Kettenis				     <AIC_IRQ 701 IRQ_TYPE_LEVEL_HIGH>;
262ff2a8d91SMark Kettenis
263ff2a8d91SMark Kettenis			msi-controller;
264ff2a8d91SMark Kettenis			msi-parent = <&pcie0>;
265ff2a8d91SMark Kettenis			msi-ranges = <&aic AIC_IRQ 704 IRQ_TYPE_EDGE_RISING 32>;
266ff2a8d91SMark Kettenis
2673c866bb7SMarc Zyngier
2683c866bb7SMarc Zyngier			iommu-map = <0x100 &pcie0_dart_0 1 1>,
2693c866bb7SMarc Zyngier				    <0x200 &pcie0_dart_1 1 1>,
2703c866bb7SMarc Zyngier				    <0x300 &pcie0_dart_2 1 1>;
2713c866bb7SMarc Zyngier			iommu-map-mask = <0xff00>;
2723c866bb7SMarc Zyngier
273ff2a8d91SMark Kettenis			bus-range = <0 3>;
274ff2a8d91SMark Kettenis			#address-cells = <3>;
275ff2a8d91SMark Kettenis			#size-cells = <2>;
276ff2a8d91SMark Kettenis			ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>,
277ff2a8d91SMark Kettenis				 <0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>;
278ff2a8d91SMark Kettenis
279ff2a8d91SMark Kettenis			pinctrl-0 = <&pcie_pins>;
280ff2a8d91SMark Kettenis			pinctrl-names = "default";
281ff2a8d91SMark Kettenis
282128888a6SMarc Zyngier			port00: pci@0,0 {
283ff2a8d91SMark Kettenis				device_type = "pci";
284ff2a8d91SMark Kettenis				reg = <0x0 0x0 0x0 0x0 0x0>;
285*5b970dfcSMarc Zyngier				reset-gpios = <&pinctrl_ap 152 GPIO_ACTIVE_LOW>;
286ff2a8d91SMark Kettenis				max-link-speed = <2>;
287ff2a8d91SMark Kettenis
288ff2a8d91SMark Kettenis				#address-cells = <3>;
289ff2a8d91SMark Kettenis				#size-cells = <2>;
290ff2a8d91SMark Kettenis				ranges;
291128888a6SMarc Zyngier
292128888a6SMarc Zyngier				interrupt-controller;
293128888a6SMarc Zyngier				#interrupt-cells = <1>;
294128888a6SMarc Zyngier
295128888a6SMarc Zyngier				interrupt-map-mask = <0 0 0 7>;
296128888a6SMarc Zyngier				interrupt-map = <0 0 0 1 &port00 0 0 0 0>,
297128888a6SMarc Zyngier						<0 0 0 2 &port00 0 0 0 1>,
298128888a6SMarc Zyngier						<0 0 0 3 &port00 0 0 0 2>,
299128888a6SMarc Zyngier						<0 0 0 4 &port00 0 0 0 3>;
300ff2a8d91SMark Kettenis			};
301ff2a8d91SMark Kettenis
302128888a6SMarc Zyngier			port01: pci@1,0 {
303ff2a8d91SMark Kettenis				device_type = "pci";
304ff2a8d91SMark Kettenis				reg = <0x800 0x0 0x0 0x0 0x0>;
305*5b970dfcSMarc Zyngier				reset-gpios = <&pinctrl_ap 153 GPIO_ACTIVE_LOW>;
306ff2a8d91SMark Kettenis				max-link-speed = <2>;
307ff2a8d91SMark Kettenis
308ff2a8d91SMark Kettenis				#address-cells = <3>;
309ff2a8d91SMark Kettenis				#size-cells = <2>;
310ff2a8d91SMark Kettenis				ranges;
311128888a6SMarc Zyngier
312128888a6SMarc Zyngier				interrupt-controller;
313128888a6SMarc Zyngier				#interrupt-cells = <1>;
314128888a6SMarc Zyngier
315128888a6SMarc Zyngier				interrupt-map-mask = <0 0 0 7>;
316128888a6SMarc Zyngier				interrupt-map = <0 0 0 1 &port01 0 0 0 0>,
317128888a6SMarc Zyngier						<0 0 0 2 &port01 0 0 0 1>,
318128888a6SMarc Zyngier						<0 0 0 3 &port01 0 0 0 2>,
319128888a6SMarc Zyngier						<0 0 0 4 &port01 0 0 0 3>;
320ff2a8d91SMark Kettenis			};
321ff2a8d91SMark Kettenis
322128888a6SMarc Zyngier			port02: pci@2,0 {
323ff2a8d91SMark Kettenis				device_type = "pci";
324ff2a8d91SMark Kettenis				reg = <0x1000 0x0 0x0 0x0 0x0>;
325*5b970dfcSMarc Zyngier				reset-gpios = <&pinctrl_ap 33 GPIO_ACTIVE_LOW>;
326ff2a8d91SMark Kettenis				max-link-speed = <1>;
327ff2a8d91SMark Kettenis
328ff2a8d91SMark Kettenis				#address-cells = <3>;
329ff2a8d91SMark Kettenis				#size-cells = <2>;
330ff2a8d91SMark Kettenis				ranges;
331128888a6SMarc Zyngier
332128888a6SMarc Zyngier				interrupt-controller;
333128888a6SMarc Zyngier				#interrupt-cells = <1>;
334128888a6SMarc Zyngier
335128888a6SMarc Zyngier				interrupt-map-mask = <0 0 0 7>;
336128888a6SMarc Zyngier				interrupt-map = <0 0 0 1 &port02 0 0 0 0>,
337128888a6SMarc Zyngier						<0 0 0 2 &port02 0 0 0 1>,
338128888a6SMarc Zyngier						<0 0 0 3 &port02 0 0 0 2>,
339128888a6SMarc Zyngier						<0 0 0 4 &port02 0 0 0 3>;
340ff2a8d91SMark Kettenis			};
341ff2a8d91SMark Kettenis		};
3427d2d16ccSHector Martin	};
3437d2d16ccSHector Martin};
344