| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 1 | /* linux/arch/arm/mach-s5pv210/mach-smdkv210.c | 
 | 2 |  * | 
 | 3 |  * Copyright (c) 2010 Samsung Electronics Co., Ltd. | 
 | 4 |  *		http://www.samsung.com/ | 
 | 5 |  * | 
 | 6 |  * This program is free software; you can redistribute it and/or modify | 
 | 7 |  * it under the terms of the GNU General Public License version 2 as | 
 | 8 |  * published by the Free Software Foundation. | 
 | 9 | */ | 
 | 10 |  | 
 | 11 | #include <linux/kernel.h> | 
 | 12 | #include <linux/types.h> | 
| Naveen Krishna Ch | 170d741 | 2010-07-21 09:21:56 +0530 | [diff] [blame] | 13 | #include <linux/i2c.h> | 
| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 14 | #include <linux/init.h> | 
 | 15 | #include <linux/serial_core.h> | 
| Abhilash Kesavan | 9adf262 | 2010-10-08 09:07:19 +0530 | [diff] [blame] | 16 | #include <linux/sysdev.h> | 
| Thomas Abraham | 9b580cd | 2010-12-02 18:16:20 +0900 | [diff] [blame] | 17 | #include <linux/dm9000.h> | 
| Thomas Abraham | 8f49720 | 2010-11-26 13:19:49 +0900 | [diff] [blame] | 18 | #include <linux/fb.h> | 
| Thomas Abraham | 9b580cd | 2010-12-02 18:16:20 +0900 | [diff] [blame] | 19 | #include <linux/gpio.h> | 
| Thomas Abraham | 8f49720 | 2010-11-26 13:19:49 +0900 | [diff] [blame] | 20 | #include <linux/delay.h> | 
| Banajit Goswami | 5cd435b | 2011-02-28 23:02:32 +0530 | [diff] [blame] | 21 | #include <linux/pwm_backlight.h> | 
| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 22 |  | 
 | 23 | #include <asm/mach/arch.h> | 
 | 24 | #include <asm/mach/map.h> | 
 | 25 | #include <asm/setup.h> | 
 | 26 | #include <asm/mach-types.h> | 
 | 27 |  | 
| Thomas Abraham | 8f49720 | 2010-11-26 13:19:49 +0900 | [diff] [blame] | 28 | #include <video/platform_lcd.h> | 
 | 29 |  | 
| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 30 | #include <mach/map.h> | 
 | 31 | #include <mach/regs-clock.h> | 
| Thomas Abraham | 8f49720 | 2010-11-26 13:19:49 +0900 | [diff] [blame] | 32 | #include <mach/regs-fb.h> | 
| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 33 |  | 
 | 34 | #include <plat/regs-serial.h> | 
| Thomas Abraham | 9b580cd | 2010-12-02 18:16:20 +0900 | [diff] [blame] | 35 | #include <plat/regs-srom.h> | 
 | 36 | #include <plat/gpio-cfg.h> | 
| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 37 | #include <plat/s5pv210.h> | 
 | 38 | #include <plat/devs.h> | 
 | 39 | #include <plat/cpu.h> | 
| Naveen Krishna Ch | 41d8289 | 2010-05-20 11:39:54 +0900 | [diff] [blame] | 40 | #include <plat/adc.h> | 
 | 41 | #include <plat/ts.h> | 
| Abhilash Kesavan | 4b9a5ad | 2010-06-08 17:11:43 +0900 | [diff] [blame] | 42 | #include <plat/ata.h> | 
| Naveen Krishna Ch | 170d741 | 2010-07-21 09:21:56 +0530 | [diff] [blame] | 43 | #include <plat/iic.h> | 
| Naveen Krishna Ch | 88a1cc4 | 2010-06-21 16:47:16 +0900 | [diff] [blame] | 44 | #include <plat/keypad.h> | 
| Jongpill Lee | ea31fd4 | 2010-10-02 19:13:42 +0900 | [diff] [blame] | 45 | #include <plat/pm.h> | 
| Thomas Abraham | 8f49720 | 2010-11-26 13:19:49 +0900 | [diff] [blame] | 46 | #include <plat/fb.h> | 
| Banajit Goswami | 5cd435b | 2011-02-28 23:02:32 +0530 | [diff] [blame] | 47 | #include <plat/gpio-cfg.h> | 
| Sangbeom Kim | 20780fc | 2011-03-12 08:02:12 +0900 | [diff] [blame] | 48 | #include <plat/s5p-time.h> | 
| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 49 |  | 
 | 50 | /* Following are default values for UCON, ULCON and UFCON UART registers */ | 
| Kukjin Kim | c8def08 | 2010-07-21 09:19:51 +0900 | [diff] [blame] | 51 | #define SMDKV210_UCON_DEFAULT	(S3C2410_UCON_TXILEVEL |	\ | 
| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 52 | 				 S3C2410_UCON_RXILEVEL |	\ | 
 | 53 | 				 S3C2410_UCON_TXIRQMODE |	\ | 
 | 54 | 				 S3C2410_UCON_RXIRQMODE |	\ | 
 | 55 | 				 S3C2410_UCON_RXFIFO_TOI |	\ | 
 | 56 | 				 S3C2443_UCON_RXERR_IRQEN) | 
 | 57 |  | 
| Kukjin Kim | c8def08 | 2010-07-21 09:19:51 +0900 | [diff] [blame] | 58 | #define SMDKV210_ULCON_DEFAULT	S3C2410_LCON_CS8 | 
| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 59 |  | 
| Kukjin Kim | c8def08 | 2010-07-21 09:19:51 +0900 | [diff] [blame] | 60 | #define SMDKV210_UFCON_DEFAULT	(S3C2410_UFCON_FIFOMODE |	\ | 
| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 61 | 				 S5PV210_UFCON_TXTRIG4 |	\ | 
 | 62 | 				 S5PV210_UFCON_RXTRIG4) | 
 | 63 |  | 
 | 64 | static struct s3c2410_uartcfg smdkv210_uartcfgs[] __initdata = { | 
 | 65 | 	[0] = { | 
 | 66 | 		.hwport		= 0, | 
 | 67 | 		.flags		= 0, | 
| Kukjin Kim | c8def08 | 2010-07-21 09:19:51 +0900 | [diff] [blame] | 68 | 		.ucon		= SMDKV210_UCON_DEFAULT, | 
 | 69 | 		.ulcon		= SMDKV210_ULCON_DEFAULT, | 
 | 70 | 		.ufcon		= SMDKV210_UFCON_DEFAULT, | 
| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 71 | 	}, | 
 | 72 | 	[1] = { | 
 | 73 | 		.hwport		= 1, | 
 | 74 | 		.flags		= 0, | 
| Kukjin Kim | c8def08 | 2010-07-21 09:19:51 +0900 | [diff] [blame] | 75 | 		.ucon		= SMDKV210_UCON_DEFAULT, | 
 | 76 | 		.ulcon		= SMDKV210_ULCON_DEFAULT, | 
 | 77 | 		.ufcon		= SMDKV210_UFCON_DEFAULT, | 
| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 78 | 	}, | 
 | 79 | 	[2] = { | 
 | 80 | 		.hwport		= 2, | 
 | 81 | 		.flags		= 0, | 
| Kukjin Kim | c8def08 | 2010-07-21 09:19:51 +0900 | [diff] [blame] | 82 | 		.ucon		= SMDKV210_UCON_DEFAULT, | 
 | 83 | 		.ulcon		= SMDKV210_ULCON_DEFAULT, | 
 | 84 | 		.ufcon		= SMDKV210_UFCON_DEFAULT, | 
| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 85 | 	}, | 
 | 86 | 	[3] = { | 
 | 87 | 		.hwport		= 3, | 
 | 88 | 		.flags		= 0, | 
| Kukjin Kim | c8def08 | 2010-07-21 09:19:51 +0900 | [diff] [blame] | 89 | 		.ucon		= SMDKV210_UCON_DEFAULT, | 
 | 90 | 		.ulcon		= SMDKV210_ULCON_DEFAULT, | 
 | 91 | 		.ufcon		= SMDKV210_UFCON_DEFAULT, | 
| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 92 | 	}, | 
 | 93 | }; | 
 | 94 |  | 
| Abhilash Kesavan | 4b9a5ad | 2010-06-08 17:11:43 +0900 | [diff] [blame] | 95 | static struct s3c_ide_platdata smdkv210_ide_pdata __initdata = { | 
 | 96 | 	.setup_gpio	= s5pv210_ide_setup_gpio, | 
 | 97 | }; | 
 | 98 |  | 
| Naveen Krishna Ch | 88a1cc4 | 2010-06-21 16:47:16 +0900 | [diff] [blame] | 99 | static uint32_t smdkv210_keymap[] __initdata = { | 
 | 100 | 	/* KEY(row, col, keycode) */ | 
 | 101 | 	KEY(0, 3, KEY_1), KEY(0, 4, KEY_2), KEY(0, 5, KEY_3), | 
 | 102 | 	KEY(0, 6, KEY_4), KEY(0, 7, KEY_5), | 
 | 103 | 	KEY(1, 3, KEY_A), KEY(1, 4, KEY_B), KEY(1, 5, KEY_C), | 
 | 104 | 	KEY(1, 6, KEY_D), KEY(1, 7, KEY_E) | 
 | 105 | }; | 
 | 106 |  | 
 | 107 | static struct matrix_keymap_data smdkv210_keymap_data __initdata = { | 
 | 108 | 	.keymap		= smdkv210_keymap, | 
 | 109 | 	.keymap_size	= ARRAY_SIZE(smdkv210_keymap), | 
 | 110 | }; | 
 | 111 |  | 
 | 112 | static struct samsung_keypad_platdata smdkv210_keypad_data __initdata = { | 
 | 113 | 	.keymap_data	= &smdkv210_keymap_data, | 
 | 114 | 	.rows		= 8, | 
 | 115 | 	.cols		= 8, | 
 | 116 | }; | 
 | 117 |  | 
| Thomas Abraham | 9b580cd | 2010-12-02 18:16:20 +0900 | [diff] [blame] | 118 | static struct resource smdkv210_dm9000_resources[] = { | 
 | 119 | 	[0] = { | 
 | 120 | 		.start	= S5PV210_PA_SROM_BANK5, | 
 | 121 | 		.end	= S5PV210_PA_SROM_BANK5, | 
 | 122 | 		.flags	= IORESOURCE_MEM, | 
 | 123 | 	}, | 
 | 124 | 	[1] = { | 
 | 125 | 		.start	= S5PV210_PA_SROM_BANK5 + 2, | 
 | 126 | 		.end	= S5PV210_PA_SROM_BANK5 + 2, | 
 | 127 | 		.flags	= IORESOURCE_MEM, | 
 | 128 | 	}, | 
 | 129 | 	[2] = { | 
 | 130 | 		.start	= IRQ_EINT(9), | 
 | 131 | 		.end	= IRQ_EINT(9), | 
 | 132 | 		.flags	= IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, | 
 | 133 | 	}, | 
 | 134 | }; | 
 | 135 |  | 
 | 136 | static struct dm9000_plat_data smdkv210_dm9000_platdata = { | 
 | 137 | 	.flags		= DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM, | 
 | 138 | 	.dev_addr	= { 0x00, 0x09, 0xc0, 0xff, 0xec, 0x48 }, | 
 | 139 | }; | 
 | 140 |  | 
 | 141 | struct platform_device smdkv210_dm9000 = { | 
 | 142 | 	.name		= "dm9000", | 
 | 143 | 	.id		= -1, | 
 | 144 | 	.num_resources	= ARRAY_SIZE(smdkv210_dm9000_resources), | 
 | 145 | 	.resource	= smdkv210_dm9000_resources, | 
 | 146 | 	.dev		= { | 
 | 147 | 		.platform_data	= &smdkv210_dm9000_platdata, | 
 | 148 | 	}, | 
 | 149 | }; | 
 | 150 |  | 
| Thomas Abraham | 8f49720 | 2010-11-26 13:19:49 +0900 | [diff] [blame] | 151 | static void smdkv210_lte480wv_set_power(struct plat_lcd_data *pd, | 
 | 152 | 					unsigned int power) | 
 | 153 | { | 
 | 154 | 	if (power) { | 
 | 155 | #if !defined(CONFIG_BACKLIGHT_PWM) | 
 | 156 | 		gpio_request(S5PV210_GPD0(3), "GPD0"); | 
 | 157 | 		gpio_direction_output(S5PV210_GPD0(3), 1); | 
 | 158 | 		gpio_free(S5PV210_GPD0(3)); | 
 | 159 | #endif | 
 | 160 |  | 
 | 161 | 		/* fire nRESET on power up */ | 
 | 162 | 		gpio_request(S5PV210_GPH0(6), "GPH0"); | 
 | 163 |  | 
 | 164 | 		gpio_direction_output(S5PV210_GPH0(6), 1); | 
 | 165 |  | 
 | 166 | 		gpio_set_value(S5PV210_GPH0(6), 0); | 
 | 167 | 		mdelay(10); | 
 | 168 |  | 
 | 169 | 		gpio_set_value(S5PV210_GPH0(6), 1); | 
 | 170 | 		mdelay(10); | 
 | 171 |  | 
 | 172 | 		gpio_free(S5PV210_GPH0(6)); | 
 | 173 | 	} else { | 
 | 174 | #if !defined(CONFIG_BACKLIGHT_PWM) | 
 | 175 | 		gpio_request(S5PV210_GPD0(3), "GPD0"); | 
 | 176 | 		gpio_direction_output(S5PV210_GPD0(3), 0); | 
 | 177 | 		gpio_free(S5PV210_GPD0(3)); | 
 | 178 | #endif | 
 | 179 | 	} | 
 | 180 | } | 
 | 181 |  | 
 | 182 | static struct plat_lcd_data smdkv210_lcd_lte480wv_data = { | 
 | 183 | 	.set_power	= smdkv210_lte480wv_set_power, | 
 | 184 | }; | 
 | 185 |  | 
 | 186 | static struct platform_device smdkv210_lcd_lte480wv = { | 
 | 187 | 	.name			= "platform-lcd", | 
 | 188 | 	.dev.parent		= &s3c_device_fb.dev, | 
 | 189 | 	.dev.platform_data	= &smdkv210_lcd_lte480wv_data, | 
 | 190 | }; | 
 | 191 |  | 
 | 192 | static struct s3c_fb_pd_win smdkv210_fb_win0 = { | 
 | 193 | 	.win_mode = { | 
 | 194 | 		.left_margin	= 13, | 
 | 195 | 		.right_margin	= 8, | 
 | 196 | 		.upper_margin	= 7, | 
 | 197 | 		.lower_margin	= 5, | 
 | 198 | 		.hsync_len	= 3, | 
 | 199 | 		.vsync_len	= 1, | 
 | 200 | 		.xres		= 800, | 
 | 201 | 		.yres		= 480, | 
 | 202 | 	}, | 
 | 203 | 	.max_bpp	= 32, | 
 | 204 | 	.default_bpp	= 24, | 
 | 205 | }; | 
 | 206 |  | 
 | 207 | static struct s3c_fb_platdata smdkv210_lcd0_pdata __initdata = { | 
 | 208 | 	.win[0]		= &smdkv210_fb_win0, | 
 | 209 | 	.vidcon0	= VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, | 
 | 210 | 	.vidcon1	= VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, | 
 | 211 | 	.setup_gpio	= s5pv210_fb_gpio_setup_24bpp, | 
 | 212 | }; | 
 | 213 |  | 
| Banajit Goswami | 5cd435b | 2011-02-28 23:02:32 +0530 | [diff] [blame] | 214 | static int smdkv210_backlight_init(struct device *dev) | 
 | 215 | { | 
 | 216 | 	int ret; | 
 | 217 |  | 
 | 218 | 	ret = gpio_request(S5PV210_GPD0(3), "Backlight"); | 
 | 219 | 	if (ret) { | 
 | 220 | 		printk(KERN_ERR "failed to request GPD for PWM-OUT 3\n"); | 
 | 221 | 		return ret; | 
 | 222 | 	} | 
 | 223 |  | 
 | 224 | 	/* Configure GPIO pin with S5PV210_GPD_0_3_TOUT_3 */ | 
 | 225 | 	s3c_gpio_cfgpin(S5PV210_GPD0(3), S3C_GPIO_SFN(2)); | 
 | 226 |  | 
 | 227 | 	return 0; | 
 | 228 | } | 
 | 229 |  | 
 | 230 | static void smdkv210_backlight_exit(struct device *dev) | 
 | 231 | { | 
 | 232 | 	s3c_gpio_cfgpin(S5PV210_GPD0(3), S3C_GPIO_OUTPUT); | 
 | 233 | 	gpio_free(S5PV210_GPD0(3)); | 
 | 234 | } | 
 | 235 |  | 
 | 236 | static struct platform_pwm_backlight_data smdkv210_backlight_data = { | 
 | 237 | 	.pwm_id		= 3, | 
 | 238 | 	.max_brightness	= 255, | 
 | 239 | 	.dft_brightness	= 255, | 
 | 240 | 	.pwm_period_ns	= 78770, | 
 | 241 | 	.init		= smdkv210_backlight_init, | 
 | 242 | 	.exit		= smdkv210_backlight_exit, | 
 | 243 | }; | 
 | 244 |  | 
 | 245 | static struct platform_device smdkv210_backlight_device = { | 
 | 246 | 	.name		= "pwm-backlight", | 
 | 247 | 	.dev		= { | 
 | 248 | 		.parent		= &s3c_device_timer[3].dev, | 
 | 249 | 		.platform_data	= &smdkv210_backlight_data, | 
 | 250 | 	}, | 
 | 251 | }; | 
 | 252 |  | 
| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 253 | static struct platform_device *smdkv210_devices[] __initdata = { | 
| Naveen Krishna Ch | 41d8289 | 2010-05-20 11:39:54 +0900 | [diff] [blame] | 254 | 	&s3c_device_adc, | 
| Abhilash Kesavan | 4b9a5ad | 2010-06-08 17:11:43 +0900 | [diff] [blame] | 255 | 	&s3c_device_cfcon, | 
| Thomas Abraham | 8f49720 | 2010-11-26 13:19:49 +0900 | [diff] [blame] | 256 | 	&s3c_device_fb, | 
| Hyuk Lee | 976a62f | 2010-06-14 10:18:56 +0900 | [diff] [blame] | 257 | 	&s3c_device_hsmmc0, | 
 | 258 | 	&s3c_device_hsmmc1, | 
 | 259 | 	&s3c_device_hsmmc2, | 
 | 260 | 	&s3c_device_hsmmc3, | 
| Naveen Krishna Ch | 170d741 | 2010-07-21 09:21:56 +0530 | [diff] [blame] | 261 | 	&s3c_device_i2c0, | 
 | 262 | 	&s3c_device_i2c1, | 
 | 263 | 	&s3c_device_i2c2, | 
| Atul Dahiya | f580726 | 2010-07-21 17:36:02 +0900 | [diff] [blame] | 264 | 	&s3c_device_rtc, | 
| Naveen Krishna Ch | 41d8289 | 2010-05-20 11:39:54 +0900 | [diff] [blame] | 265 | 	&s3c_device_ts, | 
| Banajit Goswami | 5b7d7b2 | 2010-05-20 16:21:32 +0900 | [diff] [blame] | 266 | 	&s3c_device_wdt, | 
| Kukjin Kim | 0ae9a22 | 2010-12-30 10:52:32 +0900 | [diff] [blame] | 267 | 	&s5pv210_device_ac97, | 
 | 268 | 	&s5pv210_device_iis0, | 
 | 269 | 	&s5pv210_device_spdif, | 
| Jassi Brar | b9368f3 | 2010-12-30 09:13:23 +0900 | [diff] [blame] | 270 | 	&samsung_asoc_dma, | 
| Kukjin Kim | 0ae9a22 | 2010-12-30 10:52:32 +0900 | [diff] [blame] | 271 | 	&samsung_device_keypad, | 
| Thomas Abraham | 9b580cd | 2010-12-02 18:16:20 +0900 | [diff] [blame] | 272 | 	&smdkv210_dm9000, | 
| Thomas Abraham | 8f49720 | 2010-11-26 13:19:49 +0900 | [diff] [blame] | 273 | 	&smdkv210_lcd_lte480wv, | 
| Banajit Goswami | 5cd435b | 2011-02-28 23:02:32 +0530 | [diff] [blame] | 274 | 	&s3c_device_timer[3], | 
 | 275 | 	&smdkv210_backlight_device, | 
| Naveen Krishna Ch | 41d8289 | 2010-05-20 11:39:54 +0900 | [diff] [blame] | 276 | }; | 
 | 277 |  | 
| Thomas Abraham | 9b580cd | 2010-12-02 18:16:20 +0900 | [diff] [blame] | 278 | static void __init smdkv210_dm9000_init(void) | 
 | 279 | { | 
 | 280 | 	unsigned int tmp; | 
 | 281 |  | 
 | 282 | 	gpio_request(S5PV210_MP01(5), "nCS5"); | 
 | 283 | 	s3c_gpio_cfgpin(S5PV210_MP01(5), S3C_GPIO_SFN(2)); | 
 | 284 | 	gpio_free(S5PV210_MP01(5)); | 
 | 285 |  | 
 | 286 | 	tmp = (5 << S5P_SROM_BCX__TACC__SHIFT); | 
 | 287 | 	__raw_writel(tmp, S5P_SROM_BC5); | 
 | 288 |  | 
 | 289 | 	tmp = __raw_readl(S5P_SROM_BW); | 
 | 290 | 	tmp &= (S5P_SROM_BW__CS_MASK << S5P_SROM_BW__NCS5__SHIFT); | 
 | 291 | 	tmp |= (1 << S5P_SROM_BW__NCS5__SHIFT); | 
 | 292 | 	__raw_writel(tmp, S5P_SROM_BW); | 
 | 293 | } | 
 | 294 |  | 
| Naveen Krishna Ch | 170d741 | 2010-07-21 09:21:56 +0530 | [diff] [blame] | 295 | static struct i2c_board_info smdkv210_i2c_devs0[] __initdata = { | 
 | 296 | 	{ I2C_BOARD_INFO("24c08", 0x50), },     /* Samsung S524AD0XD1 */ | 
| Jassi Brar | d8710bc | 2010-12-21 09:48:37 +0900 | [diff] [blame] | 297 | 	{ I2C_BOARD_INFO("wm8580", 0x1b), }, | 
| Naveen Krishna Ch | 170d741 | 2010-07-21 09:21:56 +0530 | [diff] [blame] | 298 | }; | 
 | 299 |  | 
 | 300 | static struct i2c_board_info smdkv210_i2c_devs1[] __initdata = { | 
 | 301 | 	/* To Be Updated */ | 
 | 302 | }; | 
 | 303 |  | 
 | 304 | static struct i2c_board_info smdkv210_i2c_devs2[] __initdata = { | 
 | 305 | 	/* To Be Updated */ | 
 | 306 | }; | 
 | 307 |  | 
| Naveen Krishna Ch | 41d8289 | 2010-05-20 11:39:54 +0900 | [diff] [blame] | 308 | static struct s3c2410_ts_mach_info s3c_ts_platform __initdata = { | 
 | 309 | 	.delay			= 10000, | 
 | 310 | 	.presc			= 49, | 
 | 311 | 	.oversampling_shift	= 2, | 
| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 312 | }; | 
 | 313 |  | 
 | 314 | static void __init smdkv210_map_io(void) | 
 | 315 | { | 
 | 316 | 	s5p_init_io(NULL, 0, S5P_VA_CHIPID); | 
 | 317 | 	s3c24xx_init_clocks(24000000); | 
 | 318 | 	s3c24xx_init_uarts(smdkv210_uartcfgs, ARRAY_SIZE(smdkv210_uartcfgs)); | 
| Sangbeom Kim | 20780fc | 2011-03-12 08:02:12 +0900 | [diff] [blame] | 319 | 	s5p_set_timer_source(S5P_PWM2, S5P_PWM4); | 
| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 320 | } | 
 | 321 |  | 
 | 322 | static void __init smdkv210_machine_init(void) | 
 | 323 | { | 
| Jongpill Lee | ea31fd4 | 2010-10-02 19:13:42 +0900 | [diff] [blame] | 324 | 	s3c_pm_init(); | 
 | 325 |  | 
| Thomas Abraham | 9b580cd | 2010-12-02 18:16:20 +0900 | [diff] [blame] | 326 | 	smdkv210_dm9000_init(); | 
 | 327 |  | 
| Naveen Krishna Ch | 88a1cc4 | 2010-06-21 16:47:16 +0900 | [diff] [blame] | 328 | 	samsung_keypad_set_platdata(&smdkv210_keypad_data); | 
| Naveen Krishna Ch | 41d8289 | 2010-05-20 11:39:54 +0900 | [diff] [blame] | 329 | 	s3c24xx_ts_set_platdata(&s3c_ts_platform); | 
| Naveen Krishna Ch | 170d741 | 2010-07-21 09:21:56 +0530 | [diff] [blame] | 330 |  | 
 | 331 | 	s3c_i2c0_set_platdata(NULL); | 
 | 332 | 	s3c_i2c1_set_platdata(NULL); | 
 | 333 | 	s3c_i2c2_set_platdata(NULL); | 
 | 334 | 	i2c_register_board_info(0, smdkv210_i2c_devs0, | 
 | 335 | 			ARRAY_SIZE(smdkv210_i2c_devs0)); | 
 | 336 | 	i2c_register_board_info(1, smdkv210_i2c_devs1, | 
 | 337 | 			ARRAY_SIZE(smdkv210_i2c_devs1)); | 
 | 338 | 	i2c_register_board_info(2, smdkv210_i2c_devs2, | 
 | 339 | 			ARRAY_SIZE(smdkv210_i2c_devs2)); | 
 | 340 |  | 
| Abhilash Kesavan | 4b9a5ad | 2010-06-08 17:11:43 +0900 | [diff] [blame] | 341 | 	s3c_ide_set_platdata(&smdkv210_ide_pdata); | 
 | 342 |  | 
| Thomas Abraham | 8f49720 | 2010-11-26 13:19:49 +0900 | [diff] [blame] | 343 | 	s3c_fb_set_platdata(&smdkv210_lcd0_pdata); | 
 | 344 |  | 
| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 345 | 	platform_add_devices(smdkv210_devices, ARRAY_SIZE(smdkv210_devices)); | 
 | 346 | } | 
 | 347 |  | 
 | 348 | MACHINE_START(SMDKV210, "SMDKV210") | 
 | 349 | 	/* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | 
| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 350 | 	.boot_params	= S5P_PA_SDRAM + 0x100, | 
 | 351 | 	.init_irq	= s5pv210_init_irq, | 
 | 352 | 	.map_io		= smdkv210_map_io, | 
 | 353 | 	.init_machine	= smdkv210_machine_init, | 
| Sangbeom Kim | 20780fc | 2011-03-12 08:02:12 +0900 | [diff] [blame] | 354 | 	.timer		= &s5p_timer, | 
| Kukjin Kim | 9817441 | 2010-02-24 16:40:49 +0900 | [diff] [blame] | 355 | MACHINE_END |