17b0b0191SHector Martin// SPDX-License-Identifier: GPL-2.0+ OR MIT 27b0b0191SHector Martin/* 37b0b0191SHector Martin * Apple T6002 "M1 Ultra" SoC 47b0b0191SHector Martin * 57b0b0191SHector Martin * Other names: H13J, "Jade 2C" 67b0b0191SHector Martin * 77b0b0191SHector Martin * Copyright The Asahi Linux Contributors 87b0b0191SHector Martin */ 97b0b0191SHector Martin 107b0b0191SHector Martin#include <dt-bindings/gpio/gpio.h> 117b0b0191SHector Martin#include <dt-bindings/interrupt-controller/apple-aic.h> 127b0b0191SHector Martin#include <dt-bindings/interrupt-controller/irq.h> 137b0b0191SHector Martin#include <dt-bindings/pinctrl/apple.h> 147b0b0191SHector Martin 157b0b0191SHector Martin#include "multi-die-cpp.h" 167b0b0191SHector Martin 177b0b0191SHector Martin#include "t600x-common.dtsi" 187b0b0191SHector Martin 197b0b0191SHector Martin/ { 207b0b0191SHector Martin compatible = "apple,t6002", "apple,arm-platform"; 217b0b0191SHector Martin 227b0b0191SHector Martin #address-cells = <2>; 237b0b0191SHector Martin #size-cells = <2>; 247b0b0191SHector Martin 257b0b0191SHector Martin cpus { 267b0b0191SHector Martin cpu_e10: cpu@800 { 277b0b0191SHector Martin compatible = "apple,icestorm"; 287b0b0191SHector Martin device_type = "cpu"; 297b0b0191SHector Martin reg = <0x0 0x800>; 307b0b0191SHector Martin enable-method = "spin-table"; 317b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 32*83fb5b55SRob Herring next-level-cache = <&l2_cache_3>; 33*83fb5b55SRob Herring i-cache-size = <0x20000>; 34*83fb5b55SRob Herring d-cache-size = <0x10000>; 357b0b0191SHector Martin }; 367b0b0191SHector Martin 377b0b0191SHector Martin cpu_e11: cpu@801 { 387b0b0191SHector Martin compatible = "apple,icestorm"; 397b0b0191SHector Martin device_type = "cpu"; 407b0b0191SHector Martin reg = <0x0 0x801>; 417b0b0191SHector Martin enable-method = "spin-table"; 427b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 43*83fb5b55SRob Herring next-level-cache = <&l2_cache_3>; 44*83fb5b55SRob Herring i-cache-size = <0x20000>; 45*83fb5b55SRob Herring d-cache-size = <0x10000>; 467b0b0191SHector Martin }; 477b0b0191SHector Martin 487b0b0191SHector Martin cpu_p20: cpu@10900 { 497b0b0191SHector Martin compatible = "apple,firestorm"; 507b0b0191SHector Martin device_type = "cpu"; 517b0b0191SHector Martin reg = <0x0 0x10900>; 527b0b0191SHector Martin enable-method = "spin-table"; 537b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 54*83fb5b55SRob Herring next-level-cache = <&l2_cache_4>; 55*83fb5b55SRob Herring i-cache-size = <0x30000>; 56*83fb5b55SRob Herring d-cache-size = <0x20000>; 577b0b0191SHector Martin }; 587b0b0191SHector Martin 597b0b0191SHector Martin cpu_p21: cpu@10901 { 607b0b0191SHector Martin compatible = "apple,firestorm"; 617b0b0191SHector Martin device_type = "cpu"; 627b0b0191SHector Martin reg = <0x0 0x10901>; 637b0b0191SHector Martin enable-method = "spin-table"; 647b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 65*83fb5b55SRob Herring next-level-cache = <&l2_cache_4>; 66*83fb5b55SRob Herring i-cache-size = <0x30000>; 67*83fb5b55SRob Herring d-cache-size = <0x20000>; 687b0b0191SHector Martin }; 697b0b0191SHector Martin 707b0b0191SHector Martin cpu_p22: cpu@10902 { 717b0b0191SHector Martin compatible = "apple,firestorm"; 727b0b0191SHector Martin device_type = "cpu"; 737b0b0191SHector Martin reg = <0x0 0x10902>; 747b0b0191SHector Martin enable-method = "spin-table"; 757b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 76*83fb5b55SRob Herring next-level-cache = <&l2_cache_4>; 77*83fb5b55SRob Herring i-cache-size = <0x30000>; 78*83fb5b55SRob Herring d-cache-size = <0x20000>; 797b0b0191SHector Martin }; 807b0b0191SHector Martin 817b0b0191SHector Martin cpu_p23: cpu@10903 { 827b0b0191SHector Martin compatible = "apple,firestorm"; 837b0b0191SHector Martin device_type = "cpu"; 847b0b0191SHector Martin reg = <0x0 0x10903>; 857b0b0191SHector Martin enable-method = "spin-table"; 867b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 87*83fb5b55SRob Herring next-level-cache = <&l2_cache_4>; 88*83fb5b55SRob Herring i-cache-size = <0x30000>; 89*83fb5b55SRob Herring d-cache-size = <0x20000>; 907b0b0191SHector Martin }; 917b0b0191SHector Martin 927b0b0191SHector Martin cpu_p30: cpu@10a00 { 937b0b0191SHector Martin compatible = "apple,firestorm"; 947b0b0191SHector Martin device_type = "cpu"; 957b0b0191SHector Martin reg = <0x0 0x10a00>; 967b0b0191SHector Martin enable-method = "spin-table"; 977b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 98*83fb5b55SRob Herring next-level-cache = <&l2_cache_5>; 99*83fb5b55SRob Herring i-cache-size = <0x30000>; 100*83fb5b55SRob Herring d-cache-size = <0x20000>; 1017b0b0191SHector Martin }; 1027b0b0191SHector Martin 1037b0b0191SHector Martin cpu_p31: cpu@10a01 { 1047b0b0191SHector Martin compatible = "apple,firestorm"; 1057b0b0191SHector Martin device_type = "cpu"; 1067b0b0191SHector Martin reg = <0x0 0x10a01>; 1077b0b0191SHector Martin enable-method = "spin-table"; 1087b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 109*83fb5b55SRob Herring next-level-cache = <&l2_cache_5>; 110*83fb5b55SRob Herring i-cache-size = <0x30000>; 111*83fb5b55SRob Herring d-cache-size = <0x20000>; 1127b0b0191SHector Martin }; 1137b0b0191SHector Martin 1147b0b0191SHector Martin cpu_p32: cpu@10a02 { 1157b0b0191SHector Martin compatible = "apple,firestorm"; 1167b0b0191SHector Martin device_type = "cpu"; 1177b0b0191SHector Martin reg = <0x0 0x10a02>; 1187b0b0191SHector Martin enable-method = "spin-table"; 1197b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 120*83fb5b55SRob Herring next-level-cache = <&l2_cache_5>; 121*83fb5b55SRob Herring i-cache-size = <0x30000>; 122*83fb5b55SRob Herring d-cache-size = <0x20000>; 1237b0b0191SHector Martin }; 1247b0b0191SHector Martin 1257b0b0191SHector Martin cpu_p33: cpu@10a03 { 1267b0b0191SHector Martin compatible = "apple,firestorm"; 1277b0b0191SHector Martin device_type = "cpu"; 1287b0b0191SHector Martin reg = <0x0 0x10a03>; 1297b0b0191SHector Martin enable-method = "spin-table"; 1307b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 131*83fb5b55SRob Herring next-level-cache = <&l2_cache_5>; 132*83fb5b55SRob Herring i-cache-size = <0x30000>; 133*83fb5b55SRob Herring d-cache-size = <0x20000>; 134*83fb5b55SRob Herring }; 135*83fb5b55SRob Herring 136*83fb5b55SRob Herring l2_cache_3: l2-cache-3 { 137*83fb5b55SRob Herring compatible = "cache"; 138*83fb5b55SRob Herring cache-level = <2>; 139*83fb5b55SRob Herring cache-unified; 140*83fb5b55SRob Herring cache-size = <0x400000>; 141*83fb5b55SRob Herring }; 142*83fb5b55SRob Herring 143*83fb5b55SRob Herring l2_cache_4: l2-cache-4 { 144*83fb5b55SRob Herring compatible = "cache"; 145*83fb5b55SRob Herring cache-level = <2>; 146*83fb5b55SRob Herring cache-unified; 147*83fb5b55SRob Herring cache-size = <0xc00000>; 148*83fb5b55SRob Herring }; 149*83fb5b55SRob Herring 150*83fb5b55SRob Herring l2_cache_5: l2-cache-5 { 151*83fb5b55SRob Herring compatible = "cache"; 152*83fb5b55SRob Herring cache-level = <2>; 153*83fb5b55SRob Herring cache-unified; 154*83fb5b55SRob Herring cache-size = <0xc00000>; 1557b0b0191SHector Martin }; 1567b0b0191SHector Martin }; 1577b0b0191SHector Martin 1587b0b0191SHector Martin die0: soc@200000000 { 1597b0b0191SHector Martin compatible = "simple-bus"; 1607b0b0191SHector Martin #address-cells = <2>; 1617b0b0191SHector Martin #size-cells = <2>; 1627b0b0191SHector Martin ranges = <0x2 0x0 0x2 0x0 0x4 0x0>, 1637b0b0191SHector Martin <0x5 0x80000000 0x5 0x80000000 0x1 0x80000000>, 1647b0b0191SHector Martin <0x7 0x0 0x7 0x0 0xf 0x80000000>; 1657b0b0191SHector Martin nonposted-mmio; 1667b0b0191SHector Martin 1677b0b0191SHector Martin // filled via templated includes at the end of the file 1687b0b0191SHector Martin }; 1697b0b0191SHector Martin 1707b0b0191SHector Martin die1: soc@2200000000 { 1717b0b0191SHector Martin compatible = "simple-bus"; 1727b0b0191SHector Martin #address-cells = <2>; 1737b0b0191SHector Martin #size-cells = <2>; 1747b0b0191SHector Martin ranges = <0x2 0x0 0x22 0x0 0x4 0x0>, 1757b0b0191SHector Martin <0x7 0x0 0x27 0x0 0xf 0x80000000>; 1767b0b0191SHector Martin nonposted-mmio; 1777b0b0191SHector Martin 1787b0b0191SHector Martin // filled via templated includes at the end of the file 1797b0b0191SHector Martin }; 1807b0b0191SHector Martin}; 1817b0b0191SHector Martin 1827b0b0191SHector Martin#define DIE 1837b0b0191SHector Martin#define DIE_NO 0 1847b0b0191SHector Martin 1857b0b0191SHector Martin&die0 { 1867b0b0191SHector Martin #include "t600x-die0.dtsi" 1877b0b0191SHector Martin #include "t600x-dieX.dtsi" 1887b0b0191SHector Martin}; 1897b0b0191SHector Martin 1907b0b0191SHector Martin#include "t600x-pmgr.dtsi" 1917b0b0191SHector Martin#include "t600x-gpio-pins.dtsi" 1927b0b0191SHector Martin 1937b0b0191SHector Martin#undef DIE 1947b0b0191SHector Martin#undef DIE_NO 1957b0b0191SHector Martin 1967b0b0191SHector Martin#define DIE _die1 1977b0b0191SHector Martin#define DIE_NO 1 1987b0b0191SHector Martin 1997b0b0191SHector Martin&die1 { 2007b0b0191SHector Martin #include "t600x-dieX.dtsi" 2017b0b0191SHector Martin #include "t600x-nvme.dtsi" 2027b0b0191SHector Martin}; 2037b0b0191SHector Martin 2047b0b0191SHector Martin#include "t600x-pmgr.dtsi" 2057b0b0191SHector Martin 2067b0b0191SHector Martin#undef DIE 2077b0b0191SHector Martin#undef DIE_NO 2087b0b0191SHector Martin 2097b0b0191SHector Martin 2107b0b0191SHector Martin&aic { 2117b0b0191SHector Martin affinities { 2127b0b0191SHector Martin e-core-pmu-affinity { 2137b0b0191SHector Martin apple,fiq-index = <AIC_CPU_PMU_E>; 2147b0b0191SHector Martin cpus = <&cpu_e00 &cpu_e01 2157b0b0191SHector Martin &cpu_e10 &cpu_e11>; 2167b0b0191SHector Martin }; 2177b0b0191SHector Martin 2187b0b0191SHector Martin p-core-pmu-affinity { 2197b0b0191SHector Martin apple,fiq-index = <AIC_CPU_PMU_P>; 2207b0b0191SHector Martin cpus = <&cpu_p00 &cpu_p01 &cpu_p02 &cpu_p03 2217b0b0191SHector Martin &cpu_p10 &cpu_p11 &cpu_p12 &cpu_p13 2227b0b0191SHector Martin &cpu_p20 &cpu_p21 &cpu_p22 &cpu_p23 2237b0b0191SHector Martin &cpu_p30 &cpu_p31 &cpu_p32 &cpu_p33>; 2247b0b0191SHector Martin }; 2257b0b0191SHector Martin }; 2267b0b0191SHector Martin}; 227