[PATCH v2 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. In v1 it guarded the regulator calls with CONFIG_IS_ENABLED(DM_REGULATOR) and a NULL check; as Marek pointed out both are unnecessary, the calls return -ENOSYS themselves, so it now looks like the adc-uclass example he gave. 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. On a Colibri VF50 V1.2A on an Iris carrier, U-Boot 2026.07 from NAND: "usb start" finds a USB stick, its partition table and blocks read back, 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]/ 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 | 25 ++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 5 deletions(-) -- 2.54.0