ARM: s3c24xx: Switch to common GPIO controlled UDC pullup implementation
Currently all boards using the s3c2410_udc driver use a GPIO to control the state of the pullup, as a result the same code is reimplemented in each board This patch changes these boards to use the common implementation for GPIO controlled pullup in the UDC driver. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Vasily Khoruzhick <anarsoul@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
a74022a55e
commit
e27c3c5c7e
|
@ -162,29 +162,10 @@ struct gpio_chip h1940_latch_gpiochip = {
|
|||
.get = h1940_gpiolib_latch_get,
|
||||
};
|
||||
|
||||
static void h1940_udc_pullup(enum s3c2410_udc_cmd_e cmd)
|
||||
{
|
||||
printk(KERN_DEBUG "udc: pullup(%d)\n",cmd);
|
||||
|
||||
switch (cmd)
|
||||
{
|
||||
case S3C2410_UDC_P_ENABLE :
|
||||
gpio_set_value(H1940_LATCH_USB_DP, 1);
|
||||
break;
|
||||
case S3C2410_UDC_P_DISABLE :
|
||||
gpio_set_value(H1940_LATCH_USB_DP, 0);
|
||||
break;
|
||||
case S3C2410_UDC_P_RESET :
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static struct s3c2410_udc_mach_info h1940_udc_cfg __initdata = {
|
||||
.udc_command = h1940_udc_pullup,
|
||||
.vbus_pin = S3C2410_GPG(5),
|
||||
.vbus_pin_inverted = 1,
|
||||
.pullup_pin = H1940_LATCH_USB_DP,
|
||||
};
|
||||
|
||||
static struct s3c2410_ts_mach_info h1940_ts_cfg __initdata = {
|
||||
|
@ -475,9 +456,6 @@ static void __init h1940_init(void)
|
|||
gpio_direction_output(H1940_LATCH_LCD_P4, 0);
|
||||
gpio_direction_output(H1940_LATCH_MAX1698_nSHUTDOWN, 0);
|
||||
|
||||
gpio_request(H1940_LATCH_USB_DP, "USB pullup");
|
||||
gpio_direction_output(H1940_LATCH_USB_DP, 0);
|
||||
|
||||
gpio_request(H1940_LATCH_SD_POWER, "SD power");
|
||||
gpio_direction_output(H1940_LATCH_SD_POWER, 0);
|
||||
|
||||
|
|
|
@ -84,26 +84,10 @@ static struct s3c2410_uartcfg n30_uartcfgs[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static void n30_udc_pullup(enum s3c2410_udc_cmd_e cmd)
|
||||
{
|
||||
switch (cmd) {
|
||||
case S3C2410_UDC_P_ENABLE :
|
||||
gpio_set_value(S3C2410_GPB(3), 1);
|
||||
break;
|
||||
case S3C2410_UDC_P_DISABLE :
|
||||
gpio_set_value(S3C2410_GPB(3), 0);
|
||||
break;
|
||||
case S3C2410_UDC_P_RESET :
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static struct s3c2410_udc_mach_info n30_udc_cfg __initdata = {
|
||||
.udc_command = n30_udc_pullup,
|
||||
.vbus_pin = S3C2410_GPG(1),
|
||||
.vbus_pin_inverted = 0,
|
||||
.pullup_pin = S3C2410_GPB(3),
|
||||
};
|
||||
|
||||
static struct gpio_keys_button n30_buttons[] = {
|
||||
|
@ -596,9 +580,6 @@ static void __init n30_init(void)
|
|||
|
||||
platform_add_devices(n35_devices, ARRAY_SIZE(n35_devices));
|
||||
}
|
||||
|
||||
WARN_ON(gpio_request(S3C2410_GPB(3), "udc pup"));
|
||||
gpio_direction_output(S3C2410_GPB(3), 0);
|
||||
}
|
||||
|
||||
MACHINE_START(N30, "Acer-N30")
|
||||
|
|
|
@ -78,28 +78,9 @@ static struct s3c2410_uartcfg smdk2413_uartcfgs[] __initdata = {
|
|||
}
|
||||
};
|
||||
|
||||
static void smdk2413_udc_pullup(enum s3c2410_udc_cmd_e cmd)
|
||||
{
|
||||
printk(KERN_DEBUG "udc: pullup(%d)\n",cmd);
|
||||
|
||||
switch (cmd)
|
||||
{
|
||||
case S3C2410_UDC_P_ENABLE :
|
||||
gpio_set_value(S3C2410_GPF(2), 1);
|
||||
break;
|
||||
case S3C2410_UDC_P_DISABLE :
|
||||
gpio_set_value(S3C2410_GPF(2), 0);
|
||||
break;
|
||||
case S3C2410_UDC_P_RESET :
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static struct s3c2410_udc_mach_info smdk2413_udc_cfg __initdata = {
|
||||
.udc_command = smdk2413_udc_pullup,
|
||||
.pullup_pin = S3C2410_GPF(2),
|
||||
};
|
||||
|
||||
|
||||
|
@ -133,9 +114,6 @@ static void __init smdk2413_machine_init(void)
|
|||
{ /* Turn off suspend on both USB ports, and switch the
|
||||
* selectable USB port to USB device mode. */
|
||||
|
||||
WARN_ON(gpio_request(S3C2410_GPF(2), "udc pull"));
|
||||
gpio_direction_output(S3C2410_GPF(2), 0);
|
||||
|
||||
s3c2410_modify_misccr(S3C2410_MISCCR_USBHOST |
|
||||
S3C2410_MISCCR_USBSUSPND0 |
|
||||
S3C2410_MISCCR_USBSUSPND1, 0x0);
|
||||
|
|
|
@ -455,28 +455,10 @@ static struct s3c2410_platform_nand __initdata gta02_nand_info = {
|
|||
};
|
||||
|
||||
|
||||
static void gta02_udc_command(enum s3c2410_udc_cmd_e cmd)
|
||||
{
|
||||
switch (cmd) {
|
||||
case S3C2410_UDC_P_ENABLE:
|
||||
pr_debug("%s S3C2410_UDC_P_ENABLE\n", __func__);
|
||||
gpio_direction_output(GTA02_GPIO_USB_PULLUP, 1);
|
||||
break;
|
||||
case S3C2410_UDC_P_DISABLE:
|
||||
pr_debug("%s S3C2410_UDC_P_DISABLE\n", __func__);
|
||||
gpio_direction_output(GTA02_GPIO_USB_PULLUP, 0);
|
||||
break;
|
||||
case S3C2410_UDC_P_RESET:
|
||||
pr_debug("%s S3C2410_UDC_P_RESET\n", __func__);
|
||||
/* FIXME: Do something here. */
|
||||
}
|
||||
}
|
||||
|
||||
/* Get PMU to set USB current limit accordingly. */
|
||||
static struct s3c2410_udc_mach_info gta02_udc_cfg = {
|
||||
static struct s3c2410_udc_mach_info gta02_udc_cfg __initdata = {
|
||||
.vbus_draw = gta02_udc_vbus_draw,
|
||||
.udc_command = gta02_udc_command,
|
||||
|
||||
.pullup_pin = GTA02_GPIO_USB_PULLUP,
|
||||
};
|
||||
|
||||
/* USB */
|
||||
|
|
|
@ -97,26 +97,8 @@ static struct s3c2410_uartcfg mini2440_uartcfgs[] __initdata = {
|
|||
|
||||
/* USB device UDC support */
|
||||
|
||||
static void mini2440_udc_pullup(enum s3c2410_udc_cmd_e cmd)
|
||||
{
|
||||
pr_debug("udc: pullup(%d)\n", cmd);
|
||||
|
||||
switch (cmd) {
|
||||
case S3C2410_UDC_P_ENABLE :
|
||||
gpio_set_value(S3C2410_GPC(5), 1);
|
||||
break;
|
||||
case S3C2410_UDC_P_DISABLE :
|
||||
gpio_set_value(S3C2410_GPC(5), 0);
|
||||
break;
|
||||
case S3C2410_UDC_P_RESET :
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static struct s3c2410_udc_mach_info mini2440_udc_cfg __initdata = {
|
||||
.udc_command = mini2440_udc_pullup,
|
||||
.pullup_pin = S3C2410_GPC(5),
|
||||
};
|
||||
|
||||
|
||||
|
@ -644,10 +626,6 @@ static void __init mini2440_init(void)
|
|||
s3c2410_gpio_setpin(S3C2410_GPB(1), 0);
|
||||
s3c_gpio_cfgpin(S3C2410_GPB(1), S3C2410_GPIO_INPUT);
|
||||
|
||||
/* Make sure the D+ pullup pin is output */
|
||||
WARN_ON(gpio_request(S3C2410_GPC(5), "udc pup"));
|
||||
gpio_direction_output(S3C2410_GPC(5), 0);
|
||||
|
||||
/* mark the key as input, without pullups (there is one on the board) */
|
||||
for (i = 0; i < ARRAY_SIZE(mini2440_buttons); i++) {
|
||||
s3c_gpio_setpull(mini2440_buttons[i].gpio, S3C_GPIO_PULL_UP);
|
||||
|
|
|
@ -566,26 +566,10 @@ static struct s3c2410_platform_nand rx1950_nand_info = {
|
|||
.sets = rx1950_nand_sets,
|
||||
};
|
||||
|
||||
static void rx1950_udc_pullup(enum s3c2410_udc_cmd_e cmd)
|
||||
{
|
||||
switch (cmd) {
|
||||
case S3C2410_UDC_P_ENABLE:
|
||||
gpio_direction_output(S3C2410_GPJ(5), 1);
|
||||
break;
|
||||
case S3C2410_UDC_P_DISABLE:
|
||||
gpio_direction_output(S3C2410_GPJ(5), 0);
|
||||
break;
|
||||
case S3C2410_UDC_P_RESET:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static struct s3c2410_udc_mach_info rx1950_udc_cfg __initdata = {
|
||||
.udc_command = rx1950_udc_pullup,
|
||||
.vbus_pin = S3C2410_GPG(5),
|
||||
.vbus_pin_inverted = 1,
|
||||
.pullup_pin = S3C2410_GPJ(5),
|
||||
};
|
||||
|
||||
static struct s3c2410_ts_mach_info rx1950_ts_cfg __initdata = {
|
||||
|
@ -750,9 +734,6 @@ static void __init rx1950_init_machine(void)
|
|||
S3C2410_MISCCR_USBSUSPND0 |
|
||||
S3C2410_MISCCR_USBSUSPND1, 0x0);
|
||||
|
||||
WARN_ON(gpio_request(S3C2410_GPJ(5), "UDC pullup"));
|
||||
gpio_direction_output(S3C2410_GPJ(5), 0);
|
||||
|
||||
/* mmc power is disabled by default */
|
||||
WARN_ON(gpio_request(S3C2410_GPJ(1), "MMC power"));
|
||||
gpio_direction_output(S3C2410_GPJ(1), 0);
|
||||
|
|
Loading…
Reference in New Issue
Block a user