On Tue, 7 Jun 2022 21:07:59 -0500 Samuel Holland <sam...@sholland.org> wrote:
Hi, > On 6/7/22 7:06 PM, Andre Przywara wrote: > > The Allwinner USB PHY driver is still using the legacy GPIO interface, > > which is now implemented by the DM_GPIO compat functions. > > Those seem to have some design flaws, as setting the direction, then > > later setting the value will not work, if the DM_GPIO driver is > > implementing set_flags. > > > > Fix this by using the dm_ version of the direct GPIO interface, which > > uses struct gpio_desc structs to handle requested GPIOs, and actually > > keeps the flags we set earlier. > > > > This fixes USB operation on boards which need to toggle the VBUS supply > > via a GPIO, like the Teres-I laptop or the BananaPi M2 Berry board. > > > > Signed-off-by: Andre Przywara <andre.przyw...@arm.com> > > Reported-by: Milan P. Stanić <m...@arvanta.net> > > Reviewed-by: Samuel Holland <sam...@sholland.org> Thanks! > > It looks like the other users of sunxi_name_to_gpio are unaffected because > they > call only gpio_direction_output (sometimes repeatedly), never gpio_set_value. Yeah, that's right, I was concerned about SATAPWR and MACPWR too, but they work, for the very reason you mentioned. But we should eventually eliminate their usage, together with CONFIG_USB?_VBUS_PIN, as they are only used in U-Boot proper, where we can rely on proper DT information now. Cheers, Andre P.S.: I just picked the lowest hanging fruit, and removed CONFIG_MMC?_CD_PIN, since we can ignore card detect in the same way the BROM does.