Skip to content

Commit 1b17df9

Browse files
Wayne Changgregkh
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 <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Signed-off-by: Jon Hunter <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent 2648f68 commit 1b17df9

File tree

3 files changed

+286
-0
lines changed

3 files changed

+286
-0
lines changed

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

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,29 @@
6767
non-removable;
6868
};
6969

70+
padctl@3520000 {
71+
vclamp-usb-supply = <&vdd_ao_1v8>;
72+
avdd-usb-supply = <&vdd_ao_3v3>;
73+
74+
ports {
75+
usb2-0 {
76+
vbus-supply = <&vdd_5v0_sys>;
77+
};
78+
79+
usb2-1 {
80+
vbus-supply = <&vdd_5v0_sys>;
81+
};
82+
83+
usb2-2 {
84+
vbus-supply = <&vdd_5v0_sys>;
85+
};
86+
87+
usb2-3 {
88+
vbus-supply = <&vdd_5v0_sys>;
89+
};
90+
};
91+
};
92+
7093
rtc@c2a0000 {
7194
status = "okay";
7295
};
@@ -75,4 +98,29 @@
7598
nvidia,invert-interrupt;
7699
};
77100
};
101+
102+
vdd_5v0_sys: regulator-vdd-5v0-sys {
103+
compatible = "regulator-fixed";
104+
regulator-name = "VIN_SYS_5V0";
105+
regulator-min-microvolt = <5000000>;
106+
regulator-max-microvolt = <5000000>;
107+
regulator-always-on;
108+
regulator-boot-on;
109+
};
110+
111+
vdd_ao_1v8: regulator-vdd-1v8-ao {
112+
compatible = "regulator-fixed";
113+
regulator-name = "vdd-AO-1v8";
114+
regulator-min-microvolt = <1800000>;
115+
regulator-max-microvolt = <1800000>;
116+
regulator-always-on;
117+
};
118+
119+
vdd_ao_3v3: regulator-vdd-3v3-ao {
120+
compatible = "regulator-fixed";
121+
regulator-name = "vdd-AO-3v3";
122+
regulator-min-microvolt = <3300000>;
123+
regulator-max-microvolt = <3300000>;
124+
regulator-always-on;
125+
};
78126
};

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
@@ -2022,6 +2022,99 @@
20222022
nvidia,model = "NVIDIA Jetson AGX Orin HDA";
20232023
status = "okay";
20242024
};
2025+
2026+
padctl@3520000 {
2027+
status = "okay";
2028+
2029+
pads {
2030+
usb2 {
2031+
lanes {
2032+
usb2-0 {
2033+
status = "okay";
2034+
};
2035+
2036+
usb2-1 {
2037+
status = "okay";
2038+
};
2039+
2040+
usb2-2 {
2041+
status = "okay";
2042+
};
2043+
2044+
usb2-3 {
2045+
status = "okay";
2046+
};
2047+
};
2048+
};
2049+
2050+
usb3 {
2051+
lanes {
2052+
usb3-0 {
2053+
status = "okay";
2054+
};
2055+
2056+
usb3-1 {
2057+
status = "okay";
2058+
};
2059+
2060+
usb3-2 {
2061+
status = "okay";
2062+
};
2063+
};
2064+
};
2065+
};
2066+
2067+
ports {
2068+
usb2-0 {
2069+
mode = "host";
2070+
status = "okay";
2071+
};
2072+
2073+
usb2-1 {
2074+
mode = "host";
2075+
status = "okay";
2076+
};
2077+
2078+
usb2-2 {
2079+
mode = "host";
2080+
status = "okay";
2081+
};
2082+
2083+
usb2-3 {
2084+
mode = "host";
2085+
status = "okay";
2086+
};
2087+
2088+
usb3-0 {
2089+
nvidia,usb2-companion = <1>;
2090+
status = "okay";
2091+
};
2092+
2093+
usb3-1 {
2094+
nvidia,usb2-companion = <0>;
2095+
status = "okay";
2096+
};
2097+
2098+
usb3-2 {
2099+
nvidia,usb2-companion = <3>;
2100+
status = "okay";
2101+
};
2102+
};
2103+
};
2104+
2105+
usb@3610000 {
2106+
status = "okay";
2107+
2108+
phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
2109+
<&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-1}>,
2110+
<&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-2}>,
2111+
<&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-3}>,
2112+
<&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-0}>,
2113+
<&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>,
2114+
<&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-2}>;
2115+
phy-names = "usb2-0", "usb2-1", "usb2-2", "usb2-3",
2116+
"usb3-0", "usb3-1", "usb3-2";
2117+
};
20252118
};
20262119

20272120
chosen {

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

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1079,6 +1079,151 @@
10791079
status = "disabled";
10801080
};
10811081

1082+
xusb_padctl: padctl@3520000 {
1083+
compatible = "nvidia,tegra234-xusb-padctl";
1084+
reg = <0x03520000 0x20000>,
1085+
<0x03540000 0x10000>;
1086+
reg-names = "padctl", "ao";
1087+
interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
1088+
1089+
resets = <&bpmp TEGRA234_RESET_XUSB_PADCTL>;
1090+
reset-names = "padctl";
1091+
1092+
status = "disabled";
1093+
1094+
pads {
1095+
usb2 {
1096+
clocks = <&bpmp TEGRA234_CLK_USB2_TRK>;
1097+
clock-names = "trk";
1098+
1099+
lanes {
1100+
usb2-0 {
1101+
nvidia,function = "xusb";
1102+
status = "disabled";
1103+
#phy-cells = <0>;
1104+
};
1105+
1106+
usb2-1 {
1107+
nvidia,function = "xusb";
1108+
status = "disabled";
1109+
#phy-cells = <0>;
1110+
};
1111+
1112+
usb2-2 {
1113+
nvidia,function = "xusb";
1114+
status = "disabled";
1115+
#phy-cells = <0>;
1116+
};
1117+
1118+
usb2-3 {
1119+
nvidia,function = "xusb";
1120+
status = "disabled";
1121+
#phy-cells = <0>;
1122+
};
1123+
};
1124+
};
1125+
1126+
usb3 {
1127+
lanes {
1128+
usb3-0 {
1129+
nvidia,function = "xusb";
1130+
status = "disabled";
1131+
#phy-cells = <0>;
1132+
};
1133+
1134+
usb3-1 {
1135+
nvidia,function = "xusb";
1136+
status = "disabled";
1137+
#phy-cells = <0>;
1138+
};
1139+
1140+
usb3-2 {
1141+
nvidia,function = "xusb";
1142+
status = "disabled";
1143+
#phy-cells = <0>;
1144+
};
1145+
1146+
usb3-3 {
1147+
nvidia,function = "xusb";
1148+
status = "disabled";
1149+
#phy-cells = <0>;
1150+
};
1151+
};
1152+
};
1153+
};
1154+
1155+
ports {
1156+
usb2-0 {
1157+
status = "disabled";
1158+
};
1159+
1160+
usb2-1 {
1161+
status = "disabled";
1162+
};
1163+
1164+
usb2-2 {
1165+
status = "disabled";
1166+
};
1167+
1168+
usb2-3 {
1169+
status = "disabled";
1170+
};
1171+
1172+
usb3-0 {
1173+
status = "disabled";
1174+
};
1175+
1176+
usb3-1 {
1177+
status = "disabled";
1178+
};
1179+
1180+
usb3-2 {
1181+
status = "disabled";
1182+
};
1183+
1184+
usb3-3 {
1185+
status = "disabled";
1186+
};
1187+
};
1188+
};
1189+
1190+
usb@3610000 {
1191+
compatible = "nvidia,tegra234-xusb";
1192+
reg = <0x03610000 0x40000>,
1193+
<0x03600000 0x10000>,
1194+
<0x03650000 0x10000>;
1195+
reg-names = "hcd", "fpci", "bar2";
1196+
1197+
interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
1198+
<GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
1199+
1200+
clocks = <&bpmp TEGRA234_CLK_XUSB_CORE_HOST>,
1201+
<&bpmp TEGRA234_CLK_XUSB_FALCON>,
1202+
<&bpmp TEGRA234_CLK_XUSB_CORE_SS>,
1203+
<&bpmp TEGRA234_CLK_XUSB_SS>,
1204+
<&bpmp TEGRA234_CLK_CLK_M>,
1205+
<&bpmp TEGRA234_CLK_XUSB_FS>,
1206+
<&bpmp TEGRA234_CLK_UTMIP_PLL>,
1207+
<&bpmp TEGRA234_CLK_CLK_M>,
1208+
<&bpmp TEGRA234_CLK_PLLE>;
1209+
clock-names = "xusb_host", "xusb_falcon_src",
1210+
"xusb_ss", "xusb_ss_src", "xusb_hs_src",
1211+
"xusb_fs_src", "pll_u_480m", "clk_m",
1212+
"pll_e";
1213+
interconnects = <&mc TEGRA234_MEMORY_CLIENT_XUSB_HOSTR &emc>,
1214+
<&mc TEGRA234_MEMORY_CLIENT_XUSB_HOSTW &emc>;
1215+
interconnect-names = "dma-mem", "write";
1216+
iommus = <&smmu_niso1 TEGRA234_SID_XUSB_HOST>;
1217+
1218+
power-domains = <&bpmp TEGRA234_POWER_DOMAIN_XUSBC>,
1219+
<&bpmp TEGRA234_POWER_DOMAIN_XUSBA>;
1220+
power-domain-names = "xusb_host", "xusb_ss";
1221+
1222+
nvidia,xusb-padctl = <&xusb_padctl>;
1223+
dma-coherent;
1224+
status = "disabled";
1225+
};
1226+
10821227
fuse@3810000 {
10831228
compatible = "nvidia,tegra234-efuse";
10841229
reg = <0x03810000 0x10000>;

0 commit comments

Comments
 (0)