Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ecd1b171 authored by Ben Dooks's avatar Ben Dooks Committed by Russell King
Browse files

[ARM] 4175/1: SMDK2413: add udc pull-up control



USB gadget pull-up control and device addition
for the SMDK2413/SMDK2412 board.

Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 71a9c424
Loading
Loading
Loading
Loading
+40 −1
Original line number Original line Diff line number Diff line
@@ -37,6 +37,7 @@
#include <asm/arch/regs-lcd.h>
#include <asm/arch/regs-lcd.h>


#include <asm/arch/idle.h>
#include <asm/arch/idle.h>
#include <asm/arch/udc.h>
#include <asm/arch/fb.h>
#include <asm/arch/fb.h>


#include <asm/plat-s3c24xx/s3c2410.h>
#include <asm/plat-s3c24xx/s3c2410.h>
@@ -75,12 +76,38 @@ 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 :
			s3c2410_gpio_setpin(S3C2410_GPF2, 1);
			break;
		case S3C2410_UDC_P_DISABLE :
			s3c2410_gpio_setpin(S3C2410_GPF2, 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,
};


static struct platform_device *smdk2413_devices[] __initdata = {
static struct platform_device *smdk2413_devices[] __initdata = {
	&s3c_device_usb,
	&s3c_device_usb,
	//&s3c_device_lcd,
	//&s3c_device_lcd,
	&s3c_device_wdt,
	&s3c_device_wdt,
	&s3c_device_i2c,
	&s3c_device_i2c,
	&s3c_device_iis,
	&s3c_device_iis,
	&s3c_device_usbgadget,
};
};


static struct s3c24xx_board smdk2413_board __initdata = {
static struct s3c24xx_board smdk2413_board __initdata = {
@@ -109,7 +136,19 @@ static void __init smdk2413_map_io(void)
}
}


static void __init smdk2413_machine_init(void)
static void __init smdk2413_machine_init(void)
{
{	/* Turn off suspend on both USB ports, and switch the
	 * selectable USB port to USB device mode. */

	s3c2410_gpio_setpin(S3C2410_GPF2, 0);
	s3c2410_gpio_cfgpin(S3C2410_GPF2, S3C2410_GPIO_OUTPUT);

	s3c2410_modify_misccr(S3C2410_MISCCR_USBHOST |
			      S3C2410_MISCCR_USBSUSPND0 |
			      S3C2410_MISCCR_USBSUSPND1, 0x0);


 	s3c24xx_udc_set_platdata(&smdk2413_udc_cfg);

	smdk_machine_init();
	smdk_machine_init();
}
}