1*637f7d2cSHector Martin// SPDX-License-Identifier: GPL-2.0+ OR MIT 2*637f7d2cSHector Martin/* 3*637f7d2cSHector Martin * Mac Pro (M2 Ultra, 2023) 4*637f7d2cSHector Martin * 5*637f7d2cSHector Martin * target-type: J180d 6*637f7d2cSHector Martin * 7*637f7d2cSHector Martin * Copyright The Asahi Linux Contributors 8*637f7d2cSHector Martin */ 9*637f7d2cSHector Martin 10*637f7d2cSHector Martin/dts-v1/; 11*637f7d2cSHector Martin 12*637f7d2cSHector Martin#include "t6022.dtsi" 13*637f7d2cSHector Martin#include "t6022-jxxxd.dtsi" 14*637f7d2cSHector Martin 15*637f7d2cSHector Martin/ { 16*637f7d2cSHector Martin compatible = "apple,j180d", "apple,t6022", "apple,arm-platform"; 17*637f7d2cSHector Martin model = "Apple Mac Pro (M2 Ultra, 2023)"; 18*637f7d2cSHector Martin aliases { 19*637f7d2cSHector Martin nvram = &nvram; 20*637f7d2cSHector Martin serial0 = &serial0; 21*637f7d2cSHector Martin }; 22*637f7d2cSHector Martin 23*637f7d2cSHector Martin chosen { 24*637f7d2cSHector Martin #address-cells = <2>; 25*637f7d2cSHector Martin #size-cells = <2>; 26*637f7d2cSHector Martin ranges; 27*637f7d2cSHector Martin 28*637f7d2cSHector Martin stdout-path = "serial0"; 29*637f7d2cSHector Martin 30*637f7d2cSHector Martin framebuffer0: framebuffer@0 { 31*637f7d2cSHector Martin compatible = "apple,simple-framebuffer", "simple-framebuffer"; 32*637f7d2cSHector Martin reg = <0 0 0 0>; /* To be filled by loader */ 33*637f7d2cSHector Martin /* Format properties will be added by loader */ 34*637f7d2cSHector Martin status = "disabled"; 35*637f7d2cSHector Martin power-domains = <&ps_dispext0_cpu0_die1>, <&ps_dptx_phy_ps_die1>; 36*637f7d2cSHector Martin }; 37*637f7d2cSHector Martin }; 38*637f7d2cSHector Martin 39*637f7d2cSHector Martin memory@10000000000 { 40*637f7d2cSHector Martin device_type = "memory"; 41*637f7d2cSHector Martin reg = <0x100 0 0x2 0>; /* To be filled by loader */ 42*637f7d2cSHector Martin }; 43*637f7d2cSHector Martin}; 44*637f7d2cSHector Martin 45*637f7d2cSHector Martin&serial0 { 46*637f7d2cSHector Martin status = "okay"; 47*637f7d2cSHector Martin}; 48*637f7d2cSHector Martin 49*637f7d2cSHector Martin/* USB Type C Rear */ 50*637f7d2cSHector Martin&i2c0 { 51*637f7d2cSHector Martin hpm2: usb-pd@3b { 52*637f7d2cSHector Martin compatible = "apple,cd321x"; 53*637f7d2cSHector Martin reg = <0x3b>; 54*637f7d2cSHector Martin interrupt-parent = <&pinctrl_ap>; 55*637f7d2cSHector Martin interrupts = <44 IRQ_TYPE_LEVEL_LOW>; 56*637f7d2cSHector Martin interrupt-names = "irq"; 57*637f7d2cSHector Martin }; 58*637f7d2cSHector Martin 59*637f7d2cSHector Martin hpm3: usb-pd@3c { 60*637f7d2cSHector Martin compatible = "apple,cd321x"; 61*637f7d2cSHector Martin reg = <0x3c>; 62*637f7d2cSHector Martin interrupt-parent = <&pinctrl_ap>; 63*637f7d2cSHector Martin interrupts = <44 IRQ_TYPE_LEVEL_LOW>; 64*637f7d2cSHector Martin interrupt-names = "irq"; 65*637f7d2cSHector Martin }; 66*637f7d2cSHector Martin 67*637f7d2cSHector Martin /* hpm4 and hpm5 included from t6022-jxxxd.dtsi */ 68*637f7d2cSHector Martin 69*637f7d2cSHector Martin hpm6: usb-pd@3d { 70*637f7d2cSHector Martin compatible = "apple,cd321x"; 71*637f7d2cSHector Martin reg = <0x3d>; 72*637f7d2cSHector Martin interrupt-parent = <&pinctrl_ap>; 73*637f7d2cSHector Martin interrupts = <44 IRQ_TYPE_LEVEL_LOW>; 74*637f7d2cSHector Martin interrupt-names = "irq"; 75*637f7d2cSHector Martin }; 76*637f7d2cSHector Martin 77*637f7d2cSHector Martin hpm7: usb-pd@3e { 78*637f7d2cSHector Martin compatible = "apple,cd321x"; 79*637f7d2cSHector Martin reg = <0x3e>; 80*637f7d2cSHector Martin interrupt-parent = <&pinctrl_ap>; 81*637f7d2cSHector Martin interrupts = <44 IRQ_TYPE_LEVEL_LOW>; 82*637f7d2cSHector Martin interrupt-names = "irq"; 83*637f7d2cSHector Martin }; 84*637f7d2cSHector Martin}; 85*637f7d2cSHector Martin 86*637f7d2cSHector Martin/* USB Type C Front */ 87*637f7d2cSHector Martin&i2c3 { 88*637f7d2cSHector Martin status = "okay"; 89*637f7d2cSHector Martin 90*637f7d2cSHector Martin hpm0: usb-pd@38 { 91*637f7d2cSHector Martin compatible = "apple,cd321x"; 92*637f7d2cSHector Martin reg = <0x38>; 93*637f7d2cSHector Martin interrupt-parent = <&pinctrl_ap>; 94*637f7d2cSHector Martin interrupts = <60 IRQ_TYPE_LEVEL_LOW>; 95*637f7d2cSHector Martin interrupt-names = "irq"; 96*637f7d2cSHector Martin }; 97*637f7d2cSHector Martin 98*637f7d2cSHector Martin hpm1: usb-pd@3f { 99*637f7d2cSHector Martin compatible = "apple,cd321x"; 100*637f7d2cSHector Martin reg = <0x3f>; 101*637f7d2cSHector Martin interrupt-parent = <&pinctrl_ap>; 102*637f7d2cSHector Martin interrupts = <60 IRQ_TYPE_LEVEL_LOW>; 103*637f7d2cSHector Martin interrupt-names = "irq"; 104*637f7d2cSHector Martin }; 105*637f7d2cSHector Martin}; 106*637f7d2cSHector Martin 107*637f7d2cSHector Martin/* 108*637f7d2cSHector Martin * Delete unused PCIe nodes, the Mac Pro uses slightly different PCIe 109*637f7d2cSHector Martin * controllers with a single port connected to a PM40100 PCIe switch 110*637f7d2cSHector Martin */ 111*637f7d2cSHector Martin/delete-node/ &pcie0; 112*637f7d2cSHector Martin/delete-node/ &pcie0_dart_0; 113*637f7d2cSHector Martin/delete-node/ &pcie0_dart_1; 114*637f7d2cSHector Martin/delete-node/ &pcie0_dart_2; 115*637f7d2cSHector Martin/delete-node/ &pcie0_dart_3; 116*637f7d2cSHector Martin 117*637f7d2cSHector Martin&nco_clkref { 118*637f7d2cSHector Martin clock-frequency = <1068000000>; 119*637f7d2cSHector Martin}; 120*637f7d2cSHector Martin 121*637f7d2cSHector Martin#include "spi1-nvram.dtsi" 122