Hi, > -----Original Message----- > From: Marek Vasut <ma...@denx.de> > Sent: Wednesday, November 6, 2024 6:04 AM > To: Abbarapu, Venkatesh <venkatesh.abbar...@amd.com>; u-boot@lists.denx.de > Cc: Simek, Michal <michal.si...@amd.com>; fabrice.gasn...@foss.st.com; git > (AMD-Xilinx) <g...@amd.com> > Subject: Re: [PATCH v9 1/7] usb: onboard-hub: Add reset-gpio support > > On 10/30/24 7:43 AM, Venkatesh Yadav Abbarapu wrote: > > As part of the reset, sets the direction of the pin to output before > > toggling the pin. Delay of millisecond is added in between low and > > high to meet the setup and hold time requirement of the reset. > > > > Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbar...@amd.com> > > Reviewed-by: Marek Vasut <ma...@denx.de> > > --- > > common/usb_onboard_hub.c | 42 > +++++++++++++++++++++++++++++++++++++++- > > 1 file changed, 41 insertions(+), 1 deletion(-) > > > > diff --git a/common/usb_onboard_hub.c b/common/usb_onboard_hub.c index > > 68a04ac041..4174575893 100644 > > --- a/common/usb_onboard_hub.c > > +++ b/common/usb_onboard_hub.c > > @@ -7,14 +7,51 @@ > > * Mostly inspired by Linux kernel v6.1 onboard_usb_hub driver > > */ > > > > +#include <asm/gpio.h> > > #include <dm.h> > > #include <dm/device_compat.h> > > +#include <linux/delay.h> > > #include <power/regulator.h> > > > > struct onboard_hub { > > struct udevice *vdd; > > + struct gpio_desc *reset_gpio; > > }; > > > > +struct onboard_hub_data { > > + unsigned long reset_us; > > + unsigned long power_on_delay_us; > > +}; > > + > > +int usb_onboard_hub_reset(struct udevice *dev) { > > + struct onboard_hub_data *data = > > + (struct onboard_hub_data *)dev_get_driver_data(dev); > > + struct onboard_hub *hub = dev_get_priv(dev); > > + int ret; > > + > > + hub->reset_gpio = devm_gpiod_get_optional(dev, "reset", > > + GPIOD_IS_OUT | > GPIOD_ACTIVE_LOW); > Is the reset GPIO always active low or should this respect the GPIO flags in > DT > instead ? Yes...the reset GPIO is always active low.
Thanks Venkatesh