workarounds.c 664 B

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