[PATCH] sunxi: usb: convert PHY GPIO functions to DM

Andre Przywara andre.przywara at arm.com
Wed Jun 8 11:46:38 CEST 2022


On Tue, 7 Jun 2022 21:07:59 -0500
Samuel Holland <samuel at 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.przywara at arm.com>
> > Reported-by: Milan P. Stanić <mps at arvanta.net>  
> 
> Reviewed-by: Samuel Holland <samuel at 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.


More information about the U-Boot mailing list