summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Ziswiler <[email protected]>2022-04-13 11:33:33 +0200
committerStefano Babic <[email protected]>2022-04-21 12:44:23 +0200
commit4625ff6521694513a46cef6058cac1ea49e9dfcb (patch)
tree34eade7f3de30a45fdb1f22fd2b77ae2106eca5f
parentdbc5633963d0739682efa6eef9341775b70e3fda (diff)
board: colibri_imx7: fix usb start on solo
This fixes the following crash when run on a Colibri iMX7S aka solo: Colibri iMX7 # usb start starting USB... Bus usb@30b10000: USB EHCI 1.00 Bus usb@30b20000: The i.MX 7Solo has only one single USB OTG1 but no USB host port. Trying to initialize the nonexisting port just crashes. While at it also drop board_usb_phy_mode() which is also no longer used in the driver model age. Signed-off-by: Marcel Ziswiler <[email protected]>
-rw-r--r--board/toradex/colibri_imx7/colibri_imx7.c40
-rw-r--r--configs/colibri_imx7_defconfig1
2 files changed, 9 insertions, 32 deletions
diff --git a/board/toradex/colibri_imx7/colibri_imx7.c b/board/toradex/colibri_imx7/colibri_imx7.c
index 6822102d2c3..486299b5e93 100644
--- a/board/toradex/colibri_imx7/colibri_imx7.c
+++ b/board/toradex/colibri_imx7/colibri_imx7.c
@@ -319,40 +319,16 @@ int ft_board_setup(void *blob, struct bd_info *bd)
#endif
#ifdef CONFIG_USB_EHCI_MX7
-static iomux_v3_cfg_t const usb_otg2_pads[] = {
- MX7D_PAD_UART3_CTS_B__USB_OTG2_PWR | MUX_PAD_CTRL(NO_PAD_CTRL),
-};
-
-int board_ehci_hcd_init(int port)
+int board_fix_fdt(void *rw_fdt_blob)
{
- switch (port) {
- case 0:
- break;
- case 1:
- if (is_cpu_type(MXC_CPU_MX7S))
- return -ENODEV;
-
- imx_iomux_v3_setup_multiple_pads(usb_otg2_pads,
- ARRAY_SIZE(usb_otg2_pads));
- break;
- default:
- return -EINVAL;
- }
- return 0;
-}
+ /* i.MX 7Solo has only one single USB OTG1 but no USB host port */
+ if (is_cpu_type(MXC_CPU_MX7S)) {
+ int offset = fdt_path_offset(rw_fdt_blob, "/soc/bus@30800000/usb@30b20000");
-int board_usb_phy_mode(int port)
-{
- switch (port) {
- case 0:
- if (gpio_get_value(USB_CDET_GPIO))
- return USB_INIT_DEVICE;
- else
- return USB_INIT_HOST;
- case 1:
- default:
- return USB_INIT_HOST;
+ return fdt_status_disabled(rw_fdt_blob, offset);
}
+
+ return 0;
}
#if defined(CONFIG_BOARD_LATE_INIT)
@@ -373,4 +349,4 @@ int board_late_init(void)
}
#endif /* CONFIG_BOARD_LATE_INIT */
-#endif
+#endif /* CONFIG_USB_EHCI_MX7 */
diff --git a/configs/colibri_imx7_defconfig b/configs/colibri_imx7_defconfig
index 2f61223c9eb..0e254fd7d15 100644
--- a/configs/colibri_imx7_defconfig
+++ b/configs/colibri_imx7_defconfig
@@ -10,6 +10,7 @@ CONFIG_TARGET_COLIBRI_IMX7=y
CONFIG_IMX_RDC=y
CONFIG_IMX_BOOTAUX=y
CONFIG_IMX_HAB=y
+CONFIG_OF_BOARD_FIXUP=y
CONFIG_SYS_MEMTEST_START=0x80000000
CONFIG_SYS_MEMTEST_END=0x8c000000
CONFIG_DISTRO_DEFAULTS=y