From: Fabio Estevam <[email protected]>

Commit 9eb0797722895f4309b4 ("sb: phy: generic: fix the gpios to be optional")
calls gpiod_direction_output() in the probe function, so there is no need to 
call it again, as we can simply call gpiod_set_value() directly.

Also, in usb_gen_phy_shutdown() we call 'nop_reset_set(nop, 1)' and in this
case we should put the GPIO directly in its active level state, so skip
the GPIO toggle and delay.

Signed-off-by: Fabio Estevam <[email protected]>
---
 drivers/usb/phy/phy-generic.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/phy/phy-generic.c b/drivers/usb/phy/phy-generic.c
index 54697a0..ceb8ac9 100644
--- a/drivers/usb/phy/phy-generic.c
+++ b/drivers/usb/phy/phy-generic.c
@@ -66,8 +66,11 @@ static void nop_reset_set(struct usb_phy_generic *nop, int 
asserted)
        if (!nop->gpiod_reset)
                return;
 
-       gpiod_direction_output(nop->gpiod_reset, !asserted);
+       if (asserted)
+               goto skip_delay;
+       gpiod_set_value(nop->gpiod_reset, !asserted);
        usleep_range(10000, 20000);
+skip_delay:
        gpiod_set_value(nop->gpiod_reset, asserted);
 }
 
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to