| From ac96c1e153d2bd41b90589c41331c0482536163d Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sun, 19 Aug 2018 22:20:23 +0300 |
| Subject: MIPS: BCM47XX: Enable USB power on Netgear WNDR3400v3 |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi> |
| |
| [ Upstream commit feef7918667b84f9d5653c501542dd8d84ae32af ] |
| |
| 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> |
| Acked-by: Hauke Mehrtens <hauke@hauke-m.de> |
| Signed-off-by: Paul Burton <paul.burton@mips.com> |
| Patchwork: https://patchwork.linux-mips.org/patch/20259/ |
| Cc: Rafał Miłecki <zajec5@gmail.com> |
| Cc: linux-mips@linux-mips.org |
| Cc: linux-kernel@vger.kernel.org |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| 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 1a8a07e7a5633..46eddbec8d9fd 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.20.1 |
| |