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