Hello Champs,
Customer is debugging usb3.0 in linux SDK8.6 on ECO platform. It can't be recognized as USB3.0, it is still usb 2.0.
ubject: [PATCH] usb3 phy
---
.../dts/ti/k3-j721s2-common-proc-board.dts | 26 +++++++--
.../arm64/boot/dts/ti/k3-j721s2-main.dtsi | 1 +
.../boot/dts/ti/k3-j721s2-vision-apps.dts | 2 +-
.../drivers/phy/cadence/phy-cadence-torrent.c | 57 ++++++++++++++-----
.../linux-kernel/drivers/phy/phy-core.c | 15 +++++
.../linux-kernel/drivers/usb/cdns3/core.c | 11 ++--
.../arm/dts/k3-j721s2-common-proc-board.dts | 4 +-
.../u-boot/include/configs/j721s2_evm.h | 3 +-
8 files changed, 88 insertions(+), 31 deletions(-)
diff --git a/board-support/linux-kernel/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts b/board-support/linux-kernel/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts
index c1a9a493e..be6195752 100755
--- a/board-support/linux-kernel/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts
+++ b/board-support/linux-kernel/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts
@@ -590,8 +590,8 @@
};
&serdes_ln_ctrl {
- idle-states = <J721S2_SERDES0_LANE0_PCIE1_LANE0>, <J721S2_SERDES0_LANE1_USB>,
- <J721S2_SERDES0_LANE2_EDP_LANE2>, <J721S2_SERDES0_LANE3_EDP_LANE3>;
+ idle-states = <J721S2_SERDES0_LANE0_IP4_UNUSED>, <J721S2_SERDES0_LANE1_USB>,
+ <J721S2_SERDES0_LANE2_IP4_UNUSED>, <J721S2_SERDES0_LANE3_IP4_UNUSED>;
};
&serdes_refclk {
@@ -605,6 +605,14 @@
#phy-cells = <0>;
cdns,phy-type = <PHY_TYPE_PCIE>;
resets = <&serdes_wiz0 1>;
+ status = "disabled";
+ };
+ serdes0_usb_link: phy@1 {
+ reg = <1>;
+ cdns,num-lanes = <1>;
+ #phy-cells = <0>;
+ cdns,phy-type = <PHY_TYPE_USB3>;
+ resets = <&serdes_wiz0 2>;
};
};
@@ -620,16 +628,22 @@
pinctrl-0 = <&main_usbss0_pins_default>;
pinctrl-names = "default";
ti,vbus-divider;
- ti,usb2-only;
en-gpios = <&main_gpio0 59 GPIO_ACTIVE_HIGH>;/*AG25 GPIO0_59 USB0_DRVVBUS*/
vbus-gpios = <&exp74 1 GPIO_ACTIVE_HIGH>;/*TCA9539QPWRQ1 5V_EN P01*/
+
};
&usb0 {
- dr_mode = "host";
- maximum-speed = "high-speed";
+ dr_mode = "otg";
+ maximum-speed = "super-speed";
+ phys = <&serdes0_usb_link>;
+ phy-names = "cdns3,usb3-phy";
+ status = "okay";
+};
+&serdes_wiz0 {
+ // lane0-mode = <PHY_TYPE_PCIE>;
+ // lane1-mode = <PHY_TYPE_USB3>;
};
-
&pcie1_rc {
reset-gpios = <&exp1 2 GPIO_ACTIVE_HIGH>;
phys = <&serdes0_pcie_link>;
diff --git a/board-support/linux-kernel/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi b/board-support/linux-kernel/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi
index 4154c6ff2..6e5aceff9 100755
--- a/board-support/linux-kernel/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi
+++ b/board-support/linux-kernel/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi
@@ -994,6 +994,7 @@
cdns,num-lanes = <2>;
cdns,max-bit-rate = <5400>;
#phy-cells = <0>;
+ status = "disabled";
};
};
};
diff --git a/board-support/linux-kernel/arch/arm64/boot/dts/ti/k3-j721s2-vision-apps.dts b/board-support/linux-kernel/arch/arm64/boot/dts/ti/k3-j721s2-vision-apps.dts
index a9e09250d..018f6f1e9 100755
--- a/board-support/linux-kernel/arch/arm64/boot/dts/ti/k3-j721s2-vision-apps.dts
+++ b/board-support/linux-kernel/arch/arm64/boot/dts/ti/k3-j721s2-vision-apps.dts
@@ -20,7 +20,7 @@
};
&serdes_wiz0 {
- status = "disabled";
+ status = "ok";
};
diff --git a/board-support/u-boot/arch/arm/dts/k3-j721s2-common-proc-board.dts b/board-support/u-boot/arch/arm/dts/k3-j721s2-common-proc-board.dts
index 576fb1c52..2b5cbf1f2 100755
--- a/board-support/u-boot/arch/arm/dts/k3-j721s2-common-proc-board.dts
+++ b/board-support/u-boot/arch/arm/dts/k3-j721s2-common-proc-board.dts
@@ -399,6 +399,7 @@
};
&serdes0 {
+ status = "disabled";
serdes0_pcie_link: phy@0 {
reg = <0>;
cdns,num-lanes = <1>;
@@ -416,12 +417,11 @@
pinctrl-0 = <&main_usbss0_pins_default>;
pinctrl-names = "default";
ti,vbus-divider;
- ti,usb2-only;
};
&usb0 {
dr_mode = "otg";
- maximum-speed = "high-speed";
+ maximum-speed = "super-speed";
};
&pcie1_rc {
diff --git a/board-support/u-boot/include/configs/j721s2_evm.h b/board-support/u-boot/include/configs/j721s2_evm.h
index 2d26eb544..069966131 100755
--- a/board-support/u-boot/include/configs/j721s2_evm.h
+++ b/board-support/u-boot/include/configs/j721s2_evm.h
@@ -183,8 +183,7 @@
EXTRA_ENV_RPROC_SETTINGS \
EXTRA_ENV_DFUARGS \
DEFAULT_UFS_TI_ARGS \
- EXTRA_ENV_J721S2_BOARD_SETTINGS_MTD \
- EXTRA_ENV_CONFIG_MAIN_CPSW0_QSGMII_PHY
+ EXTRA_ENV_J721S2_BOARD_SETTINGS_MTD
/* Now for the remaining common defines */
#include <configs/ti_armv7_common.h>
--
2.34.1
lsusb -tv
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
ID 1d6b:0003 Linux Foundation 3.0 root hub
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
ID 1d6b:0002 Linux Foundation 2.0 root hub
The u disk can be recognized as usb3.0 on ubuntu virtual host.
Attached is the kernel log.
Thanks
Regards
Shine