[PATCH v3 0/2] vf610: make the USB host port usable
Mehmet Fide <[email protected]>
| Newsgroups | org.u-boot-project.lists.u-boot |
|---|---|
| Message-ID | <[email protected]> |
From: Mehmet Fide <[email protected]> A device plugged into the host port of a Colibri VF50 or VF61 carrier is never found, for two reasons. The pin that switches VBUS never becomes an output: device_probe() reads the device tree into plat data before it applies the pinctrl state, so the fixed regulator asks for its GPIO first and the pinctrl state of the same device then rewrites the pad. Harmless on most SoCs, where the direction lives in the GPIO block, but on Vybrid the output buffer enable is a bit of that pad. Patch 1 moves the call back below the pinctrl step, where it was until 2019. Unchanged since v1. Patch 2 makes the driver enable the vbus-supply of its port. v3: Marek asked what happens if the lookup fails with something like -ENOMEM. v2 ignored every error, so a supply that is described but cannot be brought up left the port silently unpowered. It now separates the two cases the way stm32_dsi.c and tdo-tl070wsh30.c do: -ENOENT means the port has no vbus-supply and -ENOSYS means the build has no DM_REGULATOR, both of which are normal here, since of the five boards that select ARCH_VF610 only the Colibri enables DM_REGULATOR at all. Anything else fails the probe. v2: dropped the CONFIG_IS_ENABLED(DM_REGULATOR) guards and the NULL check, the regulator calls handle both themselves. Patch 2 applies on top of https://lore.kernel.org/u-boot/[email protected]/ Testing. test/py on sandbox, before and after patch 1: 11 failed, 414 passed, 210 skipped, 1 xfailed, 20 errors, the same failures both times. Built for vf610twr as well, which has no DM_REGULATOR, to cover the stubbed path. On a Colibri VF50 V1.2A on an Iris carrier, U-Boot 2026.07 from NAND: "usb start" finds a USB stick, the pad of the VBUS pin reads 0x22ef instead of 0x22ed, and Linux still boots with Ethernet, SD card and USB working. v1: https://lore.kernel.org/u-boot/[email protected]/ v2: https://lore.kernel.org/u-boot/[email protected]/ Mehmet Fide (2): dm: core: read the device tree into plat data after pinctrl usb: ehci-vf: enable the vbus supply of the port drivers/core/device.c | 8 ++++---- drivers/usb/host/ehci-vf.c | 29 ++++++++++++++++++++++++++++- 2 files changed, 32 insertions(+), 5 deletions(-) -- 2.54.0