board/udoo/mx6qdl: disable usb host in device tree
authorSergey Matyukevich <geomatsi@gmail.com>
Tue, 13 Oct 2020 20:16:20 +0000 (23:16 +0300)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Thu, 15 Oct 2020 16:00:36 +0000 (18:00 +0200)
After BSP update Udoo Quad/Dual board once again hangs on boot. On a
new kernel disabling CONFIG_USB option is not enough to work around
the troublesome usb host on Udoo Quad/Dual board. So in order to be
future-proof it makes sense to disable usbh1 block in device tree
rather than fine-tune kernel configuration after BSP updates.

Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
board/udoo/mx6qdl/linux.fragment [deleted file]
board/udoo/mx6qdl/patches/linux/0000-udoo-disable-usbh1.patch [new file with mode: 0644]
configs/mx6udoo_defconfig

diff --git a/board/udoo/mx6qdl/linux.fragment b/board/udoo/mx6qdl/linux.fragment
deleted file mode 100644 (file)
index 1d25099..0000000
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_USB is not set
diff --git a/board/udoo/mx6qdl/patches/linux/0000-udoo-disable-usbh1.patch b/board/udoo/mx6qdl/patches/linux/0000-udoo-disable-usbh1.patch
new file mode 100644 (file)
index 0000000..d151a40
--- /dev/null
@@ -0,0 +1,26 @@
+[PATCH] ARM: dts: imx6qdl-udoo: Disable usbh1 to avoid kernel hang
+
+Currently the kernel hangs when USB Host1 is enabled due to the lack of
+support for controlling the USB hub clock and GPIO reset line.
+
+Peter Chen has made several attempts to fix this problem, but his series
+has not been applied yet, so better disable USB host1 for now to avoid
+the kernel hang.
+
+Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
+---
+
+diff --git a/arch/arm/boot/dts/imx6qdl-udoo.dtsi b/arch/arm/boot/dts/imx6qdl-udoo.dtsi
+index 828dd20cd27d..c9e122865312 100644
+--- a/arch/arm/boot/dts/imx6qdl-udoo.dtsi
++++ b/arch/arm/boot/dts/imx6qdl-udoo.dtsi
+@@ -292,7 +292,8 @@ &usbh1 {
+       pinctrl-0 = <&pinctrl_usbh>;
+       vbus-supply = <&reg_usb_h1_vbus>;
+       clocks = <&clks IMX6QDL_CLK_CKO>;
+-      status = "okay";
++      /* currently USB support causes a kernel hang. Disable it for now */
++      status = "disabled";
+ };
+ &usbotg {
index d208f5846e23a80bfa1d7566985edb0d35adb33f..be56f3014e28efa2685b13aa8e6747882f226def 100644 (file)
@@ -3,6 +3,7 @@ BR2_cortex_a9=y
 BR2_ARM_ENABLE_NEON=y
 BR2_ARM_ENABLE_VFP=y
 BR2_ARM_FPU_VFPV3=y
+BR2_GLOBAL_PATCH_DIR="board/udoo/mx6qdl/patches"
 # Linux headers same as kernel, a 5.8 series
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_8=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1"
@@ -20,7 +21,6 @@ BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.8.13"
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7"
-BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/udoo/mx6qdl/linux.fragment"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-udoo imx6dl-udoo"
 # required tools to create the SD card image