From: Kukjin Kim Date: Tue, 4 Oct 2011 11:18:36 +0000 (+0900) Subject: Merge branch 'next-samsung-devel' into next-samsung-devel-2 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=db3c94a7edc6b29f8d52ba5884dec6a15feeadad;p=linux-beck.git Merge branch 'next-samsung-devel' into next-samsung-devel-2 Conflicts: arch/arm/mach-exynos4/clock.c arch/arm/mach-s3c2412/gpio.c arch/arm/mach-s5p64x0/dma.c arch/arm/mach-s5p64x0/gpiolib.c --- db3c94a7edc6b29f8d52ba5884dec6a15feeadad diff --cc arch/arm/mach-exynos4/clock.c index 413c7cc81979,13e2421ba9e6..a25c81836759 --- a/arch/arm/mach-exynos4/clock.c +++ b/arch/arm/mach-exynos4/clock.c @@@ -1241,31 -1387,12 +1443,34 @@@ void __init_or_cpufreq exynos4_setup_cl } static struct clk *clks[] __initdata = { - /* Nothing here yet */ + &clk_sclk_hdmi27m, + &clk_sclk_hdmiphy, + &clk_sclk_usbphy0, + &clk_sclk_usbphy1, }; +#ifdef CONFIG_PM_SLEEP +static int exynos4_clock_suspend(void) +{ + s3c_pm_do_save(exynos4_clock_save, ARRAY_SIZE(exynos4_clock_save)); + return 0; +} + +static void exynos4_clock_resume(void) +{ + s3c_pm_do_restore_core(exynos4_clock_save, ARRAY_SIZE(exynos4_clock_save)); +} + +#else +#define exynos4_clock_suspend NULL +#define exynos4_clock_resume NULL +#endif + +struct syscore_ops exynos4_clock_syscore_ops = { + .suspend = exynos4_clock_suspend, + .resume = exynos4_clock_resume, +}; + void __init exynos4_register_clocks(void) { int ptr; @@@ -1281,6 -1411,7 +1489,8 @@@ s3c_register_clocks(init_clocks_off, ARRAY_SIZE(init_clocks_off)); s3c_disable_clocks(init_clocks_off, ARRAY_SIZE(init_clocks_off)); + register_syscore_ops(&exynos4_clock_syscore_ops); + s3c24xx_register_clock(&dummy_apb_pclk); + s3c_pwmclk_init(); } diff --cc arch/arm/mach-exynos4/mach-smdkv310.c index a16eb569a3e6,43738c086bc0..35a763e9a659 --- a/arch/arm/mach-exynos4/mach-smdkv310.c +++ b/arch/arm/mach-exynos4/mach-smdkv310.c @@@ -254,10 -210,10 +276,12 @@@ static struct platform_device *smdkv310 &exynos4_device_sysmmu, &samsung_asoc_dma, &samsung_asoc_idma, + &s5p_device_fimd0, + &smdkv310_lcd_lte480wv, &smdkv310_smsc911x, &exynos4_device_ahci, + &s5p_device_hdmi, + &s5p_device_mixer, }; static void __init smdkv310_smsc911x_init(void) @@@ -316,9 -292,12 +360,13 @@@ static void __init smdkv310_machine_ini samsung_keypad_set_platdata(&smdkv310_keypad_data); samsung_bl_set(&smdkv310_bl_gpio_info, &smdkv310_bl_data); + s5p_fimd0_set_platdata(&smdkv310_lcd0_pdata); + smdkv310_ehci_init(); + clk_xusbxti.rate = 24000000; + platform_add_devices(smdkv310_devices, ARRAY_SIZE(smdkv310_devices)); + s5p_device_mfc.dev.parent = &exynos4_device_pd[PD_MFC].dev; } MACHINE_START(SMDKV310, "SMDKV310") @@@ -329,13 -308,5 +377,14 @@@ .map_io = smdkv310_map_io, .init_machine = smdkv310_machine_init, .timer = &exynos4_timer, + .reserve = &smdkv310_reserve, MACHINE_END + +MACHINE_START(SMDKC210, "SMDKC210") + /* Maintainer: Kukjin Kim */ + .boot_params = S5P_PA_SDRAM + 0x100, + .init_irq = exynos4_init_irq, + .map_io = smdkv310_map_io, + .init_machine = smdkv310_machine_init, + .timer = &exynos4_timer, +MACHINE_END diff --cc arch/arm/mach-s5p64x0/dma.c index 0e5b3e63e5b3,aebf3fcb1ebe..442dd4ad12da --- a/arch/arm/mach-s5p64x0/dma.c +++ b/arch/arm/mach-s5p64x0/dma.c @@@ -27,10 -30,10 +30,11 @@@ #include #include #include + #include +#include #include - #include + #include static u64 dma_dmamask = DMA_BIT_MASK(32); diff --cc arch/arm/mach-s5p64x0/mach-smdk6440.c index 340f30f4a3da,39026e9d5f3c..b0465d4e84e7 --- a/arch/arm/mach-s5p64x0/mach-smdk6440.c +++ b/arch/arm/mach-s5p64x0/mach-smdk6440.c @@@ -147,9 -213,20 +207,20 @@@ static void __init smdk6440_map_io(void s5p_set_timer_source(S5P_PWM3, S5P_PWM4); } + static void s5p6440_set_lcd_interface(void) + { + unsigned int cfg; + + /* select TFT LCD type (RGB I/F) */ + cfg = __raw_readl(S5P64X0_SPCON0); + cfg &= ~S5P64X0_SPCON0_LCD_SEL_MASK; + cfg |= S5P64X0_SPCON0_LCD_SEL_RGB; + __raw_writel(cfg, S5P64X0_SPCON0); + } + static void __init smdk6440_machine_init(void) { - s3c24xx_ts_set_platdata(&s3c_ts_platform); + s3c24xx_ts_set_platdata(NULL); s3c_i2c0_set_platdata(&s5p6440_i2c0_data); s3c_i2c1_set_platdata(&s5p6440_i2c1_data); diff --cc arch/arm/mach-s5p64x0/mach-smdk6450.c index ee0da14665b6,92b5de1465b7..2a69caa70afd --- a/arch/arm/mach-s5p64x0/mach-smdk6450.c +++ b/arch/arm/mach-s5p64x0/mach-smdk6450.c @@@ -166,9 -233,20 +227,20 @@@ static void __init smdk6450_map_io(void s5p_set_timer_source(S5P_PWM3, S5P_PWM4); } + static void s5p6450_set_lcd_interface(void) + { + unsigned int cfg; + + /* select TFT LCD type (RGB I/F) */ + cfg = __raw_readl(S5P64X0_SPCON0); + cfg &= ~S5P64X0_SPCON0_LCD_SEL_MASK; + cfg |= S5P64X0_SPCON0_LCD_SEL_RGB; + __raw_writel(cfg, S5P64X0_SPCON0); + } + static void __init smdk6450_machine_init(void) { - s3c24xx_ts_set_platdata(&s3c_ts_platform); + s3c24xx_ts_set_platdata(NULL); s3c_i2c0_set_platdata(&s5p6450_i2c0_data); s3c_i2c1_set_platdata(&s5p6450_i2c1_data); diff --cc arch/arm/mach-s5pv210/Kconfig index aaeb44a73716,e2d1d9e9a498..f22c683272d3 --- a/arch/arm/mach-s5pv210/Kconfig +++ b/arch/arm/mach-s5pv210/Kconfig @@@ -11,9 -11,10 +11,9 @@@ if ARCH_S5PV21 config CPU_S5PV210 bool - select S3C_PL330_DMA + select SAMSUNG_DMADEV select S5P_EXT_INT select S5P_HRT - select S5PV210_PM if PM help Enable S5PV210 CPU support