--- a/arch/mips/ath79/dev-usb.c +++ b/arch/mips/ath79/dev-usb.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -282,3 +283,26 @@ void __init ath79_register_usb(void) else BUG(); } + +void __init ath79_set_usb_power_gpio(unsigned int gpio, unsigned long flags, + const char *label) +{ + int err; + + err = gpio_request_one(gpio, flags, label); + if (err) { + pr_err("ath79: can't setup GPIO%u (%s), err=%d\n", + gpio, label, err); + return; + } + + err = gpio_export(gpio, false); + if (err) { + pr_err("ath79: can't export GPIO%u (%s), err=%d\n", + gpio, label, err); + } + + return; +} + + --- a/arch/mips/ath79/dev-usb.h +++ b/arch/mips/ath79/dev-usb.h @@ -13,5 +13,7 @@ #define _ATH79_DEV_USB_H void ath79_register_usb(void); +void ath79_set_usb_power_gpio(unsigned int gpio, unsigned long flags, + const char *label); #endif /* _ATH79_DEV_USB_H */