[PATCH 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]> With the ehci-vf fixes sent so far the controller comes up and enumerates its root hub, but a device plugged into the host port of a Colibri VF50 or VF61 carrier is still never found. Two things are missing. The driver ignores the vbus-supply of the port, so the regulator that switches VBUS is never enabled. That is patch 2. Enabling it is not enough, because the pin the regulator drives 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. On most SoCs that is harmless, the direction is 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. I first fixed this in the Vybrid GPIO driver, by asserting the direction again whenever a value is driven, and dropped that in favour of patch 1: the driver side does not help a pin that is only ever driven at request time, and the ordering is the actual defect. 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, all of them from tools and images missing in my environment. On a Colibri VF50 V1.2A on an Iris carrier, U-Boot 2026.07 from NAND: with both patches "usb start" finds a USB stick, its partition table and blocks read back, and Linux still boots with Ethernet, SD card and USB working. 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 | 31 ++++++++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 5 deletions(-) -- 2.54.0