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 107d2d16ccSHector Martin#include <dt-bindings/interrupt-controller/apple-aic.h> 117d2d16ccSHector Martin#include <dt-bindings/interrupt-controller/irq.h> 120a8282b8SMark Kettenis#include <dt-bindings/pinctrl/apple.h> 137d2d16ccSHector Martin 147d2d16ccSHector Martin/ { 157d2d16ccSHector Martin compatible = "apple,t8103", "apple,arm-platform"; 167d2d16ccSHector Martin 177d2d16ccSHector Martin #address-cells = <2>; 187d2d16ccSHector Martin #size-cells = <2>; 197d2d16ccSHector Martin 207d2d16ccSHector Martin cpus { 217d2d16ccSHector Martin #address-cells = <2>; 227d2d16ccSHector Martin #size-cells = <0>; 237d2d16ccSHector Martin 247d2d16ccSHector Martin cpu0: cpu@0 { 257d2d16ccSHector Martin compatible = "apple,icestorm"; 267d2d16ccSHector Martin device_type = "cpu"; 277d2d16ccSHector Martin reg = <0x0 0x0>; 287d2d16ccSHector Martin enable-method = "spin-table"; 297d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 307d2d16ccSHector Martin }; 317d2d16ccSHector Martin 327d2d16ccSHector Martin cpu1: cpu@1 { 337d2d16ccSHector Martin compatible = "apple,icestorm"; 347d2d16ccSHector Martin device_type = "cpu"; 357d2d16ccSHector Martin reg = <0x0 0x1>; 367d2d16ccSHector Martin enable-method = "spin-table"; 377d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 387d2d16ccSHector Martin }; 397d2d16ccSHector Martin 407d2d16ccSHector Martin cpu2: cpu@2 { 417d2d16ccSHector Martin compatible = "apple,icestorm"; 427d2d16ccSHector Martin device_type = "cpu"; 437d2d16ccSHector Martin reg = <0x0 0x2>; 447d2d16ccSHector Martin enable-method = "spin-table"; 457d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 467d2d16ccSHector Martin }; 477d2d16ccSHector Martin 487d2d16ccSHector Martin cpu3: cpu@3 { 497d2d16ccSHector Martin compatible = "apple,icestorm"; 507d2d16ccSHector Martin device_type = "cpu"; 517d2d16ccSHector Martin reg = <0x0 0x3>; 527d2d16ccSHector Martin enable-method = "spin-table"; 537d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 547d2d16ccSHector Martin }; 557d2d16ccSHector Martin 567d2d16ccSHector Martin cpu4: cpu@10100 { 577d2d16ccSHector Martin compatible = "apple,firestorm"; 587d2d16ccSHector Martin device_type = "cpu"; 597d2d16ccSHector Martin reg = <0x0 0x10100>; 607d2d16ccSHector Martin enable-method = "spin-table"; 617d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 627d2d16ccSHector Martin }; 637d2d16ccSHector Martin 647d2d16ccSHector Martin cpu5: cpu@10101 { 657d2d16ccSHector Martin compatible = "apple,firestorm"; 667d2d16ccSHector Martin device_type = "cpu"; 677d2d16ccSHector Martin reg = <0x0 0x10101>; 687d2d16ccSHector Martin enable-method = "spin-table"; 697d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 707d2d16ccSHector Martin }; 717d2d16ccSHector Martin 727d2d16ccSHector Martin cpu6: cpu@10102 { 737d2d16ccSHector Martin compatible = "apple,firestorm"; 747d2d16ccSHector Martin device_type = "cpu"; 757d2d16ccSHector Martin reg = <0x0 0x10102>; 767d2d16ccSHector Martin enable-method = "spin-table"; 777d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 787d2d16ccSHector Martin }; 797d2d16ccSHector Martin 807d2d16ccSHector Martin cpu7: cpu@10103 { 817d2d16ccSHector Martin compatible = "apple,firestorm"; 827d2d16ccSHector Martin device_type = "cpu"; 837d2d16ccSHector Martin reg = <0x0 0x10103>; 847d2d16ccSHector Martin enable-method = "spin-table"; 857d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 867d2d16ccSHector Martin }; 877d2d16ccSHector Martin }; 887d2d16ccSHector Martin 897d2d16ccSHector Martin timer { 907d2d16ccSHector Martin compatible = "arm,armv8-timer"; 917d2d16ccSHector Martin interrupt-parent = <&aic>; 927d2d16ccSHector Martin interrupt-names = "phys", "virt", "hyp-phys", "hyp-virt"; 937d2d16ccSHector Martin interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>, 947d2d16ccSHector Martin <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>, 957d2d16ccSHector Martin <AIC_FIQ AIC_TMR_HV_PHYS IRQ_TYPE_LEVEL_HIGH>, 967d2d16ccSHector Martin <AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>; 977d2d16ccSHector Martin }; 987d2d16ccSHector Martin 997d2d16ccSHector Martin clk24: clock-24m { 1007d2d16ccSHector Martin compatible = "fixed-clock"; 1017d2d16ccSHector Martin #clock-cells = <0>; 1027d2d16ccSHector Martin clock-frequency = <24000000>; 1037d2d16ccSHector Martin clock-output-names = "clk24"; 1047d2d16ccSHector Martin }; 1057d2d16ccSHector Martin 1067d2d16ccSHector Martin soc { 1077d2d16ccSHector Martin compatible = "simple-bus"; 1087d2d16ccSHector Martin #address-cells = <2>; 1097d2d16ccSHector Martin #size-cells = <2>; 1107d2d16ccSHector Martin 1117d2d16ccSHector Martin ranges; 1127d2d16ccSHector Martin nonposted-mmio; 1137d2d16ccSHector Martin 1147d2d16ccSHector Martin serial0: serial@235200000 { 1157d2d16ccSHector Martin compatible = "apple,s5l-uart"; 1167d2d16ccSHector Martin reg = <0x2 0x35200000 0x0 0x1000>; 1177d2d16ccSHector Martin reg-io-width = <4>; 1187d2d16ccSHector Martin interrupt-parent = <&aic>; 1197d2d16ccSHector Martin interrupts = <AIC_IRQ 605 IRQ_TYPE_LEVEL_HIGH>; 1207d2d16ccSHector Martin /* 1217d2d16ccSHector Martin * TODO: figure out the clocking properly, there may 1227d2d16ccSHector Martin * be a third selectable clock. 1237d2d16ccSHector Martin */ 1247d2d16ccSHector Martin clocks = <&clk24>, <&clk24>; 1257d2d16ccSHector Martin clock-names = "uart", "clk_uart_baud0"; 1267d2d16ccSHector Martin status = "disabled"; 1277d2d16ccSHector Martin }; 1287d2d16ccSHector Martin 1297d2d16ccSHector Martin aic: interrupt-controller@23b100000 { 1307d2d16ccSHector Martin compatible = "apple,t8103-aic", "apple,aic"; 1317d2d16ccSHector Martin #interrupt-cells = <3>; 1327d2d16ccSHector Martin interrupt-controller; 1337d2d16ccSHector Martin reg = <0x2 0x3b100000 0x0 0x8000>; 1347d2d16ccSHector Martin }; 1350a8282b8SMark Kettenis 1360a8282b8SMark Kettenis pinctrl_ap: pinctrl@23c100000 { 1370a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 1380a8282b8SMark Kettenis reg = <0x2 0x3c100000 0x0 0x100000>; 1390a8282b8SMark Kettenis 1400a8282b8SMark Kettenis gpio-controller; 1410a8282b8SMark Kettenis #gpio-cells = <2>; 1420a8282b8SMark Kettenis gpio-ranges = <&pinctrl_ap 0 0 212>; 1430a8282b8SMark Kettenis apple,npins = <212>; 1440a8282b8SMark Kettenis 1450a8282b8SMark Kettenis interrupt-controller; 146*0668639eSJanne Grunau #interrupt-cells = <2>; 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; 173*0668639eSJanne Grunau #interrupt-cells = <2>; 1740a8282b8SMark Kettenis interrupt-parent = <&aic>; 1750a8282b8SMark Kettenis interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>, 1760a8282b8SMark Kettenis <AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>, 1770a8282b8SMark Kettenis <AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>, 1780a8282b8SMark Kettenis <AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>, 1790a8282b8SMark Kettenis <AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>, 1800a8282b8SMark Kettenis <AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>, 1810a8282b8SMark Kettenis <AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>; 1820a8282b8SMark Kettenis }; 1830a8282b8SMark Kettenis 1840a8282b8SMark Kettenis pinctrl_nub: pinctrl@23d1f0000 { 1850a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 1860a8282b8SMark Kettenis reg = <0x2 0x3d1f0000 0x0 0x4000>; 1870a8282b8SMark Kettenis 1880a8282b8SMark Kettenis gpio-controller; 1890a8282b8SMark Kettenis #gpio-cells = <2>; 1900a8282b8SMark Kettenis gpio-ranges = <&pinctrl_nub 0 0 23>; 1910a8282b8SMark Kettenis apple,npins = <23>; 1920a8282b8SMark Kettenis 1930a8282b8SMark Kettenis interrupt-controller; 194*0668639eSJanne Grunau #interrupt-cells = <2>; 1950a8282b8SMark Kettenis interrupt-parent = <&aic>; 1960a8282b8SMark Kettenis interrupts = <AIC_IRQ 330 IRQ_TYPE_LEVEL_HIGH>, 1970a8282b8SMark Kettenis <AIC_IRQ 331 IRQ_TYPE_LEVEL_HIGH>, 1980a8282b8SMark Kettenis <AIC_IRQ 332 IRQ_TYPE_LEVEL_HIGH>, 1990a8282b8SMark Kettenis <AIC_IRQ 333 IRQ_TYPE_LEVEL_HIGH>, 2000a8282b8SMark Kettenis <AIC_IRQ 334 IRQ_TYPE_LEVEL_HIGH>, 2010a8282b8SMark Kettenis <AIC_IRQ 335 IRQ_TYPE_LEVEL_HIGH>, 2020a8282b8SMark Kettenis <AIC_IRQ 336 IRQ_TYPE_LEVEL_HIGH>; 2030a8282b8SMark Kettenis }; 2040a8282b8SMark Kettenis 2050a8282b8SMark Kettenis pinctrl_smc: pinctrl@23e820000 { 2060a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 2070a8282b8SMark Kettenis reg = <0x2 0x3e820000 0x0 0x4000>; 2080a8282b8SMark Kettenis 2090a8282b8SMark Kettenis gpio-controller; 2100a8282b8SMark Kettenis #gpio-cells = <2>; 2110a8282b8SMark Kettenis gpio-ranges = <&pinctrl_smc 0 0 16>; 2120a8282b8SMark Kettenis apple,npins = <16>; 2130a8282b8SMark Kettenis 2140a8282b8SMark Kettenis interrupt-controller; 215*0668639eSJanne Grunau #interrupt-cells = <2>; 2160a8282b8SMark Kettenis interrupt-parent = <&aic>; 2170a8282b8SMark Kettenis interrupts = <AIC_IRQ 391 IRQ_TYPE_LEVEL_HIGH>, 2180a8282b8SMark Kettenis <AIC_IRQ 392 IRQ_TYPE_LEVEL_HIGH>, 2190a8282b8SMark Kettenis <AIC_IRQ 393 IRQ_TYPE_LEVEL_HIGH>, 2200a8282b8SMark Kettenis <AIC_IRQ 394 IRQ_TYPE_LEVEL_HIGH>, 2210a8282b8SMark Kettenis <AIC_IRQ 395 IRQ_TYPE_LEVEL_HIGH>, 2220a8282b8SMark Kettenis <AIC_IRQ 396 IRQ_TYPE_LEVEL_HIGH>, 2230a8282b8SMark Kettenis <AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>; 2240a8282b8SMark Kettenis }; 225ff2a8d91SMark Kettenis 2263c866bb7SMarc Zyngier pcie0_dart_0: dart@681008000 { 2273c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 2283c866bb7SMarc Zyngier reg = <0x6 0x81008000 0x0 0x4000>; 2293c866bb7SMarc Zyngier #iommu-cells = <1>; 2303c866bb7SMarc Zyngier interrupt-parent = <&aic>; 2313c866bb7SMarc Zyngier interrupts = <AIC_IRQ 696 IRQ_TYPE_LEVEL_HIGH>; 2323c866bb7SMarc Zyngier }; 2333c866bb7SMarc Zyngier 2343c866bb7SMarc Zyngier pcie0_dart_1: dart@682008000 { 2353c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 2363c866bb7SMarc Zyngier reg = <0x6 0x82008000 0x0 0x4000>; 2373c866bb7SMarc Zyngier #iommu-cells = <1>; 2383c866bb7SMarc Zyngier interrupt-parent = <&aic>; 2393c866bb7SMarc Zyngier interrupts = <AIC_IRQ 699 IRQ_TYPE_LEVEL_HIGH>; 2403c866bb7SMarc Zyngier }; 2413c866bb7SMarc Zyngier 2423c866bb7SMarc Zyngier pcie0_dart_2: dart@683008000 { 2433c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 2443c866bb7SMarc Zyngier reg = <0x6 0x83008000 0x0 0x4000>; 2453c866bb7SMarc Zyngier #iommu-cells = <1>; 2463c866bb7SMarc Zyngier interrupt-parent = <&aic>; 2473c866bb7SMarc Zyngier interrupts = <AIC_IRQ 702 IRQ_TYPE_LEVEL_HIGH>; 2483c866bb7SMarc Zyngier }; 2493c866bb7SMarc Zyngier 250ff2a8d91SMark Kettenis pcie0: pcie@690000000 { 251ff2a8d91SMark Kettenis compatible = "apple,t8103-pcie", "apple,pcie"; 252ff2a8d91SMark Kettenis device_type = "pci"; 253ff2a8d91SMark Kettenis 254ff2a8d91SMark Kettenis reg = <0x6 0x90000000 0x0 0x1000000>, 255ff2a8d91SMark Kettenis <0x6 0x80000000 0x0 0x100000>, 256ff2a8d91SMark Kettenis <0x6 0x81000000 0x0 0x4000>, 257ff2a8d91SMark Kettenis <0x6 0x82000000 0x0 0x4000>, 258ff2a8d91SMark Kettenis <0x6 0x83000000 0x0 0x4000>; 259ff2a8d91SMark Kettenis reg-names = "config", "rc", "port0", "port1", "port2"; 260ff2a8d91SMark Kettenis 261ff2a8d91SMark Kettenis interrupt-parent = <&aic>; 262ff2a8d91SMark Kettenis interrupts = <AIC_IRQ 695 IRQ_TYPE_LEVEL_HIGH>, 263ff2a8d91SMark Kettenis <AIC_IRQ 698 IRQ_TYPE_LEVEL_HIGH>, 264ff2a8d91SMark Kettenis <AIC_IRQ 701 IRQ_TYPE_LEVEL_HIGH>; 265ff2a8d91SMark Kettenis 266ff2a8d91SMark Kettenis msi-controller; 267ff2a8d91SMark Kettenis msi-parent = <&pcie0>; 268ff2a8d91SMark Kettenis msi-ranges = <&aic AIC_IRQ 704 IRQ_TYPE_EDGE_RISING 32>; 269ff2a8d91SMark Kettenis 2703c866bb7SMarc Zyngier 2713c866bb7SMarc Zyngier iommu-map = <0x100 &pcie0_dart_0 1 1>, 2723c866bb7SMarc Zyngier <0x200 &pcie0_dart_1 1 1>, 2733c866bb7SMarc Zyngier <0x300 &pcie0_dart_2 1 1>; 2743c866bb7SMarc Zyngier iommu-map-mask = <0xff00>; 2753c866bb7SMarc Zyngier 276ff2a8d91SMark Kettenis bus-range = <0 3>; 277ff2a8d91SMark Kettenis #address-cells = <3>; 278ff2a8d91SMark Kettenis #size-cells = <2>; 279ff2a8d91SMark Kettenis ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>, 280ff2a8d91SMark Kettenis <0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>; 281ff2a8d91SMark Kettenis 282ff2a8d91SMark Kettenis pinctrl-0 = <&pcie_pins>; 283ff2a8d91SMark Kettenis pinctrl-names = "default"; 284ff2a8d91SMark Kettenis 285128888a6SMarc Zyngier port00: pci@0,0 { 286ff2a8d91SMark Kettenis device_type = "pci"; 287ff2a8d91SMark Kettenis reg = <0x0 0x0 0x0 0x0 0x0>; 288ff2a8d91SMark Kettenis reset-gpios = <&pinctrl_ap 152 0>; 289ff2a8d91SMark Kettenis max-link-speed = <2>; 290ff2a8d91SMark Kettenis 291ff2a8d91SMark Kettenis #address-cells = <3>; 292ff2a8d91SMark Kettenis #size-cells = <2>; 293ff2a8d91SMark Kettenis ranges; 294128888a6SMarc Zyngier 295128888a6SMarc Zyngier interrupt-controller; 296128888a6SMarc Zyngier #interrupt-cells = <1>; 297128888a6SMarc Zyngier 298128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 299128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port00 0 0 0 0>, 300128888a6SMarc Zyngier <0 0 0 2 &port00 0 0 0 1>, 301128888a6SMarc Zyngier <0 0 0 3 &port00 0 0 0 2>, 302128888a6SMarc Zyngier <0 0 0 4 &port00 0 0 0 3>; 303ff2a8d91SMark Kettenis }; 304ff2a8d91SMark Kettenis 305128888a6SMarc Zyngier port01: pci@1,0 { 306ff2a8d91SMark Kettenis device_type = "pci"; 307ff2a8d91SMark Kettenis reg = <0x800 0x0 0x0 0x0 0x0>; 308ff2a8d91SMark Kettenis reset-gpios = <&pinctrl_ap 153 0>; 309ff2a8d91SMark Kettenis max-link-speed = <2>; 310ff2a8d91SMark Kettenis 311ff2a8d91SMark Kettenis #address-cells = <3>; 312ff2a8d91SMark Kettenis #size-cells = <2>; 313ff2a8d91SMark Kettenis ranges; 314128888a6SMarc Zyngier 315128888a6SMarc Zyngier interrupt-controller; 316128888a6SMarc Zyngier #interrupt-cells = <1>; 317128888a6SMarc Zyngier 318128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 319128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port01 0 0 0 0>, 320128888a6SMarc Zyngier <0 0 0 2 &port01 0 0 0 1>, 321128888a6SMarc Zyngier <0 0 0 3 &port01 0 0 0 2>, 322128888a6SMarc Zyngier <0 0 0 4 &port01 0 0 0 3>; 323ff2a8d91SMark Kettenis }; 324ff2a8d91SMark Kettenis 325128888a6SMarc Zyngier port02: pci@2,0 { 326ff2a8d91SMark Kettenis device_type = "pci"; 327ff2a8d91SMark Kettenis reg = <0x1000 0x0 0x0 0x0 0x0>; 328ff2a8d91SMark Kettenis reset-gpios = <&pinctrl_ap 33 0>; 329ff2a8d91SMark Kettenis max-link-speed = <1>; 330ff2a8d91SMark Kettenis 331ff2a8d91SMark Kettenis #address-cells = <3>; 332ff2a8d91SMark Kettenis #size-cells = <2>; 333ff2a8d91SMark Kettenis ranges; 334128888a6SMarc Zyngier 335128888a6SMarc Zyngier interrupt-controller; 336128888a6SMarc Zyngier #interrupt-cells = <1>; 337128888a6SMarc Zyngier 338128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 339128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port02 0 0 0 0>, 340128888a6SMarc Zyngier <0 0 0 2 &port02 0 0 0 1>, 341128888a6SMarc Zyngier <0 0 0 3 &port02 0 0 0 2>, 342128888a6SMarc Zyngier <0 0 0 4 &port02 0 0 0 3>; 343ff2a8d91SMark Kettenis }; 344ff2a8d91SMark Kettenis }; 3457d2d16ccSHector Martin }; 3467d2d16ccSHector Martin}; 347