Merge patch series "arm64: dts: apple: Add integrated USB Type-C ports"
Janne Grunau <j@jannau.net> says:
Now that all dependencies for USB 2.0 and 3.x support are either merged
(tipd changes in v6.18, dwc3-apple in v6.19-rc1) or in linux-next (Apple
Type-C PHY) prepare device tree changes to expose the ports.
Each port on Apple silicon devices is driven by a separate collection of
hardware blocks. For USB 2.0 and 3.x the collection consists of:
- Apple Type-C PHY, combo PHY for USB 2.0, USB 3.x, USB4/Thunderbolt and
DisplayPort
- Synopsys Designware dwc3 USB controller
- two DART iommu instances for dwc3
- CD321x USB PD controller (similar to Ti's TPS6598x series)
The CD321x nodes are already present so this series add the remaining
devices nodes, typec connector nodes and connections between all
components.
The devices expose except for a few exceptions noted below all ports. M1
and M2 have two ports, M1 and M2 Pro and Max have four ports and
M1 and M2 Ultra have eight ports.
The Pro and Max based Macbook Pros use only three ports. The fourth port
is used as DisplayPort PHY to drive a HDMI output via an integrated
DP to HDMI converter.
The Ultra based Mac studio devices only use six ports. The third and
fourth port on the second die is completely fused off.
The changes for t600x and t602x are in a single commit since the devices
share .dtsi files across SoC generations due to their similarity.
Depends on commit c1538b87ca ("dt-bindings: phy: Add Apple Type-C
PHY") in linux-phy's [1] next branch for `make dtbs_check` to pass.
checkpatch warns about the undocumented DT compatible strings
"apple,t8112-atcphy", "apple,t6000-atcphy" and "apple,t6020-atcphy" but
not about "apple,t8103-atcphy". I don't under why it doesn't warn about
the last. "apple,t8103-atcphy" is only found in the added devicetree
files and nowhere else in v6.19-rc1.
Tested on top of next-20260106 on M1, M2, M1 Max and M2 Pro Mac mini /
Mac studio and a few fixes for dwc3-apple and atc [2, 3, 4, 5].
Link: https://patch.msgid.link/20260109-apple-dt-usb-c-atc-dwc3-v1-0-ce0e92c1a016@jannau.net
Signed-off-by: Sven Peter <sven@kernel.org>
master
commit
1a1b4d40b8
|
|
@ -11,6 +11,7 @@
|
|||
#include <dt-bindings/interrupt-controller/apple-aic.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/pinctrl/apple.h>
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
#include <dt-bindings/spmi/spmi.h>
|
||||
|
||||
#include "multi-die-cpp.h"
|
||||
|
|
|
|||
|
|
@ -15,6 +15,10 @@
|
|||
/ {
|
||||
compatible = "apple,j375d", "apple,t6002", "apple,arm-platform";
|
||||
model = "Apple Mac Studio (M1 Ultra, 2022)";
|
||||
aliases {
|
||||
atcphy4 = &atcphy0_die1;
|
||||
atcphy5 = &atcphy1_die1;
|
||||
};
|
||||
};
|
||||
|
||||
/* USB Type C */
|
||||
|
|
@ -26,6 +30,30 @@
|
|||
interrupt-parent = <&pinctrl_ap>;
|
||||
interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "irq";
|
||||
|
||||
typec4: connector {
|
||||
compatible = "usb-c-connector";
|
||||
label = "USB-C Front Right";
|
||||
power-role = "dual";
|
||||
data-role = "dual";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
typec4_connector_hs: endpoint {
|
||||
remote-endpoint = <&dwc3_4_hs>;
|
||||
};
|
||||
};
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
typec4_connector_ss: endpoint {
|
||||
remote-endpoint = <&atcphy4_typec_lanes>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* front-left */
|
||||
|
|
@ -35,6 +63,30 @@
|
|||
interrupt-parent = <&pinctrl_ap>;
|
||||
interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "irq";
|
||||
|
||||
typec5: connector {
|
||||
compatible = "usb-c-connector";
|
||||
label = "USB-C Front Left";
|
||||
power-role = "dual";
|
||||
data-role = "dual";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
typec5_connector_hs: endpoint {
|
||||
remote-endpoint = <&dwc3_5_hs>;
|
||||
};
|
||||
};
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
typec5_connector_ss: endpoint {
|
||||
remote-endpoint = <&atcphy5_typec_lanes>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -46,6 +98,104 @@
|
|||
brcm,board-type = "apple,okinawa";
|
||||
};
|
||||
|
||||
/* USB controllers on die 1 */
|
||||
&dwc3_0_die1 {
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
dwc3_4_hs: endpoint {
|
||||
remote-endpoint = <&typec4_connector_hs>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
dwc3_4_ss: endpoint {
|
||||
remote-endpoint = <&atcphy4_usb3>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&dwc3_1_die1 {
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
dwc3_5_hs: endpoint {
|
||||
remote-endpoint = <&typec5_connector_hs>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
dwc3_5_ss: endpoint {
|
||||
remote-endpoint = <&atcphy5_usb3>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* Type-C PHYs */
|
||||
&atcphy0_die1 {
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
atcphy4_typec_lanes: endpoint {
|
||||
remote-endpoint = <&typec4_connector_ss>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
atcphy4_usb3: endpoint {
|
||||
remote-endpoint = <&dwc3_4_ss>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&atcphy1_die1 {
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
atcphy5_typec_lanes: endpoint {
|
||||
remote-endpoint = <&typec5_connector_ss>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
atcphy5_usb3: endpoint {
|
||||
remote-endpoint = <&dwc3_5_ss>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* delete unused USB nodes on die 1 */
|
||||
|
||||
/delete-node/ &dwc3_2_dart_0_die1;
|
||||
/delete-node/ &dwc3_2_dart_1_die1;
|
||||
/delete-node/ &dwc3_2_die1;
|
||||
/delete-node/ &atcphy2_die1;
|
||||
|
||||
/delete-node/ &dwc3_3_dart_0_die1;
|
||||
/delete-node/ &dwc3_3_dart_1_die1;
|
||||
/delete-node/ &dwc3_3_die1;
|
||||
/delete-node/ &atcphy3_die1;
|
||||
|
||||
/* delete unused always-on power-domains on die 1 */
|
||||
|
||||
/delete-node/ &ps_atc2_usb_aon_die1;
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
#include <dt-bindings/interrupt-controller/apple-aic.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/pinctrl/apple.h>
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
#include <dt-bindings/spmi/spmi.h>
|
||||
|
||||
#include "multi-die-cpp.h"
|
||||
|
|
|
|||
|
|
@ -119,3 +119,215 @@
|
|||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_0): usb@702280000 {
|
||||
compatible = "apple,t6000-dwc3", "apple,t8103-dwc3";
|
||||
reg = <0x7 0x02280000 0x0 0xcd00>, <0x7 0x0228cd00 0x0 0x3200>;
|
||||
reg-names = "dwc3-core", "dwc3-apple";
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1190 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dr_mode = "otg";
|
||||
usb-role-switch;
|
||||
role-switch-default-mode = "host";
|
||||
iommus = <&DIE_NODE(dwc3_0_dart_0) 0>,
|
||||
<&DIE_NODE(dwc3_0_dart_1) 1>;
|
||||
power-domains = <&DIE_NODE(ps_atc0_usb)>;
|
||||
resets = <&DIE_NODE(atcphy0)>;
|
||||
phys = <&DIE_NODE(atcphy0) PHY_TYPE_USB2>, <&DIE_NODE(atcphy0) PHY_TYPE_USB3>;
|
||||
phy-names = "usb2-phy", "usb3-phy";
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_0_dart_0): iommu@702f00000 {
|
||||
compatible = "apple,t6000-dart";
|
||||
reg = <0x7 0x02f00000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1194 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&DIE_NODE(ps_atc0_usb)>;
|
||||
#iommu-cells = <1>;
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_0_dart_1): iommu@702f80000 {
|
||||
compatible = "apple,t6000-dart";
|
||||
reg = <0x7 0x02f80000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1194 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&DIE_NODE(ps_atc0_usb)>;
|
||||
#iommu-cells = <1>;
|
||||
};
|
||||
|
||||
DIE_NODE(atcphy0): phy@703000000 {
|
||||
compatible = "apple,t6000-atcphy", "apple,t8103-atcphy";
|
||||
reg = <0x7 0x03000000 0x0 0x4c000>,
|
||||
<0x7 0x03050000 0x0 0x8000>,
|
||||
<0x7 0x00000000 0x0 0x4000>,
|
||||
<0x7 0x02a90000 0x0 0x4000>,
|
||||
<0x7 0x02a84000 0x0 0x4000>;
|
||||
reg-names = "core", "lpdptx", "axi2af", "usb2phy",
|
||||
"pipehandler";
|
||||
|
||||
#phy-cells = <1>;
|
||||
#reset-cells = <0>;
|
||||
|
||||
orientation-switch;
|
||||
mode-switch;
|
||||
power-domains = <&DIE_NODE(ps_atc0_usb)>;
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_1): usb@b02280000 {
|
||||
compatible = "apple,t6000-dwc3", "apple,t8103-dwc3";
|
||||
reg = <0xb 0x02280000 0x0 0xcd00>, <0xb 0x0228cd00 0x0 0x3200>;
|
||||
reg-names = "dwc3-core", "dwc3-apple";
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1207 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dr_mode = "otg";
|
||||
usb-role-switch;
|
||||
role-switch-default-mode = "host";
|
||||
iommus = <&DIE_NODE(dwc3_1_dart_0) 0>,
|
||||
<&DIE_NODE(dwc3_1_dart_1) 1>;
|
||||
power-domains = <&DIE_NODE(ps_atc1_usb)>;
|
||||
resets = <&DIE_NODE(atcphy1)>;
|
||||
phys = <&DIE_NODE(atcphy1) PHY_TYPE_USB2>, <&DIE_NODE(atcphy1) PHY_TYPE_USB3>;
|
||||
phy-names = "usb2-phy", "usb3-phy";
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_1_dart_0): iommu@b02f00000 {
|
||||
compatible = "apple,t6000-dart";
|
||||
reg = <0xb 0x02f00000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1211 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&DIE_NODE(ps_atc1_usb)>;
|
||||
#iommu-cells = <1>;
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_1_dart_1): iommu@b02f80000 {
|
||||
compatible = "apple,t6000-dart";
|
||||
reg = <0xb 0x02f80000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1211 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&DIE_NODE(ps_atc1_usb)>;
|
||||
#iommu-cells = <1>;
|
||||
};
|
||||
|
||||
DIE_NODE(atcphy1): phy@b03000000 {
|
||||
compatible = "apple,t6000-atcphy", "apple,t8103-atcphy";
|
||||
reg = <0xb 0x03000000 0x0 0x4c000>,
|
||||
<0xb 0x03050000 0x0 0x8000>,
|
||||
<0xb 0x00000000 0x0 0x4000>,
|
||||
<0xb 0x02a90000 0x0 0x4000>,
|
||||
<0xb 0x02a84000 0x0 0x4000>;
|
||||
reg-names = "core", "lpdptx", "axi2af", "usb2phy",
|
||||
"pipehandler";
|
||||
|
||||
#phy-cells = <1>;
|
||||
#reset-cells = <0>;
|
||||
|
||||
orientation-switch;
|
||||
mode-switch;
|
||||
power-domains = <&DIE_NODE(ps_atc1_usb)>;
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_2): usb@f02280000 {
|
||||
compatible = "apple,t6000-dwc3", "apple,t8103-dwc3";
|
||||
reg = <0xf 0x02280000 0x0 0xcd00>, <0xf 0x0228cd00 0x0 0x3200>;
|
||||
reg-names = "dwc3-core", "dwc3-apple";
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1224 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dr_mode = "otg";
|
||||
usb-role-switch;
|
||||
role-switch-default-mode = "host";
|
||||
iommus = <&DIE_NODE(dwc3_2_dart_0) 0>,
|
||||
<&DIE_NODE(dwc3_2_dart_1) 1>;
|
||||
power-domains = <&DIE_NODE(ps_atc2_usb)>;
|
||||
resets = <&DIE_NODE(atcphy2)>;
|
||||
phys = <&DIE_NODE(atcphy2) PHY_TYPE_USB2>, <&DIE_NODE(atcphy2) PHY_TYPE_USB3>;
|
||||
phy-names = "usb2-phy", "usb3-phy";
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_2_dart_0): iommu@f02f00000 {
|
||||
compatible = "apple,t6000-dart";
|
||||
reg = <0xf 0x02f00000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1228 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&DIE_NODE(ps_atc2_usb)>;
|
||||
#iommu-cells = <1>;
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_2_dart_1): iommu@f02f80000 {
|
||||
compatible = "apple,t6000-dart";
|
||||
reg = <0xf 0x02f80000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1228 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&DIE_NODE(ps_atc2_usb)>;
|
||||
#iommu-cells = <1>;
|
||||
};
|
||||
|
||||
DIE_NODE(atcphy2): phy@f03000000 {
|
||||
compatible = "apple,t6000-atcphy", "apple,t8103-atcphy";
|
||||
reg = <0xf 0x03000000 0x0 0x4c000>,
|
||||
<0xf 0x03050000 0x0 0x8000>,
|
||||
<0xf 0x00000000 0x0 0x4000>,
|
||||
<0xf 0x02a90000 0x0 0x4000>,
|
||||
<0xf 0x02a84000 0x0 0x4000>;
|
||||
reg-names = "core", "lpdptx", "axi2af", "usb2phy",
|
||||
"pipehandler";
|
||||
|
||||
#phy-cells = <1>;
|
||||
#reset-cells = <0>;
|
||||
|
||||
orientation-switch;
|
||||
mode-switch;
|
||||
power-domains = <&DIE_NODE(ps_atc2_usb)>;
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_3): usb@1302280000 {
|
||||
compatible = "apple,t6000-dwc3", "apple,t8103-dwc3";
|
||||
reg = <0x13 0x02280000 0x0 0xcd00>, <0x13 0x0228cd00 0x0 0x3200>;
|
||||
reg-names = "dwc3-core", "dwc3-apple";
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1241 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dr_mode = "otg";
|
||||
usb-role-switch;
|
||||
role-switch-default-mode = "host";
|
||||
iommus = <&DIE_NODE(dwc3_3_dart_0) 0>,
|
||||
<&DIE_NODE(dwc3_3_dart_1) 1>;
|
||||
power-domains = <&DIE_NODE(ps_atc3_usb)>;
|
||||
resets = <&DIE_NODE(atcphy3)>;
|
||||
phys = <&DIE_NODE(atcphy3) PHY_TYPE_USB2>, <&DIE_NODE(atcphy3) PHY_TYPE_USB3>;
|
||||
phy-names = "usb2-phy", "usb3-phy";
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_3_dart_0): iommu@1302f00000 {
|
||||
compatible = "apple,t6000-dart";
|
||||
reg = <0x13 0x02f00000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1245 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&DIE_NODE(ps_atc3_usb)>;
|
||||
#iommu-cells = <1>;
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_3_dart_1): iommu@1302f80000 {
|
||||
compatible = "apple,t6000-dart";
|
||||
reg = <0x13 0x02f80000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1245 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&DIE_NODE(ps_atc3_usb)>;
|
||||
#iommu-cells = <1>;
|
||||
};
|
||||
|
||||
DIE_NODE(atcphy3): phy@1303000000 {
|
||||
compatible = "apple,t6000-atcphy", "apple,t8103-atcphy";
|
||||
reg = <0x13 0x03000000 0x0 0x4c000>,
|
||||
<0x13 0x03050000 0x0 0x8000>,
|
||||
<0x13 0x00000000 0x0 0x4000>,
|
||||
<0x13 0x02a90000 0x0 0x4000>,
|
||||
<0x13 0x02a84000 0x0 0x4000>;
|
||||
reg-names = "core", "lpdptx", "axi2af", "usb2phy",
|
||||
"pipehandler";
|
||||
|
||||
#phy-cells = <1>;
|
||||
#reset-cells = <0>;
|
||||
|
||||
orientation-switch;
|
||||
mode-switch;
|
||||
power-domains = <&DIE_NODE(ps_atc3_usb)>;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -15,6 +15,10 @@
|
|||
chassis-type = "laptop";
|
||||
|
||||
aliases {
|
||||
atcphy0 = &atcphy0;
|
||||
atcphy1 = &atcphy1;
|
||||
atcphy2 = &atcphy2;
|
||||
atcphy3 = &atcphy3;
|
||||
bluetooth0 = &bluetooth0;
|
||||
serial0 = &serial0;
|
||||
wifi0 = &wifi0;
|
||||
|
|
@ -65,6 +69,30 @@
|
|||
interrupt-parent = <&pinctrl_ap>;
|
||||
interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "irq";
|
||||
|
||||
typec0: connector {
|
||||
compatible = "usb-c-connector";
|
||||
label = "USB-C Left Rear";
|
||||
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 {
|
||||
|
|
@ -73,6 +101,30 @@
|
|||
interrupt-parent = <&pinctrl_ap>;
|
||||
interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "irq";
|
||||
|
||||
typec1: connector {
|
||||
compatible = "usb-c-connector";
|
||||
label = "USB-C Left Front";
|
||||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
hpm2: usb-pd@3b {
|
||||
|
|
@ -81,6 +133,30 @@
|
|||
interrupt-parent = <&pinctrl_ap>;
|
||||
interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "irq";
|
||||
|
||||
typec2: connector {
|
||||
compatible = "usb-c-connector";
|
||||
label = "USB-C Right";
|
||||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* MagSafe port */
|
||||
|
|
@ -132,4 +208,162 @@
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
/* 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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* ps_atc3_usb_aon power-domain is always-on to keep dwc3 working over suspend.
|
||||
* atc3 is used exclusively for the DP-to-HDMI so do not keep this always on.
|
||||
*/
|
||||
&ps_atc3_usb_aon {
|
||||
/delete-property/ apple,always-on;
|
||||
};
|
||||
|
||||
/* ATC3 is used for DisplayPort -> HDMI only */
|
||||
&dwc3_3_dart_0 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&dwc3_3_dart_1 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&dwc3_3 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* Delete unused dwc3_3 to prevent dt_disable_missing_devs() from disabling
|
||||
* atcphy3 via phandle references from a disablecd device.
|
||||
*/
|
||||
/delete-node/ &dwc3_3;
|
||||
|
||||
/* 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 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
#include "spi1-nvram.dtsi"
|
||||
|
|
|
|||
|
|
@ -13,6 +13,10 @@
|
|||
chassis-type = "desktop";
|
||||
|
||||
aliases {
|
||||
atcphy0 = &atcphy0;
|
||||
atcphy1 = &atcphy1;
|
||||
atcphy2 = &atcphy2;
|
||||
atcphy3 = &atcphy3;
|
||||
bluetooth0 = &bluetooth0;
|
||||
ethernet0 = ðernet0;
|
||||
serial0 = &serial0;
|
||||
|
|
@ -52,6 +56,30 @@
|
|||
interrupt-parent = <&pinctrl_ap>;
|
||||
interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "irq";
|
||||
|
||||
typec0: connector {
|
||||
compatible = "usb-c-connector";
|
||||
label = "USB-C Back Left";
|
||||
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 {
|
||||
|
|
@ -60,6 +88,30 @@
|
|||
interrupt-parent = <&pinctrl_ap>;
|
||||
interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "irq";
|
||||
|
||||
typec1: connector {
|
||||
compatible = "usb-c-connector";
|
||||
label = "USB-C Back Left Middle";
|
||||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
hpm2: usb-pd@3b {
|
||||
|
|
@ -68,6 +120,30 @@
|
|||
interrupt-parent = <&pinctrl_ap>;
|
||||
interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "irq";
|
||||
|
||||
typec2: connector {
|
||||
compatible = "usb-c-connector";
|
||||
label = "USB-C Back Right Middle";
|
||||
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 {
|
||||
|
|
@ -76,6 +152,200 @@
|
|||
interrupt-parent = <&pinctrl_ap>;
|
||||
interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "irq";
|
||||
|
||||
typec3: connector {
|
||||
compatible = "usb-c-connector";
|
||||
label = "USB-C Back Right";
|
||||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* 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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* 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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,14 @@
|
|||
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;
|
||||
};
|
||||
|
|
@ -56,6 +64,30 @@
|
|||
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 {
|
||||
|
|
@ -64,6 +96,30 @@
|
|||
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 */
|
||||
|
|
@ -74,6 +130,30 @@
|
|||
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 {
|
||||
|
|
@ -82,9 +162,41 @@
|
|||
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";
|
||||
|
|
@ -95,6 +207,30 @@
|
|||
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 {
|
||||
|
|
@ -103,6 +239,285 @@
|
|||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,11 @@
|
|||
/ {
|
||||
compatible = "apple,j475d", "apple,t6022", "apple,arm-platform";
|
||||
model = "Apple Mac Studio (M2 Ultra, 2023)";
|
||||
|
||||
aliases {
|
||||
atcphy4 = &atcphy0_die1;
|
||||
atcphy5 = &atcphy1_die1;
|
||||
};
|
||||
};
|
||||
|
||||
&framebuffer0 {
|
||||
|
|
@ -31,6 +36,32 @@
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
&typec4 {
|
||||
label = "USB-C Front Right";
|
||||
};
|
||||
|
||||
&typec5 {
|
||||
label = "USB-C Front Left";
|
||||
};
|
||||
|
||||
/* delete unused USB nodes on die 1 */
|
||||
/delete-node/ &dwc3_2_dart_0_die1;
|
||||
/delete-node/ &dwc3_2_dart_1_die1;
|
||||
/delete-node/ &dwc3_2_die1;
|
||||
/delete-node/ &atcphy2_die1;
|
||||
|
||||
/delete-node/ &dwc3_3_dart_0_die1;
|
||||
/delete-node/ &dwc3_3_dart_1_die1;
|
||||
/delete-node/ &dwc3_3_die1;
|
||||
/delete-node/ &atcphy3_die1;
|
||||
|
||||
/* delete unused always-on power-domains on die 1 */
|
||||
/delete-node/ &ps_atc2_usb_aon_die1;
|
||||
/delete-node/ &ps_atc2_usb_die1;
|
||||
|
||||
/delete-node/ &ps_atc3_usb_aon_die1;
|
||||
/delete-node/ &ps_atc3_usb_die1;
|
||||
|
||||
&wifi0 {
|
||||
compatible = "pci14e4,4434";
|
||||
brcm,board-type = "apple,canary";
|
||||
|
|
|
|||
|
|
@ -25,6 +25,29 @@
|
|||
interrupt-parent = <&pinctrl_ap>;
|
||||
interrupts = <44 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "irq";
|
||||
|
||||
typec4: connector {
|
||||
compatible = "usb-c-connector";
|
||||
power-role = "dual";
|
||||
data-role = "dual";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
typec4_connector_hs: endpoint {
|
||||
remote-endpoint = <&dwc3_4_hs>;
|
||||
};
|
||||
};
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
typec4_connector_ss: endpoint {
|
||||
remote-endpoint = <&atcphy4_typec_lanes>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* front-left */
|
||||
|
|
@ -34,5 +57,115 @@
|
|||
interrupt-parent = <&pinctrl_ap>;
|
||||
interrupts = <44 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "irq";
|
||||
|
||||
typec5: connector {
|
||||
compatible = "usb-c-connector";
|
||||
power-role = "dual";
|
||||
data-role = "dual";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
typec5_connector_hs: endpoint {
|
||||
remote-endpoint = <&dwc3_5_hs>;
|
||||
};
|
||||
};
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
typec5_connector_ss: endpoint {
|
||||
remote-endpoint = <&atcphy5_typec_lanes>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/* USB controllers on die 1 */
|
||||
&dwc3_0_die1 {
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
dwc3_4_hs: endpoint {
|
||||
remote-endpoint = <&typec4_connector_hs>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
dwc3_4_ss: endpoint {
|
||||
remote-endpoint = <&atcphy4_usb3>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&dwc3_1_die1 {
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
dwc3_5_hs: endpoint {
|
||||
remote-endpoint = <&typec5_connector_hs>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
dwc3_5_ss: endpoint {
|
||||
remote-endpoint = <&atcphy5_usb3>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* Type-C PHYs */
|
||||
&atcphy0_die1 {
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
atcphy4_typec_lanes: endpoint {
|
||||
remote-endpoint = <&typec4_connector_ss>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
atcphy4_usb3: endpoint {
|
||||
remote-endpoint = <&dwc3_4_ss>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&atcphy1_die1 {
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
atcphy5_typec_lanes: endpoint {
|
||||
remote-endpoint = <&typec5_connector_ss>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
atcphy5_usb3: endpoint {
|
||||
remote-endpoint = <&dwc3_5_ss>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -126,3 +126,215 @@
|
|||
|
||||
reg = <0x4 0x4e80000 0 0x4000>;
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_0): usb@702280000 {
|
||||
compatible = "apple,t6020-dwc3", "apple,t8103-dwc3";
|
||||
reg = <0x7 0x02280000 0x0 0xcd00>, <0x7 0x0228cd00 0x0 0x3200>;
|
||||
reg-names = "dwc3-core", "dwc3-apple";
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1256 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dr_mode = "otg";
|
||||
usb-role-switch;
|
||||
role-switch-default-mode = "host";
|
||||
iommus = <&DIE_NODE(dwc3_0_dart_0) 0>,
|
||||
<&DIE_NODE(dwc3_0_dart_1) 1>;
|
||||
power-domains = <&DIE_NODE(ps_atc0_usb)>;
|
||||
resets = <&DIE_NODE(atcphy0)>;
|
||||
phys = <&DIE_NODE(atcphy0) PHY_TYPE_USB2>, <&DIE_NODE(atcphy0) PHY_TYPE_USB3>;
|
||||
phy-names = "usb2-phy", "usb3-phy";
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_0_dart_0): iommu@702f00000 {
|
||||
compatible = "apple,t6020-dart", "apple,t8110-dart";
|
||||
reg = <0x7 0x02f00000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1260 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&DIE_NODE(ps_atc0_usb)>;
|
||||
#iommu-cells = <1>;
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_0_dart_1): iommu@702f80000 {
|
||||
compatible = "apple,t6020-dart", "apple,t8110-dart";
|
||||
reg = <0x7 0x02f80000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1260 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&DIE_NODE(ps_atc0_usb)>;
|
||||
#iommu-cells = <1>;
|
||||
};
|
||||
|
||||
DIE_NODE(atcphy0): phy@703000000 {
|
||||
compatible = "apple,t6020-atcphy", "apple,t8103-atcphy";
|
||||
reg = <0x7 0x03000000 0x0 0x4c000>,
|
||||
<0x7 0x03050000 0x0 0x8000>,
|
||||
<0x7 0x00000000 0x0 0x4000>,
|
||||
<0x7 0x02a90000 0x0 0x4000>,
|
||||
<0x7 0x02a84000 0x0 0x4000>;
|
||||
reg-names = "core", "lpdptx", "axi2af", "usb2phy",
|
||||
"pipehandler";
|
||||
|
||||
#phy-cells = <1>;
|
||||
#reset-cells = <0>;
|
||||
|
||||
orientation-switch;
|
||||
mode-switch;
|
||||
power-domains = <&DIE_NODE(ps_atc0_usb)>;
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_1): usb@b02280000 {
|
||||
compatible = "apple,t6020-dwc3", "apple,t8103-dwc3";
|
||||
reg = <0xb 0x02280000 0x0 0xcd00>, <0xb 0x0228cd00 0x0 0x3200>;
|
||||
reg-names = "dwc3-core", "dwc3-apple";
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1274 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dr_mode = "otg";
|
||||
usb-role-switch;
|
||||
role-switch-default-mode = "host";
|
||||
iommus = <&DIE_NODE(dwc3_1_dart_0) 0>,
|
||||
<&DIE_NODE(dwc3_1_dart_1) 1>;
|
||||
power-domains = <&DIE_NODE(ps_atc1_usb)>;
|
||||
resets = <&DIE_NODE(atcphy1)>;
|
||||
phys = <&DIE_NODE(atcphy1) PHY_TYPE_USB2>, <&DIE_NODE(atcphy1) PHY_TYPE_USB3>;
|
||||
phy-names = "usb2-phy", "usb3-phy";
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_1_dart_0): iommu@b02f00000 {
|
||||
compatible = "apple,t6020-dart", "apple,t8110-dart";
|
||||
reg = <0xb 0x02f00000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1278 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&DIE_NODE(ps_atc1_usb)>;
|
||||
#iommu-cells = <1>;
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_1_dart_1): iommu@b02f80000 {
|
||||
compatible = "apple,t6020-dart", "apple,t8110-dart";
|
||||
reg = <0xb 0x02f80000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1278 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&DIE_NODE(ps_atc1_usb)>;
|
||||
#iommu-cells = <1>;
|
||||
};
|
||||
|
||||
DIE_NODE(atcphy1): phy@b03000000 {
|
||||
compatible = "apple,t6020-atcphy", "apple,t8103-atcphy";
|
||||
reg = <0xb 0x03000000 0x0 0x4c000>,
|
||||
<0xb 0x03050000 0x0 0x8000>,
|
||||
<0xb 0x00000000 0x0 0x4000>,
|
||||
<0xb 0x02a90000 0x0 0x4000>,
|
||||
<0xb 0x02a84000 0x0 0x4000>;
|
||||
reg-names = "core", "lpdptx", "axi2af", "usb2phy",
|
||||
"pipehandler";
|
||||
|
||||
#phy-cells = <1>;
|
||||
#reset-cells = <0>;
|
||||
|
||||
orientation-switch;
|
||||
mode-switch;
|
||||
power-domains = <&DIE_NODE(ps_atc1_usb)>;
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_2): usb@f02280000 {
|
||||
compatible = "apple,t6020-dwc3", "apple,t8103-dwc3";
|
||||
reg = <0xf 0x02280000 0x0 0xcd00>, <0xf 0x0228cd00 0x0 0x3200>;
|
||||
reg-names = "dwc3-core", "dwc3-apple";
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1292 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dr_mode = "otg";
|
||||
usb-role-switch;
|
||||
role-switch-default-mode = "host";
|
||||
iommus = <&DIE_NODE(dwc3_2_dart_0) 0>,
|
||||
<&DIE_NODE(dwc3_2_dart_1) 1>;
|
||||
power-domains = <&DIE_NODE(ps_atc2_usb)>;
|
||||
resets = <&DIE_NODE(atcphy2)>;
|
||||
phys = <&DIE_NODE(atcphy2) PHY_TYPE_USB2>, <&DIE_NODE(atcphy2) PHY_TYPE_USB3>;
|
||||
phy-names = "usb2-phy", "usb3-phy";
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_2_dart_0): iommu@f02f00000 {
|
||||
compatible = "apple,t6020-dart", "apple,t8110-dart";
|
||||
reg = <0xf 0x02f00000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1296 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&DIE_NODE(ps_atc2_usb)>;
|
||||
#iommu-cells = <1>;
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_2_dart_1): iommu@f02f80000 {
|
||||
compatible = "apple,t6020-dart", "apple,t8110-dart";
|
||||
reg = <0xf 0x02f80000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1296 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&DIE_NODE(ps_atc2_usb)>;
|
||||
#iommu-cells = <1>;
|
||||
};
|
||||
|
||||
DIE_NODE(atcphy2): phy@f03000000 {
|
||||
compatible = "apple,t6020-atcphy", "apple,t8103-atcphy";
|
||||
reg = <0xf 0x03000000 0x0 0x4c000>,
|
||||
<0xf 0x03050000 0x0 0x8000>,
|
||||
<0xf 0x00000000 0x0 0x4000>,
|
||||
<0xf 0x02a90000 0x0 0x4000>,
|
||||
<0xf 0x02a84000 0x0 0x4000>;
|
||||
reg-names = "core", "lpdptx", "axi2af", "usb2phy",
|
||||
"pipehandler";
|
||||
|
||||
#phy-cells = <1>;
|
||||
#reset-cells = <0>;
|
||||
|
||||
orientation-switch;
|
||||
mode-switch;
|
||||
power-domains = <&DIE_NODE(ps_atc2_usb)>;
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_3): usb@1302280000 {
|
||||
compatible = "apple,t6020-dwc3", "apple,t8103-dwc3";
|
||||
reg = <0x13 0x02280000 0x0 0xcd00>, <0x13 0x0228cd00 0x0 0x3200>;
|
||||
reg-names = "dwc3-core", "dwc3-apple";
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1310 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dr_mode = "otg";
|
||||
usb-role-switch;
|
||||
role-switch-default-mode = "host";
|
||||
iommus = <&DIE_NODE(dwc3_3_dart_0) 0>,
|
||||
<&DIE_NODE(dwc3_3_dart_1) 1>;
|
||||
power-domains = <&DIE_NODE(ps_atc3_usb)>;
|
||||
resets = <&DIE_NODE(atcphy3)>;
|
||||
phys = <&DIE_NODE(atcphy3) PHY_TYPE_USB2>, <&DIE_NODE(atcphy3) PHY_TYPE_USB3>;
|
||||
phy-names = "usb2-phy", "usb3-phy";
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_3_dart_0): iommu@1302f00000 {
|
||||
compatible = "apple,t6020-dart", "apple,t8110-dart";
|
||||
reg = <0x13 0x02f00000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1314 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&DIE_NODE(ps_atc3_usb)>;
|
||||
#iommu-cells = <1>;
|
||||
};
|
||||
|
||||
DIE_NODE(dwc3_3_dart_1): iommu@1302f80000 {
|
||||
compatible = "apple,t6020-dart", "apple,t8110-dart";
|
||||
reg = <0x13 0x02f80000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ DIE_NO 1314 IRQ_TYPE_LEVEL_HIGH>;
|
||||
power-domains = <&DIE_NODE(ps_atc3_usb)>;
|
||||
#iommu-cells = <1>;
|
||||
};
|
||||
|
||||
DIE_NODE(atcphy3): phy@1303000000 {
|
||||
compatible = "apple,t6020-atcphy", "apple,t8103-atcphy";
|
||||
reg = <0x13 0x03000000 0x0 0x4c000>,
|
||||
<0x13 0x03050000 0x0 0x8000>,
|
||||
<0x13 0x00000000 0x0 0x4000>,
|
||||
<0x13 0x02a90000 0x0 0x4000>,
|
||||
<0x13 0x02a84000 0x0 0x4000>;
|
||||
reg-names = "core", "lpdptx", "axi2af", "usb2phy",
|
||||
"pipehandler";
|
||||
|
||||
#phy-cells = <1>;
|
||||
#reset-cells = <0>;
|
||||
|
||||
orientation-switch;
|
||||
mode-switch;
|
||||
power-domains = <&DIE_NODE(ps_atc3_usb)>;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -30,6 +30,18 @@
|
|||
brcm,board-type = "apple,atlantisb";
|
||||
};
|
||||
|
||||
/*
|
||||
* Provide labels for the USB type C ports.
|
||||
*/
|
||||
|
||||
&typec0 {
|
||||
label = "USB-C Back-left";
|
||||
};
|
||||
|
||||
&typec1 {
|
||||
label = "USB-C Back-right";
|
||||
};
|
||||
|
||||
/*
|
||||
* Force the bus number assignments so that we can declare some of the
|
||||
* on-board devices and properties that are populated by the bootloader
|
||||
|
|
|
|||
|
|
@ -47,6 +47,18 @@
|
|||
brcm,board-type = "apple,honshu";
|
||||
};
|
||||
|
||||
/*
|
||||
* Provide labels for the USB type C ports.
|
||||
*/
|
||||
|
||||
&typec0 {
|
||||
label = "USB-C Left-back";
|
||||
};
|
||||
|
||||
&typec1 {
|
||||
label = "USB-C Left-front";
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -42,3 +42,15 @@
|
|||
&fpwm1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/*
|
||||
* Provide labels for the USB type C ports.
|
||||
*/
|
||||
|
||||
&typec0 {
|
||||
label = "USB-C Left-back";
|
||||
};
|
||||
|
||||
&typec1 {
|
||||
label = "USB-C Left-front";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -48,6 +48,18 @@
|
|||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Provide labels for the USB type C ports.
|
||||
*/
|
||||
|
||||
&typec0 {
|
||||
label = "USB-C Back-right";
|
||||
};
|
||||
|
||||
&typec1 {
|
||||
label = "USB-C Back-right-middle";
|
||||
};
|
||||
|
||||
/*
|
||||
* Force the bus number assignments so that we can declare some of the
|
||||
* on-board devices and properties that are populated by the bootloader
|
||||
|
|
|
|||
|
|
@ -38,6 +38,18 @@
|
|||
brcm,board-type = "apple,santorini";
|
||||
};
|
||||
|
||||
/*
|
||||
* Provide labels for the USB type C ports.
|
||||
*/
|
||||
|
||||
&typec0 {
|
||||
label = "USB-C Back-right";
|
||||
};
|
||||
|
||||
&typec1 {
|
||||
label = "USB-C Back-left";
|
||||
};
|
||||
|
||||
/*
|
||||
* Force the bus number assignments so that we can declare some of the
|
||||
* on-board devices and properties that are populated by the bootloader
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@
|
|||
serial0 = &serial0;
|
||||
serial2 = &serial2;
|
||||
wifi0 = &wifi0;
|
||||
atcphy0 = &atcphy0;
|
||||
atcphy1 = &atcphy1;
|
||||
};
|
||||
|
||||
chosen {
|
||||
|
|
@ -53,6 +55,29 @@
|
|||
interrupt-parent = <&pinctrl_ap>;
|
||||
interrupts = <106 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "irq";
|
||||
|
||||
typec0: connector {
|
||||
compatible = "usb-c-connector";
|
||||
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 {
|
||||
|
|
@ -61,6 +86,115 @@
|
|||
interrupt-parent = <&pinctrl_ap>;
|
||||
interrupts = <106 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "irq";
|
||||
|
||||
typec1: connector {
|
||||
compatible = "usb-c-connector";
|
||||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* 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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/pinctrl/apple.h>
|
||||
#include <dt-bindings/spmi/spmi.h>
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
|
||||
/ {
|
||||
compatible = "apple,t8103", "apple,arm-platform";
|
||||
|
|
@ -1013,6 +1014,110 @@
|
|||
resets = <&ps_ans2>;
|
||||
};
|
||||
|
||||
dwc3_0: usb@382280000 {
|
||||
compatible = "apple,t8103-dwc3";
|
||||
reg = <0x3 0x82280000 0x0 0xcd00>, <0x3 0x8228cd00 0x0 0x3200>;
|
||||
reg-names = "dwc3-core", "dwc3-apple";
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 777 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dr_mode = "otg";
|
||||
usb-role-switch;
|
||||
role-switch-default-mode = "host";
|
||||
iommus = <&dwc3_0_dart_0 0>, <&dwc3_0_dart_1 1>;
|
||||
power-domains = <&ps_atc0_usb>;
|
||||
resets = <&atcphy0>;
|
||||
phys = <&atcphy0 PHY_TYPE_USB2>, <&atcphy0 PHY_TYPE_USB3>;
|
||||
phy-names = "usb2-phy", "usb3-phy";
|
||||
};
|
||||
|
||||
dwc3_0_dart_0: iommu@382f00000 {
|
||||
compatible = "apple,t8103-dart";
|
||||
reg = <0x3 0x82f00000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 781 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#iommu-cells = <1>;
|
||||
power-domains = <&ps_atc0_usb>;
|
||||
};
|
||||
|
||||
dwc3_0_dart_1: iommu@382f80000 {
|
||||
compatible = "apple,t8103-dart";
|
||||
reg = <0x3 0x82f80000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 781 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#iommu-cells = <1>;
|
||||
power-domains = <&ps_atc0_usb>;
|
||||
};
|
||||
|
||||
atcphy0: phy@383000000 {
|
||||
compatible = "apple,t8103-atcphy";
|
||||
reg = <0x3 0x83000000 0x0 0x4c000>,
|
||||
<0x3 0x83050000 0x0 0x8000>,
|
||||
<0x3 0x80000000 0x0 0x4000>,
|
||||
<0x3 0x82a90000 0x0 0x4000>,
|
||||
<0x3 0x82a84000 0x0 0x4000>;
|
||||
reg-names = "core", "lpdptx", "axi2af", "usb2phy",
|
||||
"pipehandler";
|
||||
|
||||
#phy-cells = <1>;
|
||||
#reset-cells = <0>;
|
||||
|
||||
orientation-switch;
|
||||
mode-switch;
|
||||
power-domains = <&ps_atc0_usb>;
|
||||
};
|
||||
|
||||
dwc3_1: usb@502280000 {
|
||||
compatible = "apple,t8103-dwc3";
|
||||
reg = <0x5 0x02280000 0x0 0xcd00>, <0x5 0x0228cd00 0x0 0x3200>;
|
||||
reg-names = "dwc3-core", "dwc3-apple";
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 857 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dr_mode = "otg";
|
||||
usb-role-switch;
|
||||
role-switch-default-mode = "host";
|
||||
iommus = <&dwc3_1_dart_0 0>, <&dwc3_1_dart_1 1>;
|
||||
power-domains = <&ps_atc1_usb>;
|
||||
resets = <&atcphy1>;
|
||||
phys = <&atcphy1 PHY_TYPE_USB2>, <&atcphy1 PHY_TYPE_USB3>;
|
||||
phy-names = "usb2-phy", "usb3-phy";
|
||||
};
|
||||
|
||||
dwc3_1_dart_0: iommu@502f00000 {
|
||||
compatible = "apple,t8103-dart";
|
||||
reg = <0x5 0x02f00000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 861 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#iommu-cells = <1>;
|
||||
power-domains = <&ps_atc1_usb>;
|
||||
};
|
||||
|
||||
dwc3_1_dart_1: iommu@502f80000 {
|
||||
compatible = "apple,t8103-dart";
|
||||
reg = <0x5 0x02f80000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 861 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#iommu-cells = <1>;
|
||||
power-domains = <&ps_atc1_usb>;
|
||||
};
|
||||
|
||||
atcphy1: phy@503000000 {
|
||||
compatible = "apple,t8103-atcphy";
|
||||
reg = <0x5 0x03000000 0x0 0x4c000>,
|
||||
<0x5 0x03050000 0x0 0x8000>,
|
||||
<0x5 0x0 0x0 0x4000>,
|
||||
<0x5 0x02a90000 0x0 0x4000>,
|
||||
<0x5 0x02a84000 0x0 0x4000>;
|
||||
reg-names = "core", "lpdptx", "axi2af", "usb2phy",
|
||||
"pipehandler";
|
||||
|
||||
#phy-cells = <1>;
|
||||
#reset-cells = <0>;
|
||||
|
||||
orientation-switch;
|
||||
mode-switch;
|
||||
power-domains = <&ps_atc1_usb>;
|
||||
};
|
||||
|
||||
pcie0_dart_0: iommu@681008000 {
|
||||
compatible = "apple,t8103-dart";
|
||||
reg = <0x6 0x81008000 0x0 0x4000>;
|
||||
|
|
|
|||
|
|
@ -61,6 +61,18 @@
|
|||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Provide labels for the USB type C ports.
|
||||
*/
|
||||
|
||||
&typec0 {
|
||||
label = "USB-C Left-back";
|
||||
};
|
||||
|
||||
&typec1 {
|
||||
label = "USB-C Left-front";
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
/* MagSafe port */
|
||||
hpm5: usb-pd@3a {
|
||||
|
|
|
|||
|
|
@ -61,6 +61,18 @@
|
|||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Provide labels for the USB type C ports.
|
||||
*/
|
||||
|
||||
&typec0 {
|
||||
label = "USB-C Left-back";
|
||||
};
|
||||
|
||||
&typec1 {
|
||||
label = "USB-C Left-front";
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
/* MagSafe port */
|
||||
hpm5: usb-pd@3a {
|
||||
|
|
|
|||
|
|
@ -72,3 +72,15 @@
|
|||
&pcie2_dart {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/*
|
||||
* Provide labels for the USB type C ports.
|
||||
*/
|
||||
|
||||
&typec0 {
|
||||
label = "USB-C Back-left";
|
||||
};
|
||||
|
||||
&typec1 {
|
||||
label = "USB-C Back-right";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -109,6 +109,18 @@
|
|||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Provide labels for the USB type C ports.
|
||||
*/
|
||||
|
||||
&typec0 {
|
||||
label = "USB-C Left-back";
|
||||
};
|
||||
|
||||
&typec1 {
|
||||
label = "USB-C Left-front";
|
||||
};
|
||||
|
||||
&i2c4 {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@
|
|||
|
||||
/ {
|
||||
aliases {
|
||||
atcphy0 = &atcphy0;
|
||||
atcphy1 = &atcphy1;
|
||||
serial0 = &serial0;
|
||||
serial2 = &serial2;
|
||||
};
|
||||
|
|
@ -53,6 +55,29 @@
|
|||
interrupt-parent = <&pinctrl_ap>;
|
||||
interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "irq";
|
||||
|
||||
typec0: connector {
|
||||
compatible = "usb-c-connector";
|
||||
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 {
|
||||
|
|
@ -61,6 +86,115 @@
|
|||
interrupt-parent = <&pinctrl_ap>;
|
||||
interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "irq";
|
||||
|
||||
typec1: connector {
|
||||
compatible = "usb-c-connector";
|
||||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* 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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
#include <dt-bindings/interrupt-controller/apple-aic.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/pinctrl/apple.h>
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
#include <dt-bindings/spmi/spmi.h>
|
||||
|
||||
/ {
|
||||
|
|
@ -1016,6 +1017,110 @@
|
|||
resets = <&ps_ans>;
|
||||
};
|
||||
|
||||
dwc3_0: usb@382280000 {
|
||||
compatible = "apple,t8112-dwc3", "apple,t8103-dwc3";
|
||||
reg = <0x3 0x82280000 0x0 0xcd00>, <0x3 0x8228cd00 0x0 0x3200>;
|
||||
reg-names = "dwc3-core", "dwc3-apple";
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 1031 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dr_mode = "otg";
|
||||
usb-role-switch;
|
||||
role-switch-default-mode = "host";
|
||||
iommus = <&dwc3_0_dart_0 0>, <&dwc3_0_dart_1 1>;
|
||||
power-domains = <&ps_atc0_usb>;
|
||||
resets = <&atcphy0>;
|
||||
phys = <&atcphy0 PHY_TYPE_USB2>, <&atcphy0 PHY_TYPE_USB3>;
|
||||
phy-names = "usb2-phy", "usb3-phy";
|
||||
};
|
||||
|
||||
dwc3_0_dart_0: iommu@382f00000 {
|
||||
compatible = "apple,t8110-dart";
|
||||
reg = <0x3 0x82f00000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 1035 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#iommu-cells = <1>;
|
||||
power-domains = <&ps_atc0_usb>;
|
||||
};
|
||||
|
||||
dwc3_0_dart_1: iommu@382f80000 {
|
||||
compatible = "apple,t8110-dart";
|
||||
reg = <0x3 0x82f80000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 1035 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#iommu-cells = <1>;
|
||||
power-domains = <&ps_atc0_usb>;
|
||||
};
|
||||
|
||||
atcphy0: phy@383000000 {
|
||||
compatible = "apple,t8112-atcphy", "apple,t8103-atcphy";
|
||||
reg = <0x3 0x83000000 0x0 0x4c000>,
|
||||
<0x3 0x83050000 0x0 0x8000>,
|
||||
<0x3 0x80000000 0x0 0x4000>,
|
||||
<0x3 0x82a90000 0x0 0x4000>,
|
||||
<0x3 0x82a84000 0x0 0x4000>;
|
||||
reg-names = "core", "lpdptx", "axi2af", "usb2phy",
|
||||
"pipehandler";
|
||||
|
||||
#phy-cells = <1>;
|
||||
#reset-cells = <0>;
|
||||
|
||||
orientation-switch;
|
||||
mode-switch;
|
||||
power-domains = <&ps_atc0_usb>;
|
||||
};
|
||||
|
||||
dwc3_1: usb@502280000 {
|
||||
compatible = "apple,t8112-dwc3", "apple,t8103-dwc3";
|
||||
reg = <0x5 0x02280000 0x0 0xcd00>, <0x5 0x0228cd00 0x0 0x3200>;
|
||||
reg-names = "dwc3-core", "dwc3-apple";
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 1112 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dr_mode = "otg";
|
||||
usb-role-switch;
|
||||
role-switch-default-mode = "host";
|
||||
iommus = <&dwc3_1_dart_0 0>, <&dwc3_1_dart_1 1>;
|
||||
power-domains = <&ps_atc1_usb>;
|
||||
resets = <&atcphy1>;
|
||||
phys = <&atcphy1 PHY_TYPE_USB2>, <&atcphy1 PHY_TYPE_USB3>;
|
||||
phy-names = "usb2-phy", "usb3-phy";
|
||||
};
|
||||
|
||||
dwc3_1_dart_0: iommu@502f00000 {
|
||||
compatible = "apple,t8110-dart";
|
||||
reg = <0x5 0x02f00000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 1116 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#iommu-cells = <1>;
|
||||
power-domains = <&ps_atc1_usb>;
|
||||
};
|
||||
|
||||
dwc3_1_dart_1: iommu@502f80000 {
|
||||
compatible = "apple,t8110-dart";
|
||||
reg = <0x5 0x02f80000 0x0 0x4000>;
|
||||
interrupt-parent = <&aic>;
|
||||
interrupts = <AIC_IRQ 1116 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#iommu-cells = <1>;
|
||||
power-domains = <&ps_atc1_usb>;
|
||||
};
|
||||
|
||||
atcphy1: phy@503000000 {
|
||||
compatible = "apple,t8112-atcphy", "apple,t8103-atcphy";
|
||||
reg = <0x5 0x03000000 0x0 0x4c000>,
|
||||
<0x5 0x03050000 0x0 0x8000>,
|
||||
<0x5 0x0 0x0 0x4000>,
|
||||
<0x5 0x02a90000 0x0 0x4000>,
|
||||
<0x5 0x02a84000 0x0 0x4000>;
|
||||
reg-names = "core", "lpdptx", "axi2af", "usb2phy",
|
||||
"pipehandler";
|
||||
|
||||
#phy-cells = <1>;
|
||||
#reset-cells = <0>;
|
||||
|
||||
orientation-switch;
|
||||
mode-switch;
|
||||
power-domains = <&ps_atc1_usb>;
|
||||
};
|
||||
|
||||
pcie0_dart: iommu@681008000 {
|
||||
compatible = "apple,t8110-dart";
|
||||
reg = <0x6 0x81008000 0x0 0x4000>;
|
||||
|
|
|
|||
Loading…
Reference in New Issue