blob: f76b887429dd2770c9f41e5657a6e97051b47528 [file] [edit]
// SPDX-License-Identifier: GPL-2.0+ OR MIT
/*
* Mac Pro (M2 Ultra, 2023)
*
* target-type: J180d
*
* Copyright The Asahi Linux Contributors
*/
/dts-v1/;
#include "t6022.dtsi"
#include "t6022-jxxxd.dtsi"
/ {
compatible = "apple,j180d", "apple,t6022", "apple,arm-platform";
model = "Apple Mac Pro (M2 Ultra, 2023)";
chassis-type = "server";
aliases {
atcphy0 = &atcphy0;
atcphy1 = &atcphy1;
atcphy2 = &atcphy2;
atcphy3 = &atcphy3;
atcphy4 = &atcphy0_die1;
atcphy5 = &atcphy1_die1;
atcphy6 = &atcphy2_die1;
atcphy7 = &atcphy3_die1;
nvram = &nvram;
serial0 = &serial0;
};
chosen {
#address-cells = <2>;
#size-cells = <2>;
ranges;
stdout-path = "serial0";
framebuffer0: framebuffer@0 {
compatible = "apple,simple-framebuffer", "simple-framebuffer";
reg = <0 0 0 0>; /* To be filled by loader */
/* Format properties will be added by loader */
status = "disabled";
power-domains = <&ps_dispext0_cpu0_die1>, <&ps_dptx_phy_ps_die1>;
};
};
memory@10000000000 {
device_type = "memory";
reg = <0x100 0 0x2 0>; /* To be filled by loader */
};
};
&serial0 {
status = "okay";
};
/* USB Type C Rear */
&i2c0 {
hpm2: usb-pd@3b {
compatible = "apple,cd321x";
reg = <0x3b>;
interrupt-parent = <&pinctrl_ap>;
interrupts = <44 IRQ_TYPE_LEVEL_LOW>;
interrupt-names = "irq";
typec2: connector {
compatible = "usb-c-connector";
label = "USB-C Back 1";
power-role = "dual";
data-role = "dual";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
typec2_connector_hs: endpoint {
remote-endpoint = <&dwc3_2_hs>;
};
};
port@1 {
reg = <1>;
typec2_connector_ss: endpoint {
remote-endpoint = <&atcphy2_typec_lanes>;
};
};
};
};
};
hpm3: usb-pd@3c {
compatible = "apple,cd321x";
reg = <0x3c>;
interrupt-parent = <&pinctrl_ap>;
interrupts = <44 IRQ_TYPE_LEVEL_LOW>;
interrupt-names = "irq";
typec3: connector {
compatible = "usb-c-connector";
label = "USB-C Back 2";
power-role = "dual";
data-role = "dual";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
typec3_connector_hs: endpoint {
remote-endpoint = <&dwc3_3_hs>;
};
};
port@1 {
reg = <1>;
typec3_connector_ss: endpoint {
remote-endpoint = <&atcphy3_typec_lanes>;
};
};
};
};
};
/* hpm4 and hpm5 included from t6022-jxxxd.dtsi */
hpm6: usb-pd@3d {
compatible = "apple,cd321x";
reg = <0x3d>;
interrupt-parent = <&pinctrl_ap>;
interrupts = <44 IRQ_TYPE_LEVEL_LOW>;
interrupt-names = "irq";
typec6: connector {
compatible = "usb-c-connector";
label = "USB-C Back 5";
power-role = "dual";
data-role = "dual";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
typec6_connector_hs: endpoint {
remote-endpoint = <&dwc3_6_hs>;
};
};
port@1 {
reg = <1>;
typec6_connector_ss: endpoint {
remote-endpoint = <&atcphy6_typec_lanes>;
};
};
};
};
};
hpm7: usb-pd@3e {
compatible = "apple,cd321x";
reg = <0x3e>;
interrupt-parent = <&pinctrl_ap>;
interrupts = <44 IRQ_TYPE_LEVEL_LOW>;
interrupt-names = "irq";
typec7: connector {
compatible = "usb-c-connector";
label = "USB-C Back 6";
power-role = "dual";
data-role = "dual";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
typec7_connector_hs: endpoint {
remote-endpoint = <&dwc3_7_hs>;
};
};
port@1 {
reg = <1>;
typec7_connector_ss: endpoint {
remote-endpoint = <&atcphy7_typec_lanes>;
};
};
};
};
};
};
&typec4 {
label = "USB-C Back 3";
};
&typec5 {
label = "USB-C Back 4";
};
/* USB Type C Front */
&i2c3 {
status = "okay";
hpm0: usb-pd@38 {
compatible = "apple,cd321x";
reg = <0x38>;
interrupt-parent = <&pinctrl_ap>;
interrupts = <60 IRQ_TYPE_LEVEL_LOW>;
interrupt-names = "irq";
typec0: connector {
compatible = "usb-c-connector";
label = "USB-C Top Right";
power-role = "dual";
data-role = "dual";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
typec0_connector_hs: endpoint {
remote-endpoint = <&dwc3_0_hs>;
};
};
port@1 {
reg = <1>;
typec0_connector_ss: endpoint {
remote-endpoint = <&atcphy0_typec_lanes>;
};
};
};
};
};
hpm1: usb-pd@3f {
compatible = "apple,cd321x";
reg = <0x3f>;
interrupt-parent = <&pinctrl_ap>;
interrupts = <60 IRQ_TYPE_LEVEL_LOW>;
interrupt-names = "irq";
typec1: connector {
compatible = "usb-c-connector";
label = "USB-C Top Left";
power-role = "dual";
data-role = "dual";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
typec1_connector_hs: endpoint {
remote-endpoint = <&dwc3_1_hs>;
};
};
port@1 {
reg = <1>;
typec1_connector_ss: endpoint {
remote-endpoint = <&atcphy1_typec_lanes>;
};
};
};
};
};
};
/* USB controllers */
&dwc3_0 {
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
dwc3_0_hs: endpoint {
remote-endpoint = <&typec0_connector_hs>;
};
};
port@1 {
reg = <1>;
dwc3_0_ss: endpoint {
remote-endpoint = <&atcphy0_usb3>;
};
};
};
};
&dwc3_1 {
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
dwc3_1_hs: endpoint {
remote-endpoint = <&typec1_connector_hs>;
};
};
port@1 {
reg = <1>;
dwc3_1_ss: endpoint {
remote-endpoint = <&atcphy1_usb3>;
};
};
};
};
&dwc3_2 {
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
dwc3_2_hs: endpoint {
remote-endpoint = <&typec2_connector_hs>;
};
};
port@1 {
reg = <1>;
dwc3_2_ss: endpoint {
remote-endpoint = <&atcphy2_usb3>;
};
};
};
};
&dwc3_3 {
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
dwc3_3_hs: endpoint {
remote-endpoint = <&typec3_connector_hs>;
};
};
port@1 {
reg = <1>;
dwc3_3_ss: endpoint {
remote-endpoint = <&atcphy3_usb3>;
};
};
};
};
/* USB controllers on die 1 */
&dwc3_2_die1 {
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
dwc3_6_hs: endpoint {
remote-endpoint = <&typec6_connector_hs>;
};
};
port@1 {
reg = <1>;
dwc3_6_ss: endpoint {
remote-endpoint = <&atcphy6_usb3>;
};
};
};
};
&dwc3_3_die1 {
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
dwc3_7_hs: endpoint {
remote-endpoint = <&typec7_connector_hs>;
};
};
port@1 {
reg = <1>;
dwc3_7_ss: endpoint {
remote-endpoint = <&atcphy7_usb3>;
};
};
};
};
/* Type-C PHYs */
&atcphy0 {
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
atcphy0_typec_lanes: endpoint {
remote-endpoint = <&typec0_connector_ss>;
};
};
port@1 {
reg = <1>;
atcphy0_usb3: endpoint {
remote-endpoint = <&dwc3_0_ss>;
};
};
};
};
&atcphy1 {
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
atcphy1_typec_lanes: endpoint {
remote-endpoint = <&typec1_connector_ss>;
};
};
port@1 {
reg = <1>;
atcphy1_usb3: endpoint {
remote-endpoint = <&dwc3_1_ss>;
};
};
};
};
&atcphy2 {
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
atcphy2_typec_lanes: endpoint {
remote-endpoint = <&typec2_connector_ss>;
};
};
port@1 {
reg = <1>;
atcphy2_usb3: endpoint {
remote-endpoint = <&dwc3_2_ss>;
};
};
};
};
&atcphy3 {
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
atcphy3_typec_lanes: endpoint {
remote-endpoint = <&typec3_connector_ss>;
};
};
port@1 {
reg = <1>;
atcphy3_usb3: endpoint {
remote-endpoint = <&dwc3_3_ss>;
};
};
};
};
&atcphy2_die1 {
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
atcphy6_typec_lanes: endpoint {
remote-endpoint = <&typec6_connector_ss>;
};
};
port@1 {
reg = <1>;
atcphy6_usb3: endpoint {
remote-endpoint = <&dwc3_6_ss>;
};
};
};
};
&atcphy3_die1 {
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
atcphy7_typec_lanes: endpoint {
remote-endpoint = <&typec7_connector_ss>;
};
};
port@1 {
reg = <1>;
atcphy7_usb3: endpoint {
remote-endpoint = <&dwc3_7_ss>;
};
};
};
};
/*
* Delete unused PCIe nodes, the Mac Pro uses slightly different PCIe
* controllers with a single port connected to a PM40100 PCIe switch
*/
/delete-node/ &pcie0;
/delete-node/ &pcie0_dart_0;
/delete-node/ &pcie0_dart_1;
/delete-node/ &pcie0_dart_2;
/delete-node/ &pcie0_dart_3;
&nco_clkref {
clock-frequency = <1068000000>;
};
#include "spi1-nvram.dtsi"