Skip to content

Commit 6e505dd

Browse files
Wayne Changthierryreding
authored andcommitted
arm64: tegra: Enable XUSB host function on Jetson AGX Orin
This commit enables XUSB host and pad controller on Jetson AGX Orin. Signed-off-by: Wayne Chang <waynec@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Jon Hunter <jonathanh@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
1 parent 79ed18d commit 6e505dd

3 files changed

Lines changed: 278 additions & 0 deletions

File tree

arch/arm64/boot/dts/nvidia/tegra234-p3701-0000.dtsi

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,29 @@
3232
non-removable;
3333
};
3434

35+
padctl@3520000 {
36+
vclamp-usb-supply = <&vdd_1v8_ao>;
37+
avdd-usb-supply = <&vdd_3v3_ao>;
38+
39+
ports {
40+
usb2-0 {
41+
vbus-supply = <&vdd_5v0_sys>;
42+
};
43+
44+
usb2-1 {
45+
vbus-supply = <&vdd_5v0_sys>;
46+
};
47+
48+
usb2-2 {
49+
vbus-supply = <&vdd_5v0_sys>;
50+
};
51+
52+
usb2-3 {
53+
vbus-supply = <&vdd_5v0_sys>;
54+
};
55+
};
56+
};
57+
3558
rtc@c2a0000 {
3659
status = "okay";
3760
};
@@ -41,6 +64,15 @@
4164
};
4265
};
4366

67+
vdd_5v0_sys: regulator-vdd-5v0-sys {
68+
compatible = "regulator-fixed";
69+
regulator-name = "VIN_SYS_5V0";
70+
regulator-min-microvolt = <5000000>;
71+
regulator-max-microvolt = <5000000>;
72+
regulator-always-on;
73+
regulator-boot-on;
74+
};
75+
4476
vdd_1v8_ls: regulator-vdd-1v8-ls {
4577
compatible = "regulator-fixed";
4678
regulator-name = "VDD_1V8_LS";
@@ -57,6 +89,14 @@
5789
regulator-always-on;
5890
};
5991

92+
vdd_3v3_ao: regulator-vdd-3v3-ao {
93+
compatible = "regulator-fixed";
94+
regulator-name = "VDD_3V3_AO";
95+
regulator-min-microvolt = <3300000>;
96+
regulator-max-microvolt = <3300000>;
97+
regulator-always-on;
98+
};
99+
60100
vdd_3v3_pcie: regulator-vdd-3v3-pcie {
61101
compatible = "regulator-fixed";
62102
regulator-name = "VDD_3V3_PCIE";

arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701-0000.dts

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2028,6 +2028,99 @@
20282028
status = "okay";
20292029
};
20302030

2031+
padctl@3520000 {
2032+
status = "okay";
2033+
2034+
pads {
2035+
usb2 {
2036+
lanes {
2037+
usb2-0 {
2038+
status = "okay";
2039+
};
2040+
2041+
usb2-1 {
2042+
status = "okay";
2043+
};
2044+
2045+
usb2-2 {
2046+
status = "okay";
2047+
};
2048+
2049+
usb2-3 {
2050+
status = "okay";
2051+
};
2052+
};
2053+
};
2054+
2055+
usb3 {
2056+
lanes {
2057+
usb3-0 {
2058+
status = "okay";
2059+
};
2060+
2061+
usb3-1 {
2062+
status = "okay";
2063+
};
2064+
2065+
usb3-2 {
2066+
status = "okay";
2067+
};
2068+
};
2069+
};
2070+
};
2071+
2072+
ports {
2073+
usb2-0 {
2074+
mode = "host";
2075+
status = "okay";
2076+
};
2077+
2078+
usb2-1 {
2079+
mode = "host";
2080+
status = "okay";
2081+
};
2082+
2083+
usb2-2 {
2084+
mode = "host";
2085+
status = "okay";
2086+
};
2087+
2088+
usb2-3 {
2089+
mode = "host";
2090+
status = "okay";
2091+
};
2092+
2093+
usb3-0 {
2094+
nvidia,usb2-companion = <1>;
2095+
status = "okay";
2096+
};
2097+
2098+
usb3-1 {
2099+
nvidia,usb2-companion = <0>;
2100+
status = "okay";
2101+
};
2102+
2103+
usb3-2 {
2104+
nvidia,usb2-companion = <3>;
2105+
status = "okay";
2106+
};
2107+
};
2108+
};
2109+
2110+
usb@3610000 {
2111+
status = "okay";
2112+
2113+
phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
2114+
<&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-1}>,
2115+
<&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-2}>,
2116+
<&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-3}>,
2117+
<&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-0}>,
2118+
<&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>,
2119+
<&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-2}>;
2120+
phy-names = "usb2-0", "usb2-1", "usb2-2", "usb2-3",
2121+
"usb3-0", "usb3-1", "usb3-2";
2122+
};
2123+
20312124
ethernet@6800000 {
20322125
status = "okay";
20332126

arch/arm64/boot/dts/nvidia/tegra234.dtsi

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -981,6 +981,151 @@
981981
status = "disabled";
982982
};
983983

984+
xusb_padctl: padctl@3520000 {
985+
compatible = "nvidia,tegra234-xusb-padctl";
986+
reg = <0x0 0x03520000 0x0 0x20000>,
987+
<0x0 0x03540000 0x0 0x10000>;
988+
reg-names = "padctl", "ao";
989+
interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
990+
991+
resets = <&bpmp TEGRA234_RESET_XUSB_PADCTL>;
992+
reset-names = "padctl";
993+
994+
status = "disabled";
995+
996+
pads {
997+
usb2 {
998+
clocks = <&bpmp TEGRA234_CLK_USB2_TRK>;
999+
clock-names = "trk";
1000+
1001+
lanes {
1002+
usb2-0 {
1003+
nvidia,function = "xusb";
1004+
status = "disabled";
1005+
#phy-cells = <0>;
1006+
};
1007+
1008+
usb2-1 {
1009+
nvidia,function = "xusb";
1010+
status = "disabled";
1011+
#phy-cells = <0>;
1012+
};
1013+
1014+
usb2-2 {
1015+
nvidia,function = "xusb";
1016+
status = "disabled";
1017+
#phy-cells = <0>;
1018+
};
1019+
1020+
usb2-3 {
1021+
nvidia,function = "xusb";
1022+
status = "disabled";
1023+
#phy-cells = <0>;
1024+
};
1025+
};
1026+
};
1027+
1028+
usb3 {
1029+
lanes {
1030+
usb3-0 {
1031+
nvidia,function = "xusb";
1032+
status = "disabled";
1033+
#phy-cells = <0>;
1034+
};
1035+
1036+
usb3-1 {
1037+
nvidia,function = "xusb";
1038+
status = "disabled";
1039+
#phy-cells = <0>;
1040+
};
1041+
1042+
usb3-2 {
1043+
nvidia,function = "xusb";
1044+
status = "disabled";
1045+
#phy-cells = <0>;
1046+
};
1047+
1048+
usb3-3 {
1049+
nvidia,function = "xusb";
1050+
status = "disabled";
1051+
#phy-cells = <0>;
1052+
};
1053+
};
1054+
};
1055+
};
1056+
1057+
ports {
1058+
usb2-0 {
1059+
status = "disabled";
1060+
};
1061+
1062+
usb2-1 {
1063+
status = "disabled";
1064+
};
1065+
1066+
usb2-2 {
1067+
status = "disabled";
1068+
};
1069+
1070+
usb2-3 {
1071+
status = "disabled";
1072+
};
1073+
1074+
usb3-0 {
1075+
status = "disabled";
1076+
};
1077+
1078+
usb3-1 {
1079+
status = "disabled";
1080+
};
1081+
1082+
usb3-2 {
1083+
status = "disabled";
1084+
};
1085+
1086+
usb3-3 {
1087+
status = "disabled";
1088+
};
1089+
};
1090+
};
1091+
1092+
usb@3610000 {
1093+
compatible = "nvidia,tegra234-xusb";
1094+
reg = <0x0 0x03610000 0x0 0x40000>,
1095+
<0x0 0x03600000 0x0 0x10000>,
1096+
<0x0 0x03650000 0x0 0x10000>;
1097+
reg-names = "hcd", "fpci", "bar2";
1098+
1099+
interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
1100+
<GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
1101+
1102+
clocks = <&bpmp TEGRA234_CLK_XUSB_CORE_HOST>,
1103+
<&bpmp TEGRA234_CLK_XUSB_FALCON>,
1104+
<&bpmp TEGRA234_CLK_XUSB_CORE_SS>,
1105+
<&bpmp TEGRA234_CLK_XUSB_SS>,
1106+
<&bpmp TEGRA234_CLK_CLK_M>,
1107+
<&bpmp TEGRA234_CLK_XUSB_FS>,
1108+
<&bpmp TEGRA234_CLK_UTMIP_PLL>,
1109+
<&bpmp TEGRA234_CLK_CLK_M>,
1110+
<&bpmp TEGRA234_CLK_PLLE>;
1111+
clock-names = "xusb_host", "xusb_falcon_src",
1112+
"xusb_ss", "xusb_ss_src", "xusb_hs_src",
1113+
"xusb_fs_src", "pll_u_480m", "clk_m",
1114+
"pll_e";
1115+
interconnects = <&mc TEGRA234_MEMORY_CLIENT_XUSB_HOSTR &emc>,
1116+
<&mc TEGRA234_MEMORY_CLIENT_XUSB_HOSTW &emc>;
1117+
interconnect-names = "dma-mem", "write";
1118+
iommus = <&smmu_niso1 TEGRA234_SID_XUSB_HOST>;
1119+
1120+
power-domains = <&bpmp TEGRA234_POWER_DOMAIN_XUSBC>,
1121+
<&bpmp TEGRA234_POWER_DOMAIN_XUSBA>;
1122+
power-domain-names = "xusb_host", "xusb_ss";
1123+
1124+
nvidia,xusb-padctl = <&xusb_padctl>;
1125+
dma-coherent;
1126+
status = "disabled";
1127+
};
1128+
9841129
fuse@3810000 {
9851130
compatible = "nvidia,tegra234-efuse";
9861131
reg = <0x0 0x03810000 0x0 0x10000>;

0 commit comments

Comments
 (0)