1*7b0b0191SHector Martin// SPDX-License-Identifier: GPL-2.0+ OR MIT 2*7b0b0191SHector Martin/* 3*7b0b0191SHector Martin * Apple T6002 "M1 Ultra" SoC 4*7b0b0191SHector Martin * 5*7b0b0191SHector Martin * Other names: H13J, "Jade 2C" 6*7b0b0191SHector Martin * 7*7b0b0191SHector Martin * Copyright The Asahi Linux Contributors 8*7b0b0191SHector Martin */ 9*7b0b0191SHector Martin 10*7b0b0191SHector Martin#include <dt-bindings/gpio/gpio.h> 11*7b0b0191SHector Martin#include <dt-bindings/interrupt-controller/apple-aic.h> 12*7b0b0191SHector Martin#include <dt-bindings/interrupt-controller/irq.h> 13*7b0b0191SHector Martin#include <dt-bindings/pinctrl/apple.h> 14*7b0b0191SHector Martin 15*7b0b0191SHector Martin#include "multi-die-cpp.h" 16*7b0b0191SHector Martin 17*7b0b0191SHector Martin#include "t600x-common.dtsi" 18*7b0b0191SHector Martin 19*7b0b0191SHector Martin/ { 20*7b0b0191SHector Martin compatible = "apple,t6002", "apple,arm-platform"; 21*7b0b0191SHector Martin 22*7b0b0191SHector Martin #address-cells = <2>; 23*7b0b0191SHector Martin #size-cells = <2>; 24*7b0b0191SHector Martin 25*7b0b0191SHector Martin cpus { 26*7b0b0191SHector Martin cpu_e10: cpu@800 { 27*7b0b0191SHector Martin compatible = "apple,icestorm"; 28*7b0b0191SHector Martin device_type = "cpu"; 29*7b0b0191SHector Martin reg = <0x0 0x800>; 30*7b0b0191SHector Martin enable-method = "spin-table"; 31*7b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 32*7b0b0191SHector Martin }; 33*7b0b0191SHector Martin 34*7b0b0191SHector Martin cpu_e11: cpu@801 { 35*7b0b0191SHector Martin compatible = "apple,icestorm"; 36*7b0b0191SHector Martin device_type = "cpu"; 37*7b0b0191SHector Martin reg = <0x0 0x801>; 38*7b0b0191SHector Martin enable-method = "spin-table"; 39*7b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 40*7b0b0191SHector Martin }; 41*7b0b0191SHector Martin 42*7b0b0191SHector Martin cpu_p20: cpu@10900 { 43*7b0b0191SHector Martin compatible = "apple,firestorm"; 44*7b0b0191SHector Martin device_type = "cpu"; 45*7b0b0191SHector Martin reg = <0x0 0x10900>; 46*7b0b0191SHector Martin enable-method = "spin-table"; 47*7b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 48*7b0b0191SHector Martin }; 49*7b0b0191SHector Martin 50*7b0b0191SHector Martin cpu_p21: cpu@10901 { 51*7b0b0191SHector Martin compatible = "apple,firestorm"; 52*7b0b0191SHector Martin device_type = "cpu"; 53*7b0b0191SHector Martin reg = <0x0 0x10901>; 54*7b0b0191SHector Martin enable-method = "spin-table"; 55*7b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 56*7b0b0191SHector Martin }; 57*7b0b0191SHector Martin 58*7b0b0191SHector Martin cpu_p22: cpu@10902 { 59*7b0b0191SHector Martin compatible = "apple,firestorm"; 60*7b0b0191SHector Martin device_type = "cpu"; 61*7b0b0191SHector Martin reg = <0x0 0x10902>; 62*7b0b0191SHector Martin enable-method = "spin-table"; 63*7b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 64*7b0b0191SHector Martin }; 65*7b0b0191SHector Martin 66*7b0b0191SHector Martin cpu_p23: cpu@10903 { 67*7b0b0191SHector Martin compatible = "apple,firestorm"; 68*7b0b0191SHector Martin device_type = "cpu"; 69*7b0b0191SHector Martin reg = <0x0 0x10903>; 70*7b0b0191SHector Martin enable-method = "spin-table"; 71*7b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 72*7b0b0191SHector Martin }; 73*7b0b0191SHector Martin 74*7b0b0191SHector Martin cpu_p30: cpu@10a00 { 75*7b0b0191SHector Martin compatible = "apple,firestorm"; 76*7b0b0191SHector Martin device_type = "cpu"; 77*7b0b0191SHector Martin reg = <0x0 0x10a00>; 78*7b0b0191SHector Martin enable-method = "spin-table"; 79*7b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 80*7b0b0191SHector Martin }; 81*7b0b0191SHector Martin 82*7b0b0191SHector Martin cpu_p31: cpu@10a01 { 83*7b0b0191SHector Martin compatible = "apple,firestorm"; 84*7b0b0191SHector Martin device_type = "cpu"; 85*7b0b0191SHector Martin reg = <0x0 0x10a01>; 86*7b0b0191SHector Martin enable-method = "spin-table"; 87*7b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 88*7b0b0191SHector Martin }; 89*7b0b0191SHector Martin 90*7b0b0191SHector Martin cpu_p32: cpu@10a02 { 91*7b0b0191SHector Martin compatible = "apple,firestorm"; 92*7b0b0191SHector Martin device_type = "cpu"; 93*7b0b0191SHector Martin reg = <0x0 0x10a02>; 94*7b0b0191SHector Martin enable-method = "spin-table"; 95*7b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 96*7b0b0191SHector Martin }; 97*7b0b0191SHector Martin 98*7b0b0191SHector Martin cpu_p33: cpu@10a03 { 99*7b0b0191SHector Martin compatible = "apple,firestorm"; 100*7b0b0191SHector Martin device_type = "cpu"; 101*7b0b0191SHector Martin reg = <0x0 0x10a03>; 102*7b0b0191SHector Martin enable-method = "spin-table"; 103*7b0b0191SHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 104*7b0b0191SHector Martin }; 105*7b0b0191SHector Martin }; 106*7b0b0191SHector Martin 107*7b0b0191SHector Martin die0: soc@200000000 { 108*7b0b0191SHector Martin compatible = "simple-bus"; 109*7b0b0191SHector Martin #address-cells = <2>; 110*7b0b0191SHector Martin #size-cells = <2>; 111*7b0b0191SHector Martin ranges = <0x2 0x0 0x2 0x0 0x4 0x0>, 112*7b0b0191SHector Martin <0x5 0x80000000 0x5 0x80000000 0x1 0x80000000>, 113*7b0b0191SHector Martin <0x7 0x0 0x7 0x0 0xf 0x80000000>; 114*7b0b0191SHector Martin nonposted-mmio; 115*7b0b0191SHector Martin 116*7b0b0191SHector Martin // filled via templated includes at the end of the file 117*7b0b0191SHector Martin }; 118*7b0b0191SHector Martin 119*7b0b0191SHector Martin die1: soc@2200000000 { 120*7b0b0191SHector Martin compatible = "simple-bus"; 121*7b0b0191SHector Martin #address-cells = <2>; 122*7b0b0191SHector Martin #size-cells = <2>; 123*7b0b0191SHector Martin ranges = <0x2 0x0 0x22 0x0 0x4 0x0>, 124*7b0b0191SHector Martin <0x7 0x0 0x27 0x0 0xf 0x80000000>; 125*7b0b0191SHector Martin nonposted-mmio; 126*7b0b0191SHector Martin 127*7b0b0191SHector Martin // filled via templated includes at the end of the file 128*7b0b0191SHector Martin }; 129*7b0b0191SHector Martin}; 130*7b0b0191SHector Martin 131*7b0b0191SHector Martin#define DIE 132*7b0b0191SHector Martin#define DIE_NO 0 133*7b0b0191SHector Martin 134*7b0b0191SHector Martin&die0 { 135*7b0b0191SHector Martin #include "t600x-die0.dtsi" 136*7b0b0191SHector Martin #include "t600x-dieX.dtsi" 137*7b0b0191SHector Martin}; 138*7b0b0191SHector Martin 139*7b0b0191SHector Martin#include "t600x-pmgr.dtsi" 140*7b0b0191SHector Martin#include "t600x-gpio-pins.dtsi" 141*7b0b0191SHector Martin 142*7b0b0191SHector Martin#undef DIE 143*7b0b0191SHector Martin#undef DIE_NO 144*7b0b0191SHector Martin 145*7b0b0191SHector Martin#define DIE _die1 146*7b0b0191SHector Martin#define DIE_NO 1 147*7b0b0191SHector Martin 148*7b0b0191SHector Martin&die1 { 149*7b0b0191SHector Martin #include "t600x-dieX.dtsi" 150*7b0b0191SHector Martin #include "t600x-nvme.dtsi" 151*7b0b0191SHector Martin}; 152*7b0b0191SHector Martin 153*7b0b0191SHector Martin#include "t600x-pmgr.dtsi" 154*7b0b0191SHector Martin 155*7b0b0191SHector Martin#undef DIE 156*7b0b0191SHector Martin#undef DIE_NO 157*7b0b0191SHector Martin 158*7b0b0191SHector Martin 159*7b0b0191SHector Martin&aic { 160*7b0b0191SHector Martin affinities { 161*7b0b0191SHector Martin e-core-pmu-affinity { 162*7b0b0191SHector Martin apple,fiq-index = <AIC_CPU_PMU_E>; 163*7b0b0191SHector Martin cpus = <&cpu_e00 &cpu_e01 164*7b0b0191SHector Martin &cpu_e10 &cpu_e11>; 165*7b0b0191SHector Martin }; 166*7b0b0191SHector Martin 167*7b0b0191SHector Martin p-core-pmu-affinity { 168*7b0b0191SHector Martin apple,fiq-index = <AIC_CPU_PMU_P>; 169*7b0b0191SHector Martin cpus = <&cpu_p00 &cpu_p01 &cpu_p02 &cpu_p03 170*7b0b0191SHector Martin &cpu_p10 &cpu_p11 &cpu_p12 &cpu_p13 171*7b0b0191SHector Martin &cpu_p20 &cpu_p21 &cpu_p22 &cpu_p23 172*7b0b0191SHector Martin &cpu_p30 &cpu_p31 &cpu_p32 &cpu_p33>; 173*7b0b0191SHector Martin }; 174*7b0b0191SHector Martin }; 175*7b0b0191SHector Martin}; 176