1d11135ca4f6e626e1c8aa78de6d472a11a9e9811Kukjin Kim/* linux/arch/arm/mach-exynos4/mach-smdkv310.c 2b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn * 3d11135ca4f6e626e1c8aa78de6d472a11a9e9811Kukjin Kim * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. 4d11135ca4f6e626e1c8aa78de6d472a11a9e9811Kukjin Kim * http://www.samsung.com 5b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn * 6b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn * This program is free software; you can redistribute it and/or modify 7b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn * it under the terms of the GNU General Public License version 2 as 8b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn * published by the Free Software Foundation. 9b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn*/ 10b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn 11b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn#include <linux/serial_core.h> 1242c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim#include <linux/delay.h> 132b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee#include <linux/gpio.h> 1442c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim#include <linux/lcd.h> 152b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee#include <linux/mmc/host.h> 162b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee#include <linux/platform_device.h> 17cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon#include <linux/smsc911x.h> 18cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon#include <linux/io.h> 196f5c11c5a5ec9aef67b433906c712608ef7b9b97Jassi Brar#include <linux/i2c.h> 20be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch#include <linux/input.h> 218689de73a805781ddfb1b26df28ca127a548d235Banajit Goswami#include <linux/pwm_backlight.h> 22b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn 23b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn#include <asm/mach/arch.h> 244e44d2cb95bd93abe16a131dbcd4c052ae36665fMarc Zyngier#include <asm/hardware/gic.h> 25b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn#include <asm/mach-types.h> 26b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn 2742c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim#include <video/platform_lcd.h> 28b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn#include <plat/regs-serial.h> 298cf460a5d7c12e16ba29d0e4940df4657a7439ccKukjin Kim#include <plat/regs-srom.h> 3042c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim#include <plat/regs-fb-v4.h> 31b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn#include <plat/cpu.h> 32cdff6e6fd2d4360e2d5bc39afe3f1ef17d79dbf0Changhwan Youn#include <plat/devs.h> 3342c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim#include <plat/fb.h> 34be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch#include <plat/keypad.h> 352b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee#include <plat/sdhci.h> 366f5c11c5a5ec9aef67b433906c712608ef7b9b97Jassi Brar#include <plat/iic.h> 37d6d8b481999507a20012b7ee924bdaf5bfb52a05Changhwan Youn#include <plat/pd.h> 388689de73a805781ddfb1b26df28ca127a548d235Banajit Goswami#include <plat/gpio-cfg.h> 398689de73a805781ddfb1b26df28ca127a548d235Banajit Goswami#include <plat/backlight.h> 4095727e1fa18432eafcd0e9ba50c58f40d3ae0ceaSachin Kamat#include <plat/mfc.h> 419830f6a20d841acc36bd9ee275aa4586dd713749Jingoo Han#include <plat/ehci.h> 429830f6a20d841acc36bd9ee275aa4586dd713749Jingoo Han#include <plat/clock.h> 43b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn 44b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn#include <mach/map.h> 45744f20f28028447cc4486d5ba0a6955840028e37Jingoo Han#include <mach/ohci.h> 46b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn 47cc511b8d84d88ab788cddbfe8d21485b1c387493Kukjin Kim#include "common.h" 48cc511b8d84d88ab788cddbfe8d21485b1c387493Kukjin Kim 49b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn/* Following are default values for UCON, ULCON and UFCON UART registers */ 50b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn#define SMDKV310_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \ 51b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn S3C2410_UCON_RXILEVEL | \ 52b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn S3C2410_UCON_TXIRQMODE | \ 53b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn S3C2410_UCON_RXIRQMODE | \ 54b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn S3C2410_UCON_RXFIFO_TOI | \ 55b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn S3C2443_UCON_RXERR_IRQEN) 56b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn 57b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn#define SMDKV310_ULCON_DEFAULT S3C2410_LCON_CS8 58b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn 59b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn#define SMDKV310_UFCON_DEFAULT (S3C2410_UFCON_FIFOMODE | \ 60b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn S5PV210_UFCON_TXTRIG4 | \ 61b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn S5PV210_UFCON_RXTRIG4) 62b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn 63b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Younstatic struct s3c2410_uartcfg smdkv310_uartcfgs[] __initdata = { 64b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn [0] = { 65b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .hwport = 0, 66b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .flags = 0, 67b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .ucon = SMDKV310_UCON_DEFAULT, 68b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .ulcon = SMDKV310_ULCON_DEFAULT, 69b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .ufcon = SMDKV310_UFCON_DEFAULT, 70b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn }, 71b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn [1] = { 72b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .hwport = 1, 73b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .flags = 0, 74b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .ucon = SMDKV310_UCON_DEFAULT, 75b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .ulcon = SMDKV310_ULCON_DEFAULT, 76b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .ufcon = SMDKV310_UFCON_DEFAULT, 77b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn }, 78b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn [2] = { 79b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .hwport = 2, 80b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .flags = 0, 81b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .ucon = SMDKV310_UCON_DEFAULT, 82b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .ulcon = SMDKV310_ULCON_DEFAULT, 83b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .ufcon = SMDKV310_UFCON_DEFAULT, 84b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn }, 85b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn [3] = { 86b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .hwport = 3, 87b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .flags = 0, 88b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .ucon = SMDKV310_UCON_DEFAULT, 89b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .ulcon = SMDKV310_ULCON_DEFAULT, 90b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .ufcon = SMDKV310_UFCON_DEFAULT, 91b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn }, 92b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn}; 93b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn 942b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Leestatic struct s3c_sdhci_platdata smdkv310_hsmmc0_pdata __initdata = { 95a0d8efedb203b5b908dd46cea38201761e2380f9Thomas Abraham .cd_type = S3C_SDHCI_CD_INTERNAL, 9628c80aa707156d83f679442ea745db301316a4eaJeongbae Seo .clk_type = S3C_SDHCI_CLK_DIV_EXTERNAL, 97d11135ca4f6e626e1c8aa78de6d472a11a9e9811Kukjin Kim#ifdef CONFIG_EXYNOS4_SDHCI_CH0_8BIT 982b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee .max_width = 8, 992b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee .host_caps = MMC_CAP_8_BIT_DATA, 1002b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee#endif 1012b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee}; 1022b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee 1032b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Leestatic struct s3c_sdhci_platdata smdkv310_hsmmc1_pdata __initdata = { 1042b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee .cd_type = S3C_SDHCI_CD_GPIO, 105d11135ca4f6e626e1c8aa78de6d472a11a9e9811Kukjin Kim .ext_cd_gpio = EXYNOS4_GPK0(2), 1062b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee .ext_cd_gpio_invert = 1, 10728c80aa707156d83f679442ea745db301316a4eaJeongbae Seo .clk_type = S3C_SDHCI_CLK_DIV_EXTERNAL, 1082b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee}; 1092b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee 1102b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Leestatic struct s3c_sdhci_platdata smdkv310_hsmmc2_pdata __initdata = { 111a0d8efedb203b5b908dd46cea38201761e2380f9Thomas Abraham .cd_type = S3C_SDHCI_CD_INTERNAL, 11228c80aa707156d83f679442ea745db301316a4eaJeongbae Seo .clk_type = S3C_SDHCI_CLK_DIV_EXTERNAL, 113d11135ca4f6e626e1c8aa78de6d472a11a9e9811Kukjin Kim#ifdef CONFIG_EXYNOS4_SDHCI_CH2_8BIT 1142b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee .max_width = 8, 1152b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee .host_caps = MMC_CAP_8_BIT_DATA, 1162b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee#endif 1172b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee}; 1182b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee 1192b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Leestatic struct s3c_sdhci_platdata smdkv310_hsmmc3_pdata __initdata = { 1202b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee .cd_type = S3C_SDHCI_CD_GPIO, 121d11135ca4f6e626e1c8aa78de6d472a11a9e9811Kukjin Kim .ext_cd_gpio = EXYNOS4_GPK2(2), 1222b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee .ext_cd_gpio_invert = 1, 12328c80aa707156d83f679442ea745db301316a4eaJeongbae Seo .clk_type = S3C_SDHCI_CLK_DIV_EXTERNAL, 1242b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee}; 1252b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee 12642c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kimstatic void lcd_lte480wv_set_power(struct plat_lcd_data *pd, 12742c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim unsigned int power) 12842c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim{ 12942c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim if (power) { 13042c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim#if !defined(CONFIG_BACKLIGHT_PWM) 13142c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim gpio_request_one(EXYNOS4_GPD0(1), GPIOF_OUT_INIT_HIGH, "GPD0"); 13242c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim gpio_free(EXYNOS4_GPD0(1)); 13342c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim#endif 13442c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim /* fire nRESET on power up */ 135321655efad26e03141b0bbfcfa9875056c1acb65Jingoo Han gpio_request_one(EXYNOS4_GPX0(6), GPIOF_OUT_INIT_HIGH, "GPX0"); 13642c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim mdelay(100); 13742c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim 13842c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim gpio_set_value(EXYNOS4_GPX0(6), 0); 13942c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim mdelay(10); 14042c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim 14142c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim gpio_set_value(EXYNOS4_GPX0(6), 1); 14242c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim mdelay(10); 14342c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim 14442c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim gpio_free(EXYNOS4_GPX0(6)); 14542c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim } else { 14642c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim#if !defined(CONFIG_BACKLIGHT_PWM) 14742c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim gpio_request_one(EXYNOS4_GPD0(1), GPIOF_OUT_INIT_LOW, "GPD0"); 14842c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim gpio_free(EXYNOS4_GPD0(1)); 14942c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim#endif 15042c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim } 15142c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim} 15242c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim 15342c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kimstatic struct plat_lcd_data smdkv310_lcd_lte480wv_data = { 15442c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .set_power = lcd_lte480wv_set_power, 15542c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim}; 15642c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim 15742c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kimstatic struct platform_device smdkv310_lcd_lte480wv = { 15842c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .name = "platform-lcd", 15942c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .dev.parent = &s5p_device_fimd0.dev, 16042c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .dev.platform_data = &smdkv310_lcd_lte480wv_data, 16142c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim}; 16242c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim 16342c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kimstatic struct s3c_fb_pd_win smdkv310_fb_win0 = { 16442c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .win_mode = { 16542c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .left_margin = 13, 16642c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .right_margin = 8, 16742c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .upper_margin = 7, 16842c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .lower_margin = 5, 16942c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .hsync_len = 3, 17042c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .vsync_len = 1, 17142c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .xres = 800, 17242c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .yres = 480, 17342c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim }, 17442c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .max_bpp = 32, 17542c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .default_bpp = 24, 17642c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim}; 17742c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim 17842c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kimstatic struct s3c_fb_platdata smdkv310_lcd0_pdata __initdata = { 17942c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .win[0] = &smdkv310_fb_win0, 18042c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 18142c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 18242c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .setup_gpio = exynos4_fimd0_gpio_setup_24bpp, 18342c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim}; 18442c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim 185cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moonstatic struct resource smdkv310_smsc911x_resources[] = { 186cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon [0] = { 187d11135ca4f6e626e1c8aa78de6d472a11a9e9811Kukjin Kim .start = EXYNOS4_PA_SROM_BANK(1), 188d11135ca4f6e626e1c8aa78de6d472a11a9e9811Kukjin Kim .end = EXYNOS4_PA_SROM_BANK(1) + SZ_64K - 1, 189cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon .flags = IORESOURCE_MEM, 190cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon }, 191cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon [1] = { 192cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon .start = IRQ_EINT(5), 193cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon .end = IRQ_EINT(5), 194cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon .flags = IORESOURCE_IRQ | IRQF_TRIGGER_LOW, 195cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon }, 196cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon}; 197cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon 198cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moonstatic struct smsc911x_platform_config smsc9215_config = { 199cd0527c25bfb1f30f6994744fb600c4a32ab5a4fJeongtae Park .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, 200cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon .irq_type = SMSC911X_IRQ_TYPE_PUSH_PULL, 201cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon .flags = SMSC911X_USE_16BIT | SMSC911X_FORCE_INTERNAL_PHY, 202cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon .phy_interface = PHY_INTERFACE_MODE_MII, 203cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon .mac = {0x00, 0x80, 0x00, 0x23, 0x45, 0x67}, 204cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon}; 205cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon 206cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moonstatic struct platform_device smdkv310_smsc911x = { 207cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon .name = "smsc911x", 208cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon .id = -1, 209cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon .num_resources = ARRAY_SIZE(smdkv310_smsc911x_resources), 210cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon .resource = smdkv310_smsc911x_resources, 211cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon .dev = { 212cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon .platform_data = &smsc9215_config, 213cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon }, 214cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon}; 215cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon 216be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Chstatic uint32_t smdkv310_keymap[] __initdata = { 217be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch /* KEY(row, col, keycode) */ 218be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch KEY(0, 3, KEY_1), KEY(0, 4, KEY_2), KEY(0, 5, KEY_3), 219be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch KEY(0, 6, KEY_4), KEY(0, 7, KEY_5), 220be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch KEY(1, 3, KEY_A), KEY(1, 4, KEY_B), KEY(1, 5, KEY_C), 221be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch KEY(1, 6, KEY_D), KEY(1, 7, KEY_E) 222be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch}; 223be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch 224be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Chstatic struct matrix_keymap_data smdkv310_keymap_data __initdata = { 225be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch .keymap = smdkv310_keymap, 226be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch .keymap_size = ARRAY_SIZE(smdkv310_keymap), 227be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch}; 228be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch 229be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Chstatic struct samsung_keypad_platdata smdkv310_keypad_data __initdata = { 230be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch .keymap_data = &smdkv310_keymap_data, 231be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch .rows = 2, 232be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch .cols = 8, 233be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch}; 234be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch 2356f5c11c5a5ec9aef67b433906c712608ef7b9b97Jassi Brarstatic struct i2c_board_info i2c_devs1[] __initdata = { 2366f5c11c5a5ec9aef67b433906c712608ef7b9b97Jassi Brar {I2C_BOARD_INFO("wm8994", 0x1a),}, 2376f5c11c5a5ec9aef67b433906c712608ef7b9b97Jassi Brar}; 2386f5c11c5a5ec9aef67b433906c712608ef7b9b97Jassi Brar 2399830f6a20d841acc36bd9ee275aa4586dd713749Jingoo Han/* USB EHCI */ 2409830f6a20d841acc36bd9ee275aa4586dd713749Jingoo Hanstatic struct s5p_ehci_platdata smdkv310_ehci_pdata; 2419830f6a20d841acc36bd9ee275aa4586dd713749Jingoo Han 2429830f6a20d841acc36bd9ee275aa4586dd713749Jingoo Hanstatic void __init smdkv310_ehci_init(void) 2439830f6a20d841acc36bd9ee275aa4586dd713749Jingoo Han{ 2449830f6a20d841acc36bd9ee275aa4586dd713749Jingoo Han struct s5p_ehci_platdata *pdata = &smdkv310_ehci_pdata; 2459830f6a20d841acc36bd9ee275aa4586dd713749Jingoo Han 2469830f6a20d841acc36bd9ee275aa4586dd713749Jingoo Han s5p_ehci_set_platdata(pdata); 2479830f6a20d841acc36bd9ee275aa4586dd713749Jingoo Han} 2489830f6a20d841acc36bd9ee275aa4586dd713749Jingoo Han 249744f20f28028447cc4486d5ba0a6955840028e37Jingoo Han/* USB OHCI */ 250744f20f28028447cc4486d5ba0a6955840028e37Jingoo Hanstatic struct exynos4_ohci_platdata smdkv310_ohci_pdata; 251744f20f28028447cc4486d5ba0a6955840028e37Jingoo Han 252744f20f28028447cc4486d5ba0a6955840028e37Jingoo Hanstatic void __init smdkv310_ohci_init(void) 253744f20f28028447cc4486d5ba0a6955840028e37Jingoo Han{ 254744f20f28028447cc4486d5ba0a6955840028e37Jingoo Han struct exynos4_ohci_platdata *pdata = &smdkv310_ohci_pdata; 255744f20f28028447cc4486d5ba0a6955840028e37Jingoo Han 256744f20f28028447cc4486d5ba0a6955840028e37Jingoo Han exynos4_ohci_set_platdata(pdata); 257744f20f28028447cc4486d5ba0a6955840028e37Jingoo Han} 258744f20f28028447cc4486d5ba0a6955840028e37Jingoo Han 259cdff6e6fd2d4360e2d5bc39afe3f1ef17d79dbf0Changhwan Younstatic struct platform_device *smdkv310_devices[] __initdata = { 2602b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee &s3c_device_hsmmc0, 2612b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee &s3c_device_hsmmc1, 2622b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee &s3c_device_hsmmc2, 2632b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee &s3c_device_hsmmc3, 264285dee7ff4fb4b32838694d4378f4aa938cf5b43Kukjin Kim &s3c_device_i2c1, 265c0735c85d1b9e2a1954deb3b3c8d5061f70464e5Hatim Ali &s5p_device_i2c_hdmiphy, 266cdff6e6fd2d4360e2d5bc39afe3f1ef17d79dbf0Changhwan Youn &s3c_device_rtc, 2678d75c9128a07bd1f81952a518ed818d1a3e90c96Jemings Ko &s3c_device_wdt, 2689830f6a20d841acc36bd9ee275aa4586dd713749Jingoo Han &s5p_device_ehci, 269568f0e278c6dd33dc11bd19c4ad781d1f8d86800Sachin Kamat &s5p_device_fimc0, 270568f0e278c6dd33dc11bd19c4ad781d1f8d86800Sachin Kamat &s5p_device_fimc1, 271568f0e278c6dd33dc11bd19c4ad781d1f8d86800Sachin Kamat &s5p_device_fimc2, 272568f0e278c6dd33dc11bd19c4ad781d1f8d86800Sachin Kamat &s5p_device_fimc3, 273e0d49c70dd471b24950d9059cb3ff6b7dafe9887Sachin Kamat &s5p_device_fimc_md, 274b3421f97b3d7d6993a770977ca4ceeb175de32c9Sachin Kamat &s5p_device_g2d, 2759fbe8c7a481daa94a5f87b47b0ffd54f05447e4cSachin Kamat &s5p_device_jpeg, 276d11135ca4f6e626e1c8aa78de6d472a11a9e9811Kukjin Kim &exynos4_device_ac97, 277d11135ca4f6e626e1c8aa78de6d472a11a9e9811Kukjin Kim &exynos4_device_i2s0, 278744f20f28028447cc4486d5ba0a6955840028e37Jingoo Han &exynos4_device_ohci, 279be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch &samsung_device_keypad, 28095727e1fa18432eafcd0e9ba50c58f40d3ae0ceaSachin Kamat &s5p_device_mfc, 28195727e1fa18432eafcd0e9ba50c58f40d3ae0ceaSachin Kamat &s5p_device_mfc_l, 28295727e1fa18432eafcd0e9ba50c58f40d3ae0ceaSachin Kamat &s5p_device_mfc_r, 2832ba707ac3c7708ecf0c50de4b5bddadf92f0bfccNaveen Krishna Chatradhi &exynos4_device_spdif, 284d11135ca4f6e626e1c8aa78de6d472a11a9e9811Kukjin Kim &exynos4_device_sysmmu, 285fbcb44dea89063d72a1242086f4a0c618e0d1e81Jassi Brar &samsung_asoc_dma, 2862839cc1e7e1f260afc5cf9fb6be5b6c3e9d85feaSangbeom Kim &samsung_asoc_idma, 28742c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim &s5p_device_fimd0, 28842c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim &smdkv310_lcd_lte480wv, 289fbcb44dea89063d72a1242086f4a0c618e0d1e81Jassi Brar &smdkv310_smsc911x, 2900d855f40a47213e488103fdaf74d01eb90a57f09Inderpal Singh &exynos4_device_ahci, 291c0735c85d1b9e2a1954deb3b3c8d5061f70464e5Hatim Ali &s5p_device_hdmi, 292c0735c85d1b9e2a1954deb3b3c8d5061f70464e5Hatim Ali &s5p_device_mixer, 293cdff6e6fd2d4360e2d5bc39afe3f1ef17d79dbf0Changhwan Youn}; 294cdff6e6fd2d4360e2d5bc39afe3f1ef17d79dbf0Changhwan Youn 295cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moonstatic void __init smdkv310_smsc911x_init(void) 296cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon{ 297cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon u32 cs1; 298cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon 299cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon /* configure nCS1 width to 16 bits */ 3008cf460a5d7c12e16ba29d0e4940df4657a7439ccKukjin Kim cs1 = __raw_readl(S5P_SROM_BW) & 3018cf460a5d7c12e16ba29d0e4940df4657a7439ccKukjin Kim ~(S5P_SROM_BW__CS_MASK << S5P_SROM_BW__NCS1__SHIFT); 3028cf460a5d7c12e16ba29d0e4940df4657a7439ccKukjin Kim cs1 |= ((1 << S5P_SROM_BW__DATAWIDTH__SHIFT) | 3038cf460a5d7c12e16ba29d0e4940df4657a7439ccKukjin Kim (1 << S5P_SROM_BW__WAITENABLE__SHIFT) | 3048cf460a5d7c12e16ba29d0e4940df4657a7439ccKukjin Kim (1 << S5P_SROM_BW__BYTEENABLE__SHIFT)) << 3058cf460a5d7c12e16ba29d0e4940df4657a7439ccKukjin Kim S5P_SROM_BW__NCS1__SHIFT; 3068cf460a5d7c12e16ba29d0e4940df4657a7439ccKukjin Kim __raw_writel(cs1, S5P_SROM_BW); 307cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon 308cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon /* set timing for nCS1 suitable for ethernet chip */ 3098cf460a5d7c12e16ba29d0e4940df4657a7439ccKukjin Kim __raw_writel((0x1 << S5P_SROM_BCX__PMC__SHIFT) | 3108cf460a5d7c12e16ba29d0e4940df4657a7439ccKukjin Kim (0x9 << S5P_SROM_BCX__TACP__SHIFT) | 3118cf460a5d7c12e16ba29d0e4940df4657a7439ccKukjin Kim (0xc << S5P_SROM_BCX__TCAH__SHIFT) | 3128cf460a5d7c12e16ba29d0e4940df4657a7439ccKukjin Kim (0x1 << S5P_SROM_BCX__TCOH__SHIFT) | 3138cf460a5d7c12e16ba29d0e4940df4657a7439ccKukjin Kim (0x6 << S5P_SROM_BCX__TACC__SHIFT) | 3148cf460a5d7c12e16ba29d0e4940df4657a7439ccKukjin Kim (0x1 << S5P_SROM_BCX__TCOS__SHIFT) | 3158cf460a5d7c12e16ba29d0e4940df4657a7439ccKukjin Kim (0x1 << S5P_SROM_BCX__TACS__SHIFT), S5P_SROM_BC1); 316cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon} 317cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon 3188689de73a805781ddfb1b26df28ca127a548d235Banajit Goswami/* LCD Backlight data */ 3198689de73a805781ddfb1b26df28ca127a548d235Banajit Goswamistatic struct samsung_bl_gpio_info smdkv310_bl_gpio_info = { 3208689de73a805781ddfb1b26df28ca127a548d235Banajit Goswami .no = EXYNOS4_GPD0(1), 3218689de73a805781ddfb1b26df28ca127a548d235Banajit Goswami .func = S3C_GPIO_SFN(2), 3228689de73a805781ddfb1b26df28ca127a548d235Banajit Goswami}; 3238689de73a805781ddfb1b26df28ca127a548d235Banajit Goswami 3248689de73a805781ddfb1b26df28ca127a548d235Banajit Goswamistatic struct platform_pwm_backlight_data smdkv310_bl_data = { 3258689de73a805781ddfb1b26df28ca127a548d235Banajit Goswami .pwm_id = 1, 3268689de73a805781ddfb1b26df28ca127a548d235Banajit Goswami .pwm_period_ns = 1000, 3278689de73a805781ddfb1b26df28ca127a548d235Banajit Goswami}; 3288689de73a805781ddfb1b26df28ca127a548d235Banajit Goswami 329c0735c85d1b9e2a1954deb3b3c8d5061f70464e5Hatim Alistatic void s5p_tv_setup(void) 330c0735c85d1b9e2a1954deb3b3c8d5061f70464e5Hatim Ali{ 331c0735c85d1b9e2a1954deb3b3c8d5061f70464e5Hatim Ali /* direct HPD to HDMI chip */ 332c0735c85d1b9e2a1954deb3b3c8d5061f70464e5Hatim Ali WARN_ON(gpio_request_one(EXYNOS4_GPX3(7), GPIOF_IN, "hpd-plug")); 333c0735c85d1b9e2a1954deb3b3c8d5061f70464e5Hatim Ali s3c_gpio_cfgpin(EXYNOS4_GPX3(7), S3C_GPIO_SFN(0x3)); 334c0735c85d1b9e2a1954deb3b3c8d5061f70464e5Hatim Ali s3c_gpio_setpull(EXYNOS4_GPX3(7), S3C_GPIO_PULL_NONE); 335c0735c85d1b9e2a1954deb3b3c8d5061f70464e5Hatim Ali} 336c0735c85d1b9e2a1954deb3b3c8d5061f70464e5Hatim Ali 337b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Younstatic void __init smdkv310_map_io(void) 338b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn{ 339cc511b8d84d88ab788cddbfe8d21485b1c387493Kukjin Kim exynos_init_io(NULL, 0); 340b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn s3c24xx_init_clocks(24000000); 341b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn s3c24xx_init_uarts(smdkv310_uartcfgs, ARRAY_SIZE(smdkv310_uartcfgs)); 342b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn} 343b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn 34495727e1fa18432eafcd0e9ba50c58f40d3ae0ceaSachin Kamatstatic void __init smdkv310_reserve(void) 34595727e1fa18432eafcd0e9ba50c58f40d3ae0ceaSachin Kamat{ 34695727e1fa18432eafcd0e9ba50c58f40d3ae0ceaSachin Kamat s5p_mfc_reserve_mem(0x43000000, 8 << 20, 0x51000000, 8 << 20); 34795727e1fa18432eafcd0e9ba50c58f40d3ae0ceaSachin Kamat} 34895727e1fa18432eafcd0e9ba50c58f40d3ae0ceaSachin Kamat 349b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Younstatic void __init smdkv310_machine_init(void) 350b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn{ 3516f5c11c5a5ec9aef67b433906c712608ef7b9b97Jassi Brar s3c_i2c1_set_platdata(NULL); 3526f5c11c5a5ec9aef67b433906c712608ef7b9b97Jassi Brar i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1)); 3536f5c11c5a5ec9aef67b433906c712608ef7b9b97Jassi Brar 354cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon smdkv310_smsc911x_init(); 355cbff3eb3e6e3c618583a7435f87c1548aa12b0adDaein Moon 3562b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee s3c_sdhci0_set_platdata(&smdkv310_hsmmc0_pdata); 3572b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee s3c_sdhci1_set_platdata(&smdkv310_hsmmc1_pdata); 3582b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee s3c_sdhci2_set_platdata(&smdkv310_hsmmc2_pdata); 3592b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee s3c_sdhci3_set_platdata(&smdkv310_hsmmc3_pdata); 3602b11148a80bf1a022e8165ae0026bf6ff5778f03Hyuk Lee 361c0735c85d1b9e2a1954deb3b3c8d5061f70464e5Hatim Ali s5p_tv_setup(); 362c0735c85d1b9e2a1954deb3b3c8d5061f70464e5Hatim Ali s5p_i2c_hdmiphy_set_platdata(NULL); 363c0735c85d1b9e2a1954deb3b3c8d5061f70464e5Hatim Ali 364be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch samsung_keypad_set_platdata(&smdkv310_keypad_data); 365be4c33be53d85dde787c4261b18b13850cb299f1Naveen Krishna Ch 3668689de73a805781ddfb1b26df28ca127a548d235Banajit Goswami samsung_bl_set(&smdkv310_bl_gpio_info, &smdkv310_bl_data); 36742c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim s5p_fimd0_set_platdata(&smdkv310_lcd0_pdata); 3688689de73a805781ddfb1b26df28ca127a548d235Banajit Goswami 3699830f6a20d841acc36bd9ee275aa4586dd713749Jingoo Han smdkv310_ehci_init(); 370744f20f28028447cc4486d5ba0a6955840028e37Jingoo Han smdkv310_ohci_init(); 3719830f6a20d841acc36bd9ee275aa4586dd713749Jingoo Han clk_xusbxti.rate = 24000000; 3729830f6a20d841acc36bd9ee275aa4586dd713749Jingoo Han 373cdff6e6fd2d4360e2d5bc39afe3f1ef17d79dbf0Changhwan Youn platform_add_devices(smdkv310_devices, ARRAY_SIZE(smdkv310_devices)); 374b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn} 375b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn 376b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan YounMACHINE_START(SMDKV310, "SMDKV310") 377b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ 378b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn /* Maintainer: Changhwan Youn <chaos.youn@samsung.com> */ 3791abd328ee5e2e870fa035e7882e7a278127b4ccfTushar Behera .atag_offset = 0x100, 380d11135ca4f6e626e1c8aa78de6d472a11a9e9811Kukjin Kim .init_irq = exynos4_init_irq, 381b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .map_io = smdkv310_map_io, 3824e44d2cb95bd93abe16a131dbcd4c052ae36665fMarc Zyngier .handle_irq = gic_handle_irq, 383b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan Youn .init_machine = smdkv310_machine_init, 384d11135ca4f6e626e1c8aa78de6d472a11a9e9811Kukjin Kim .timer = &exynos4_timer, 38595727e1fa18432eafcd0e9ba50c58f40d3ae0ceaSachin Kamat .reserve = &smdkv310_reserve, 3869eb4859564d6e104f78abde15e7f0ca996b71236Russell King .restart = exynos4_restart, 387b1d69cc6704fc6d20a4425af9b6ced5a18620b2dChanghwan YounMACHINE_END 38842c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim 38942c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin KimMACHINE_START(SMDKC210, "SMDKC210") 39042c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ 3911abd328ee5e2e870fa035e7882e7a278127b4ccfTushar Behera .atag_offset = 0x100, 39242c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .init_irq = exynos4_init_irq, 39342c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .map_io = smdkv310_map_io, 3944e44d2cb95bd93abe16a131dbcd4c052ae36665fMarc Zyngier .handle_irq = gic_handle_irq, 39542c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .init_machine = smdkv310_machine_init, 39642c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin Kim .timer = &exynos4_timer, 3979eb4859564d6e104f78abde15e7f0ca996b71236Russell King .restart = exynos4_restart, 39842c0d26d2c32941e93ee805b32f7aebf8ba0a7d4Kukjin KimMACHINE_END 399