We are having an issue getting the xhci@3610000 device to operate at USB 3.0 speeds when our usb hub chip(Microchip USB5806) is capable.
Our platform is our own carrier card with Orin NX SOM.
Does anyone have any feedback on our device tree config?
This our pin mux:
pin 41 DP0_TXD0_P to USBSS1_RX_P
pin 39 DP0_TXD0_N to USBSS1_RX_N
pin 47 DP0_TXD1_P to USBSS1_TX_P
pin 45 DP0_TXD1_N to USBSS1_TX_N
Device Tree snippet for USB:
xusb_padctl: xusb_padctl@3520000 {
status = "okay";
pads {
usb2 {
lanes {
usb2-0 {
nvidia,function = "xusb";
status = "okay";
};
usb2-1 {
nvidia,function = "xusb";
status = "okay";
};
usb2-2 {
nvidia,function = "xusb";
status = "okay";
};
};
};
usb3 {
lanes {
usb3-0 {
status = "disabled";
#phy-cells = <0x00>;
};
usb3-1 {
status = "okay";
#phy-cells = <0x00>;
nvidia,function = "xusb";
phandle = <0xb1>;
};
usb3-2 {
status = "disabled";
#phy-cells = <0x00>;
};
usb3-3 {
status = "disabled";
#phy-cells = <0x00>;
};
};
};
ports {
usb2-0 {
mode = "peripheral";
status = "okay";
usb-role-switch;
};
usb2-0 {
mode = "otg";
status = "okay";
vbus-supply = <&varmint_vdd_5v_sys>;
#if TEGRA_XUSB_DT_VERSION >= DT_VERSION_3
usb-role-switch;
connector {
compatible = “usb-b-connector”, “gpio-usb-b-connector”;
label = “micro-USB”;
type = “micro”;
vbus-gpio = <&tegra_main_gpio TEGRA234_MAIN_GPIO(Z, 1) GPIO_ACTIVE_LOW>;
};
endif
};
usb2-1 {
mode = “host”;
vbus-supply = <&varmint_vdd_av10_hub>;
status = “okay”;
};
usb2-2 {/* Goes to M2.E */
mode = "host";
vbus-supply = <&varmint_vdd_5v_sys>;
status = "okay";
};
usb3-0 {
status = "disabled";
};
usb3-1 {
status = "okay";
nvidia,usb2-companion = <0x01>;
};
};
};
tegra_xudc: xudc@3550000 {
status = "okay";
phys = <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-0}>;
phy-names = "usb2-0";
nvidia,xusb-padctl = <&xusb_padctl>;
};
tegra_xhci: xhci@3610000 {
status = "okay";
phys = <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-1}>,
<&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-2}>,
<&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-1}>;
phy-names = "usb2-1", "usb2-2", "usb3-1";
nvidia,xusb-padctl = <&xusb_padctl>;
};