root/arch/mips/bcm47xx/workarounds.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. bcm47xx_workarounds_enable_usb_power
  2. bcm47xx_workarounds

   1 // SPDX-License-Identifier: GPL-2.0
   2 #include "bcm47xx_private.h"
   3 
   4 #include <linux/gpio.h>
   5 #include <bcm47xx_board.h>
   6 #include <bcm47xx.h>
   7 
   8 static void __init bcm47xx_workarounds_enable_usb_power(int usb_power)
   9 {
  10         int err;
  11 
  12         err = gpio_request_one(usb_power, GPIOF_OUT_INIT_HIGH, "usb_power");
  13         if (err)
  14                 pr_err("Failed to request USB power gpio: %d\n", err);
  15         else
  16                 gpio_free(usb_power);
  17 }
  18 
  19 void __init bcm47xx_workarounds(void)
  20 {
  21         enum bcm47xx_board board = bcm47xx_board_get();
  22 
  23         switch (board) {
  24         case BCM47XX_BOARD_NETGEAR_WNR3500L:
  25                 bcm47xx_workarounds_enable_usb_power(12);
  26                 break;
  27         case BCM47XX_BOARD_NETGEAR_WNDR3400V2:
  28         case BCM47XX_BOARD_NETGEAR_WNDR3400_V3:
  29                 bcm47xx_workarounds_enable_usb_power(21);
  30                 break;
  31         default:
  32                 /* No workaround(s) needed */
  33                 break;
  34         }
  35 }

/* [<][>][^][v][top][bottom][index][help] */