linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] MIPS: BCM47XX: Enable USB power on Netgear WNDR3400v3
@ 2018-08-19 19:20 Tuomas Tynkkynen
  2018-08-25 14:26 ` Hauke Mehrtens
  2018-08-29 22:15 ` Paul Burton
  0 siblings, 2 replies; 3+ messages in thread
From: Tuomas Tynkkynen @ 2018-08-19 19:20 UTC (permalink / raw)
  To: Hauke Mehrtens, Rafał Miłecki
  Cc: linux-mips, linux-kernel, Tuomas Tynkkynen

Setting GPIO 21 high seems to be required to enable power to USB ports
on the WNDR3400v3. As there is already similar code for WNR3500L,
make the existing USB power GPIO code generic and use that.

Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
---
 arch/mips/bcm47xx/workarounds.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/arch/mips/bcm47xx/workarounds.c b/arch/mips/bcm47xx/workarounds.c
index 1a8a07e7a563..46eddbec8d9f 100644
--- a/arch/mips/bcm47xx/workarounds.c
+++ b/arch/mips/bcm47xx/workarounds.c
@@ -5,9 +5,8 @@
 #include <bcm47xx_board.h>
 #include <bcm47xx.h>
 
-static void __init bcm47xx_workarounds_netgear_wnr3500l(void)
+static void __init bcm47xx_workarounds_enable_usb_power(int usb_power)
 {
-	const int usb_power = 12;
 	int err;
 
 	err = gpio_request_one(usb_power, GPIOF_OUT_INIT_HIGH, "usb_power");
@@ -23,7 +22,10 @@ void __init bcm47xx_workarounds(void)
 
 	switch (board) {
 	case BCM47XX_BOARD_NETGEAR_WNR3500L:
-		bcm47xx_workarounds_netgear_wnr3500l();
+		bcm47xx_workarounds_enable_usb_power(12);
+		break;
+	case BCM47XX_BOARD_NETGEAR_WNDR3400_V3:
+		bcm47xx_workarounds_enable_usb_power(21);
 		break;
 	default:
 		/* No workaround(s) needed */
-- 
2.16.3


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] MIPS: BCM47XX: Enable USB power on Netgear WNDR3400v3
  2018-08-19 19:20 [PATCH] MIPS: BCM47XX: Enable USB power on Netgear WNDR3400v3 Tuomas Tynkkynen
@ 2018-08-25 14:26 ` Hauke Mehrtens
  2018-08-29 22:15 ` Paul Burton
  1 sibling, 0 replies; 3+ messages in thread
From: Hauke Mehrtens @ 2018-08-25 14:26 UTC (permalink / raw)
  To: Tuomas Tynkkynen, Rafał Miłecki; +Cc: linux-mips, linux-kernel



On 08/19/2018 09:20 PM, Tuomas Tynkkynen wrote:
> Setting GPIO 21 high seems to be required to enable power to USB ports
> on the WNDR3400v3. As there is already similar code for WNR3500L,
> make the existing USB power GPIO code generic and use that.
> 
> Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>

I didn't runtime tested this and didn't checked the board, but this
looks good.

Acked-by: Hauke Mehrtens <hauke@hauke-m.de>

> ---
>  arch/mips/bcm47xx/workarounds.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/mips/bcm47xx/workarounds.c b/arch/mips/bcm47xx/workarounds.c
> index 1a8a07e7a563..46eddbec8d9f 100644
> --- a/arch/mips/bcm47xx/workarounds.c
> +++ b/arch/mips/bcm47xx/workarounds.c
> @@ -5,9 +5,8 @@
>  #include <bcm47xx_board.h>
>  #include <bcm47xx.h>
>  
> -static void __init bcm47xx_workarounds_netgear_wnr3500l(void)
> +static void __init bcm47xx_workarounds_enable_usb_power(int usb_power)
>  {
> -	const int usb_power = 12;
>  	int err;
>  
>  	err = gpio_request_one(usb_power, GPIOF_OUT_INIT_HIGH, "usb_power");
> @@ -23,7 +22,10 @@ void __init bcm47xx_workarounds(void)
>  
>  	switch (board) {
>  	case BCM47XX_BOARD_NETGEAR_WNR3500L:
> -		bcm47xx_workarounds_netgear_wnr3500l();
> +		bcm47xx_workarounds_enable_usb_power(12);
> +		break;
> +	case BCM47XX_BOARD_NETGEAR_WNDR3400_V3:
> +		bcm47xx_workarounds_enable_usb_power(21);
>  		break;
>  	default:
>  		/* No workaround(s) needed */
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] MIPS: BCM47XX: Enable USB power on Netgear WNDR3400v3
  2018-08-19 19:20 [PATCH] MIPS: BCM47XX: Enable USB power on Netgear WNDR3400v3 Tuomas Tynkkynen
  2018-08-25 14:26 ` Hauke Mehrtens
@ 2018-08-29 22:15 ` Paul Burton
  1 sibling, 0 replies; 3+ messages in thread
From: Paul Burton @ 2018-08-29 22:15 UTC (permalink / raw)
  To: Tuomas Tynkkynen
  Cc: Hauke Mehrtens, Rafał Miłecki, linux-mips, linux-kernel

Hi Tuomas,

On Sun, Aug 19, 2018 at 10:20:23PM +0300, Tuomas Tynkkynen wrote:
> Setting GPIO 21 high seems to be required to enable power to USB ports
> on the WNDR3400v3. As there is already similar code for WNR3500L,
> make the existing USB power GPIO code generic and use that.
> 
> Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
> ---
>  arch/mips/bcm47xx/workarounds.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)

It'd be nice to see this stuff move towards DT, and configuring a GPIO
to enable power doesn't seem so much a workaround as a normal expected
part of operation.

But I've applied this to mips-next for 4.20 since it doesn't really make
things any worse for now...

Thanks,
    Paul

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-08-29 22:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-19 19:20 [PATCH] MIPS: BCM47XX: Enable USB power on Netgear WNDR3400v3 Tuomas Tynkkynen
2018-08-25 14:26 ` Hauke Mehrtens
2018-08-29 22:15 ` Paul Burton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).