From: Kukjin Kim Date: Fri, 6 Aug 2010 12:49:18 +0000 (+0900) Subject: Merge branch 'next-samsung' into for-next X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=d61bd77ff1e7c7a0a381c6e656dbc07b37510f37;p=linux-beck.git Merge branch 'next-samsung' into for-next Conflicts: arch/arm/mach-s5p6440/Kconfig arch/arm/mach-s5p6442/Kconfig arch/arm/mach-s5pc100/Kconfig arch/arm/mach-s5pv210/Kconfig arch/arm/mach-s5pv210/cpu.c arch/arm/plat-samsung/include/plat/sdhci.h --- d61bd77ff1e7c7a0a381c6e656dbc07b37510f37 diff --cc arch/arm/mach-s5p6440/Kconfig index 153f8c9994c8,084c0bced13c..6a4af7f57584 --- a/arch/arm/mach-s5p6440/Kconfig +++ b/arch/arm/mach-s5p6440/Kconfig @@@ -21,14 -16,9 +21,12 @@@ config S5P6440_SETUP_I2C config MACH_SMDK6440 bool "SMDK6440" select CPU_S5P6440 -- select SAMSUNG_DEV_TS -- select SAMSUNG_DEV_ADC - select S3C_DEV_RTC + select S3C_DEV_I2C1 ++ select S3C_DEV_RTC select S3C_DEV_WDT - select HAVE_S3C_RTC - select HAVE_S3C2410_WATCHDOG ++ select SAMSUNG_DEV_ADC ++ select SAMSUNG_DEV_TS + select S5P6440_SETUP_I2C1 help Machine support for the Samsung SMDK6440 diff --cc arch/arm/mach-s5pc100/Kconfig index 25ca7c686e77,0593b3fb0d4b..ab038d090764 --- a/arch/arm/mach-s5pc100/Kconfig +++ b/arch/arm/mach-s5pc100/Kconfig @@@ -49,24 -39,15 +49,22 @@@ config S5PC100_SETUP_SDHCI_GPI config MACH_SMDKC100 bool "SMDKC100" select CPU_S5PC100 - select SAMSUNG_DEV_ADC select S3C_DEV_FB -- select S3C_DEV_I2C1 - select SAMSUNG_DEV_IDE select S3C_DEV_HSMMC select S3C_DEV_HSMMC1 select S3C_DEV_HSMMC2 - select SAMSUNG_DEV_KEYPAD ++ select S3C_DEV_I2C1 + select S3C_DEV_RTC - select SAMSUNG_DEV_TS select S3C_DEV_WDT - select HAVE_S3C2410_WATCHDOG ++ select SAMSUNG_DEV_ADC ++ select SAMSUNG_DEV_IDE ++ select SAMSUNG_DEV_KEYPAD ++ select SAMSUNG_DEV_TS select S5PC100_SETUP_FB_24BPP select S5PC100_SETUP_I2C1 + select S5PC100_SETUP_IDE + select S5PC100_SETUP_KEYPAD select S5PC100_SETUP_SDHCI - select HAVE_S3C_RTC help Machine support for the Samsung SMDKC100 diff --cc arch/arm/mach-s5pc100/include/mach/map.h index c018697e79bf,abf17e8eb321..01b9134feff0 --- a/arch/arm/mach-s5pc100/include/mach/map.h +++ b/arch/arm/mach-s5pc100/include/mach/map.h @@@ -142,10 -138,9 +146,14 @@@ #define S3C_PA_ONENAND S5PC100_PA_ONENAND #define S3C_PA_ONENAND_BUF S5PC100_PA_ONENAND_BUF #define S3C_SZ_ONENAND_BUF S5PC100_SZ_ONENAND_BUF +#define S3C_PA_RTC S5PC100_PA_RTC + +#define SAMSUNG_PA_ADC S5PC100_PA_TSADC +#define SAMSUNG_PA_CFCON S5PC100_PA_CFCON +#define SAMSUNG_PA_KEYPAD S5PC100_PA_KEYPAD + #define S5P_PA_FIMC0 S5PC100_PA_FIMC0 + #define S5P_PA_FIMC1 S5PC100_PA_FIMC1 + #define S5P_PA_FIMC2 S5PC100_PA_FIMC2 + #endif /* __ASM_ARCH_C100_MAP_H */ diff --cc arch/arm/mach-s5pv210/Kconfig index 9b84abf1a822,2e3ed1847ca6..ea9d147d4585 --- a/arch/arm/mach-s5pv210/Kconfig +++ b/arch/arm/mach-s5pv210/Kconfig @@@ -53,19 -43,14 +53,24 @@@ config S5PV210_SETUP_SDHCI_GPI help Common setup code for SDHCI gpio. -# machine support ++config S5PC110_DEV_ONENAND ++ bool ++ help ++ Compile in platform device definition for OneNAND1 controller ++ +menu "S5PC110 Machines" config MACH_AQUILA - bool "Samsung Aquila" + bool "Aquila" select CPU_S5PV210 select ARCH_SPARSEMEM_ENABLE -- select S5PV210_SETUP_FB_24BPP - select S5PV210_SETUP_SDHCI select S3C_DEV_FB - select S5PC110_DEV_ONENAND + select S3C_DEV_HSMMC + select S3C_DEV_HSMMC1 + select S3C_DEV_HSMMC2 ++ select S5PC110_DEV_ONENAND ++ select S5PV210_SETUP_FB_24BPP ++ select S5PV210_SETUP_SDHCI help Machine support for the Samsung Aquila target based on S5PC110 SoC @@@ -73,67 -58,22 +78,58 @@@ config MACH_GON bool "GONI" select CPU_S5PV210 select ARCH_SPARSEMEM_ENABLE - select S5PV210_SETUP_FB_24BPP - select S5PV210_SETUP_SDHCI + select S3C_DEV_FB - select S5PC110_DEV_ONENAND + select S3C_DEV_HSMMC + select S3C_DEV_HSMMC1 + select S3C_DEV_HSMMC2 ++ select S5PC110_DEV_ONENAND ++ select S5PV210_SETUP_FB_24BPP ++ select S5PV210_SETUP_SDHCI help Machine support for Samsung GONI board S5PC110(MCP) is one of package option of S5PV210 -config S5PC110_DEV_ONENAND - bool +config MACH_SMDKC110 + bool "SMDKC110" + select CPU_S5PV210 + select ARCH_SPARSEMEM_ENABLE + select S3C_DEV_I2C1 + select S3C_DEV_I2C2 - select SAMSUNG_DEV_IDE + select S3C_DEV_RTC + select S3C_DEV_WDT - select HAVE_S3C_RTC - select HAVE_S3C2410_WATCHDOG ++ select SAMSUNG_DEV_IDE + select S5PV210_SETUP_I2C1 + select S5PV210_SETUP_I2C2 + select S5PV210_SETUP_IDE help - Compile in platform device definition for OneNAND1 controller + Machine support for Samsung SMDKC110 + S5PC110(MCP) is one of package option of S5PV210 + +endmenu + - config S5PC110_DEV_ONENAND - bool - help - Compile in platform device definition for OneNAND1 controller - +menu "S5PV210 Machines" config MACH_SMDKV210 bool "SMDKV210" select CPU_S5PV210 select ARCH_SPARSEMEM_ENABLE - select SAMSUNG_DEV_ADC + select S3C_DEV_HSMMC + select S3C_DEV_HSMMC1 + select S3C_DEV_HSMMC2 + select S3C_DEV_HSMMC3 + select S3C_DEV_I2C1 + select S3C_DEV_I2C2 ++ select S3C_DEV_RTC ++ select S3C_DEV_WDT + select SAMSUNG_DEV_ADC + select SAMSUNG_DEV_IDE + select SAMSUNG_DEV_KEYPAD select SAMSUNG_DEV_TS - select S3C_DEV_RTC -- select S3C_DEV_WDT - select HAVE_S3C_RTC - select HAVE_S3C2410_WATCHDOG + select S5PV210_SETUP_I2C1 + select S5PV210_SETUP_I2C2 + select S5PV210_SETUP_IDE + select S5PV210_SETUP_KEYPAD + select S5PV210_SETUP_SDHCI help Machine support for Samsung SMDKV210 diff --cc arch/arm/mach-s5pv210/cpu.c index ede163707db1,1acf9ac7ad35..c7e0b8a65c4a --- a/arch/arm/mach-s5pv210/cpu.c +++ b/arch/arm/mach-s5pv210/cpu.c @@@ -32,11 -32,10 +32,13 @@@ #include #include #include + #include +#include + #include #include +#include #include +#include /* Initial IO mappings */ @@@ -93,10 -84,9 +92,16 @@@ void __init s5pv210_map_io(void s5pv210_default_sdhci0(); s5pv210_default_sdhci1(); s5pv210_default_sdhci2(); + s5pv210_default_sdhci3(); + s3c_adc_setname("s3c64xx-adc"); + + s3c_cfcon_setname("s5pv210-pata"); + ++ s3c_fimc_setname(0, "s5pv210-fimc"); ++ s3c_fimc_setname(1, "s5pv210-fimc"); ++ s3c_fimc_setname(2, "s5pv210-fimc"); ++ /* the i2c devices are directly compatible with s3c2440 */ s3c_i2c0_setname("s3c2440-i2c"); s3c_i2c1_setname("s3c2440-i2c"); diff --cc arch/arm/mach-s5pv210/include/mach/map.h index 986b285fa578,69210bf76c47..dd4fb6bf14b5 --- a/arch/arm/mach-s5pv210/include/mach/map.h +++ b/arch/arm/mach-s5pv210/include/mach/map.h @@@ -107,11 -105,11 +111,14 @@@ #define S3C_PA_IIC1 S5PV210_PA_IIC1 #define S3C_PA_IIC2 S5PV210_PA_IIC2 #define S3C_PA_FB S5PV210_PA_FB +#define S3C_PA_RTC S5PV210_PA_RTC #define S3C_PA_WDT S5PV210_PA_WATCHDOG + #define S5P_PA_FIMC0 S5PV210_PA_FIMC0 + #define S5P_PA_FIMC1 S5PV210_PA_FIMC1 + #define S5P_PA_FIMC2 S5PV210_PA_FIMC2 #define SAMSUNG_PA_ADC S5PV210_PA_ADC +#define SAMSUNG_PA_CFCON S5PV210_PA_CFCON +#define SAMSUNG_PA_KEYPAD S5PV210_PA_KEYPAD #endif /* __ASM_ARCH_MAP_H */ diff --cc arch/arm/mach-s5pv210/setup-sdhci-gpio.c index 143bfec1e05f,88bdec35ff36..9f0f63ddd66a --- a/arch/arm/mach-s5pv210/setup-sdhci-gpio.c +++ b/arch/arm/mach-s5pv210/setup-sdhci-gpio.c @@@ -99,26 -107,8 +107,28 @@@ void s5pv210_setup_sdhci2_cfg_gpio(stru break; } - s3c_gpio_setpull(S5PV210_GPG2(2), S3C_GPIO_PULL_UP); - s3c_gpio_cfgpin(S5PV210_GPG2(2), S3C_GPIO_SFN(2)); + if (pdata->cd_type == S3C_SDHCI_CD_INTERNAL) { + s3c_gpio_setpull(S5PV210_GPG2(2), S3C_GPIO_PULL_UP); + s3c_gpio_cfgpin(S5PV210_GPG2(2), S3C_GPIO_SFN(2)); + } } + +void s5pv210_setup_sdhci3_cfg_gpio(struct platform_device *dev, int width) +{ + unsigned int gpio; + + /* Set all the necessary GPG3[0:2] pins to special-function 2 */ + for (gpio = S5PV210_GPG3(0); gpio < S5PV210_GPG3(2); gpio++) { + s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); + s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); + } + + /* Data pin GPG3[3:6] to special-function 2 */ + for (gpio = S5PV210_GPG3(3); gpio <= S5PV210_GPG3(6); gpio++) { + s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); + s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); + } + + s3c_gpio_setpull(S5PV210_GPG3(2), S3C_GPIO_PULL_UP); + s3c_gpio_cfgpin(S5PV210_GPG3(2), S3C_GPIO_SFN(2)); +} diff --cc arch/arm/plat-samsung/include/plat/sdhci.h index 10413728530f,44018111a981..30844c263d03 --- a/arch/arm/plat-samsung/include/plat/sdhci.h +++ b/arch/arm/plat-samsung/include/plat/sdhci.h @@@ -78,9 -109,8 +109,9 @@@ extern void s3c64xx_setup_sdhci2_cfg_gp extern void s5pv210_setup_sdhci0_cfg_gpio(struct platform_device *, int w); extern void s5pv210_setup_sdhci1_cfg_gpio(struct platform_device *, int w); extern void s5pv210_setup_sdhci2_cfg_gpio(struct platform_device *, int w); +extern void s5pv210_setup_sdhci3_cfg_gpio(struct platform_device *, int w); - /* S3C6400 SDHCI setup */ + /* S3C64XX SDHCI setup */ #ifdef CONFIG_S3C64XX_SETUP_SDHCI extern char *s3c64xx_hsmmc_clksrcs[4]; @@@ -262,30 -267,14 +268,24 @@@ static inline void s5pv210_default_sdhc s3c_hsmmc2_def_platdata.clocks = s5pv210_hsmmc_clksrcs; s3c_hsmmc2_def_platdata.cfg_gpio = s5pv210_setup_sdhci2_cfg_gpio; s3c_hsmmc2_def_platdata.cfg_card = s5pv210_setup_sdhci_cfg_card; + #endif } - #else - static inline void s5pv210_default_sdhci2(void) { } - #endif /* CONFIG_S3C_DEV_HSMMC2 */ - #ifdef CONFIG_S3C_DEV_HSMMC3 +static inline void s5pv210_default_sdhci3(void) +{ ++#ifdef CONFIG_S3C_DEV_HSMMC3 + s3c_hsmmc3_def_platdata.clocks = s5pv210_hsmmc_clksrcs; + s3c_hsmmc3_def_platdata.cfg_gpio = s5pv210_setup_sdhci3_cfg_gpio; + s3c_hsmmc3_def_platdata.cfg_card = s5pv210_setup_sdhci_cfg_card; ++#endif +} - #else - static inline void s5pv210_default_sdhci3(void) { } - #endif /* CONFIG_S3C_DEV_HSMMC3 */ + #else static inline void s5pv210_default_sdhci0(void) { } static inline void s5pv210_default_sdhci1(void) { } static inline void s5pv210_default_sdhci2(void) { } +static inline void s5pv210_default_sdhci3(void) { } - #endif /* CONFIG_S5PC100_SETUP_SDHCI */ - - + #endif /* CONFIG_S5PV210_SETUP_SDHCI */ #endif /* __PLAT_S3C_SDHCI_H */