Commit d003e098 authored by Arnd Bergmann's avatar Arnd Bergmann

Merge branch 'next/board-samsung-3' of...

Merge branch 'next/board-samsung-3' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/boards

From Kukjin Kim <kgene.kim@samsung.com>:

It is including several changes for samsung boards.

* 'next/board-samsung-3' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
  ARM: EXYNOS: Add leds status1 and status2 on Origen board
  ARM: S3C64XX: Mark most Cragganmore initdata devinitdata
  ARM: EXYNOS: Add missing .reserve field to SMDKC210
  ARM: EXYNOS: Add DRM device to SMDK4X12 board
  ARM: S3C64XX: Clean up after SPI driver platform data updates
  ARM: SAMSUNG: no need to set the value for clk_xusbxti when it is 24Mhz
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 608f593b 29e7d587
...@@ -375,6 +375,7 @@ config MACH_SMDK4212 ...@@ -375,6 +375,7 @@ config MACH_SMDK4212
select SAMSUNG_DEV_PWM select SAMSUNG_DEV_PWM
select EXYNOS_DEV_SYSMMU select EXYNOS_DEV_SYSMMU
select EXYNOS_DEV_DMA select EXYNOS_DEV_DMA
select EXYNOS_DEV_DRM
select EXYNOS4_SETUP_FIMD0 select EXYNOS4_SETUP_FIMD0
select EXYNOS4_SETUP_I2C1 select EXYNOS4_SETUP_I2C1
select EXYNOS4_SETUP_I2C3 select EXYNOS4_SETUP_I2C3
......
...@@ -1342,9 +1342,8 @@ static struct platform_device *nuri_devices[] __initdata = { ...@@ -1342,9 +1342,8 @@ static struct platform_device *nuri_devices[] __initdata = {
static void __init nuri_map_io(void) static void __init nuri_map_io(void)
{ {
clk_xusbxti.rate = 24000000;
exynos_init_io(NULL, 0); exynos_init_io(NULL, 0);
s3c24xx_init_clocks(24000000); s3c24xx_init_clocks(clk_xusbxti.rate);
s3c24xx_init_uarts(nuri_uartcfgs, ARRAY_SIZE(nuri_uartcfgs)); s3c24xx_init_uarts(nuri_uartcfgs, ARRAY_SIZE(nuri_uartcfgs));
} }
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
*/ */
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/leds.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/mmc/host.h> #include <linux/mmc/host.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
...@@ -503,6 +504,34 @@ static void __init origen_ohci_init(void) ...@@ -503,6 +504,34 @@ static void __init origen_ohci_init(void)
/* USB OTG */ /* USB OTG */
static struct s3c_hsotg_plat origen_hsotg_pdata; static struct s3c_hsotg_plat origen_hsotg_pdata;
static struct gpio_led origen_gpio_leds[] = {
{
.name = "origen::status1",
.default_trigger = "heartbeat",
.gpio = EXYNOS4_GPX1(3),
.active_low = 1,
},
{
.name = "origen::status2",
.default_trigger = "mmc0",
.gpio = EXYNOS4_GPX1(4),
.active_low = 1,
},
};
static struct gpio_led_platform_data origen_gpio_led_info = {
.leds = origen_gpio_leds,
.num_leds = ARRAY_SIZE(origen_gpio_leds),
};
static struct platform_device origen_leds_gpio = {
.name = "leds-gpio",
.id = -1,
.dev = {
.platform_data = &origen_gpio_led_info,
},
};
static struct gpio_keys_button origen_gpio_keys_table[] = { static struct gpio_keys_button origen_gpio_keys_table[] = {
{ {
.code = KEY_MENU, .code = KEY_MENU,
...@@ -682,6 +711,7 @@ static struct platform_device *origen_devices[] __initdata = { ...@@ -682,6 +711,7 @@ static struct platform_device *origen_devices[] __initdata = {
&exynos4_device_ohci, &exynos4_device_ohci,
&origen_device_gpiokeys, &origen_device_gpiokeys,
&origen_lcd_hv070wsa, &origen_lcd_hv070wsa,
&origen_leds_gpio,
&origen_device_bluetooth, &origen_device_bluetooth,
}; };
...@@ -717,7 +747,7 @@ static void s5p_tv_setup(void) ...@@ -717,7 +747,7 @@ static void s5p_tv_setup(void)
static void __init origen_map_io(void) static void __init origen_map_io(void)
{ {
exynos_init_io(NULL, 0); exynos_init_io(NULL, 0);
s3c24xx_init_clocks(24000000); s3c24xx_init_clocks(clk_xusbxti.rate);
s3c24xx_init_uarts(origen_uartcfgs, ARRAY_SIZE(origen_uartcfgs)); s3c24xx_init_uarts(origen_uartcfgs, ARRAY_SIZE(origen_uartcfgs));
} }
...@@ -750,7 +780,6 @@ static void __init origen_machine_init(void) ...@@ -750,7 +780,6 @@ static void __init origen_machine_init(void)
origen_ehci_init(); origen_ehci_init();
origen_ohci_init(); origen_ohci_init();
s3c_hsotg_set_platdata(&origen_hsotg_pdata); s3c_hsotg_set_platdata(&origen_hsotg_pdata);
clk_xusbxti.rate = 24000000;
s5p_tv_setup(); s5p_tv_setup();
s5p_i2c_hdmiphy_set_platdata(NULL); s5p_i2c_hdmiphy_set_platdata(NULL);
......
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
#include <mach/map.h> #include <mach/map.h>
#include <drm/exynos_drm.h>
#include "common.h" #include "common.h"
/* Following are default values for UCON, ULCON and UFCON UART registers */ /* Following are default values for UCON, ULCON and UFCON UART registers */
...@@ -240,6 +241,26 @@ static struct samsung_keypad_platdata smdk4x12_keypad_data __initdata = { ...@@ -240,6 +241,26 @@ static struct samsung_keypad_platdata smdk4x12_keypad_data __initdata = {
.cols = 8, .cols = 8,
}; };
#ifdef CONFIG_DRM_EXYNOS
static struct exynos_drm_fimd_pdata drm_fimd_pdata = {
.panel = {
.timing = {
.left_margin = 8,
.right_margin = 8,
.upper_margin = 6,
.lower_margin = 6,
.hsync_len = 6,
.vsync_len = 4,
.xres = 480,
.yres = 800,
},
},
.vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
.vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
.default_win = 0,
.bpp = 32,
};
#else
static struct s3c_fb_pd_win smdk4x12_fb_win0 = { static struct s3c_fb_pd_win smdk4x12_fb_win0 = {
.xres = 480, .xres = 480,
.yres = 800, .yres = 800,
...@@ -267,6 +288,7 @@ static struct s3c_fb_platdata smdk4x12_lcd_pdata __initdata = { ...@@ -267,6 +288,7 @@ static struct s3c_fb_platdata smdk4x12_lcd_pdata __initdata = {
.vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
.setup_gpio = exynos4_fimd0_gpio_setup_24bpp, .setup_gpio = exynos4_fimd0_gpio_setup_24bpp,
}; };
#endif
/* USB OTG */ /* USB OTG */
static struct s3c_hsotg_plat smdk4x12_hsotg_pdata; static struct s3c_hsotg_plat smdk4x12_hsotg_pdata;
...@@ -290,13 +312,14 @@ static struct platform_device *smdk4x12_devices[] __initdata = { ...@@ -290,13 +312,14 @@ static struct platform_device *smdk4x12_devices[] __initdata = {
&s5p_device_mfc, &s5p_device_mfc,
&s5p_device_mfc_l, &s5p_device_mfc_l,
&s5p_device_mfc_r, &s5p_device_mfc_r,
#ifdef CONFIG_DRM_EXYNOS
&exynos_device_drm,
#endif
&samsung_device_keypad, &samsung_device_keypad,
}; };
static void __init smdk4x12_map_io(void) static void __init smdk4x12_map_io(void)
{ {
clk_xusbxti.rate = 24000000;
exynos_init_io(NULL, 0); exynos_init_io(NULL, 0);
s3c24xx_init_clocks(clk_xusbxti.rate); s3c24xx_init_clocks(clk_xusbxti.rate);
s3c24xx_init_uarts(smdk4x12_uartcfgs, ARRAY_SIZE(smdk4x12_uartcfgs)); s3c24xx_init_uarts(smdk4x12_uartcfgs, ARRAY_SIZE(smdk4x12_uartcfgs));
...@@ -334,7 +357,12 @@ static void __init smdk4x12_machine_init(void) ...@@ -334,7 +357,12 @@ static void __init smdk4x12_machine_init(void)
s3c_hsotg_set_platdata(&smdk4x12_hsotg_pdata); s3c_hsotg_set_platdata(&smdk4x12_hsotg_pdata);
#ifdef CONFIG_DRM_EXYNOS
s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata;
exynos4_fimd0_gpio_setup_24bpp();
#else
s5p_fimd0_set_platdata(&smdk4x12_lcd_pdata); s5p_fimd0_set_platdata(&smdk4x12_lcd_pdata);
#endif
platform_add_devices(smdk4x12_devices, ARRAY_SIZE(smdk4x12_devices)); platform_add_devices(smdk4x12_devices, ARRAY_SIZE(smdk4x12_devices));
} }
......
...@@ -366,7 +366,7 @@ static void s5p_tv_setup(void) ...@@ -366,7 +366,7 @@ static void s5p_tv_setup(void)
static void __init smdkv310_map_io(void) static void __init smdkv310_map_io(void)
{ {
exynos_init_io(NULL, 0); exynos_init_io(NULL, 0);
s3c24xx_init_clocks(24000000); s3c24xx_init_clocks(clk_xusbxti.rate);
s3c24xx_init_uarts(smdkv310_uartcfgs, ARRAY_SIZE(smdkv310_uartcfgs)); s3c24xx_init_uarts(smdkv310_uartcfgs, ARRAY_SIZE(smdkv310_uartcfgs));
} }
...@@ -403,7 +403,6 @@ static void __init smdkv310_machine_init(void) ...@@ -403,7 +403,6 @@ static void __init smdkv310_machine_init(void)
smdkv310_ehci_init(); smdkv310_ehci_init();
smdkv310_ohci_init(); smdkv310_ohci_init();
s3c_hsotg_set_platdata(&smdkv310_hsotg_pdata); s3c_hsotg_set_platdata(&smdkv310_hsotg_pdata);
clk_xusbxti.rate = 24000000;
platform_add_devices(smdkv310_devices, ARRAY_SIZE(smdkv310_devices)); platform_add_devices(smdkv310_devices, ARRAY_SIZE(smdkv310_devices));
} }
...@@ -430,5 +429,6 @@ MACHINE_START(SMDKC210, "SMDKC210") ...@@ -430,5 +429,6 @@ MACHINE_START(SMDKC210, "SMDKC210")
.init_machine = smdkv310_machine_init, .init_machine = smdkv310_machine_init,
.init_late = exynos_init_late, .init_late = exynos_init_late,
.timer = &exynos4_timer, .timer = &exynos4_timer,
.reserve = &smdkv310_reserve,
.restart = exynos4_restart, .restart = exynos4_restart,
MACHINE_END MACHINE_END
...@@ -1100,9 +1100,8 @@ static struct platform_device *universal_devices[] __initdata = { ...@@ -1100,9 +1100,8 @@ static struct platform_device *universal_devices[] __initdata = {
static void __init universal_map_io(void) static void __init universal_map_io(void)
{ {
clk_xusbxti.rate = 24000000;
exynos_init_io(NULL, 0); exynos_init_io(NULL, 0);
s3c24xx_init_clocks(24000000); s3c24xx_init_clocks(clk_xusbxti.rate);
s3c24xx_init_uarts(universal_uartcfgs, ARRAY_SIZE(universal_uartcfgs)); s3c24xx_init_uarts(universal_uartcfgs, ARRAY_SIZE(universal_uartcfgs));
s5p_set_timer_source(S5P_PWM2, S5P_PWM4); s5p_set_timer_source(S5P_PWM2, S5P_PWM4);
} }
......
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
#include <mach/crag6410.h> #include <mach/crag6410.h>
static struct s3c64xx_spi_csinfo wm0010_spi_csinfo = { static struct s3c64xx_spi_csinfo wm0010_spi_csinfo = {
.set_level = gpio_set_value,
.line = S3C64XX_GPC(3), .line = S3C64XX_GPC(3),
}; };
......
...@@ -171,7 +171,7 @@ static struct fb_videomode crag6410_lcd_timing = { ...@@ -171,7 +171,7 @@ static struct fb_videomode crag6410_lcd_timing = {
}; };
/* 405566 clocks per frame => 60Hz refresh requires 24333960Hz clock */ /* 405566 clocks per frame => 60Hz refresh requires 24333960Hz clock */
static struct s3c_fb_platdata crag6410_lcd_pdata __initdata = { static struct s3c_fb_platdata crag6410_lcd_pdata __devinitdata = {
.setup_gpio = s3c64xx_fb_gpio_setup_24bpp, .setup_gpio = s3c64xx_fb_gpio_setup_24bpp,
.vtiming = &crag6410_lcd_timing, .vtiming = &crag6410_lcd_timing,
.win[0] = &crag6410_fb_win0, .win[0] = &crag6410_fb_win0,
...@@ -181,7 +181,7 @@ static struct s3c_fb_platdata crag6410_lcd_pdata __initdata = { ...@@ -181,7 +181,7 @@ static struct s3c_fb_platdata crag6410_lcd_pdata __initdata = {
/* 2x6 keypad */ /* 2x6 keypad */
static uint32_t crag6410_keymap[] __initdata = { static uint32_t crag6410_keymap[] __devinitdata = {
/* KEY(row, col, keycode) */ /* KEY(row, col, keycode) */
KEY(0, 0, KEY_VOLUMEUP), KEY(0, 0, KEY_VOLUMEUP),
KEY(0, 1, KEY_HOME), KEY(0, 1, KEY_HOME),
...@@ -197,12 +197,12 @@ static uint32_t crag6410_keymap[] __initdata = { ...@@ -197,12 +197,12 @@ static uint32_t crag6410_keymap[] __initdata = {
KEY(1, 5, KEY_CAMERA), KEY(1, 5, KEY_CAMERA),
}; };
static struct matrix_keymap_data crag6410_keymap_data __initdata = { static struct matrix_keymap_data crag6410_keymap_data __devinitdata = {
.keymap = crag6410_keymap, .keymap = crag6410_keymap,
.keymap_size = ARRAY_SIZE(crag6410_keymap), .keymap_size = ARRAY_SIZE(crag6410_keymap),
}; };
static struct samsung_keypad_platdata crag6410_keypad_data __initdata = { static struct samsung_keypad_platdata crag6410_keypad_data __devinitdata = {
.keymap_data = &crag6410_keymap_data, .keymap_data = &crag6410_keymap_data,
.rows = 2, .rows = 2,
.cols = 6, .cols = 6,
...@@ -373,11 +373,11 @@ static struct wm831x_buckv_pdata vddarm_pdata = { ...@@ -373,11 +373,11 @@ static struct wm831x_buckv_pdata vddarm_pdata = {
.dvs_gpio = S3C64XX_GPK(0), .dvs_gpio = S3C64XX_GPK(0),
}; };
static struct regulator_consumer_supply vddarm_consumers[] __initdata = { static struct regulator_consumer_supply vddarm_consumers[] __devinitdata = {
REGULATOR_SUPPLY("vddarm", NULL), REGULATOR_SUPPLY("vddarm", NULL),
}; };
static struct regulator_init_data vddarm __initdata = { static struct regulator_init_data vddarm __devinitdata = {
.constraints = { .constraints = {
.name = "VDDARM", .name = "VDDARM",
.min_uV = 1000000, .min_uV = 1000000,
...@@ -391,11 +391,11 @@ static struct regulator_init_data vddarm __initdata = { ...@@ -391,11 +391,11 @@ static struct regulator_init_data vddarm __initdata = {
.driver_data = &vddarm_pdata, .driver_data = &vddarm_pdata,
}; };
static struct regulator_consumer_supply vddint_consumers[] __initdata = { static struct regulator_consumer_supply vddint_consumers[] __devinitdata = {
REGULATOR_SUPPLY("vddint", NULL), REGULATOR_SUPPLY("vddint", NULL),
}; };
static struct regulator_init_data vddint __initdata = { static struct regulator_init_data vddint __devinitdata = {
.constraints = { .constraints = {
.name = "VDDINT", .name = "VDDINT",
.min_uV = 1000000, .min_uV = 1000000,
...@@ -408,27 +408,27 @@ static struct regulator_init_data vddint __initdata = { ...@@ -408,27 +408,27 @@ static struct regulator_init_data vddint __initdata = {
.supply_regulator = "WALLVDD", .supply_regulator = "WALLVDD",
}; };
static struct regulator_init_data vddmem __initdata = { static struct regulator_init_data vddmem __devinitdata = {
.constraints = { .constraints = {
.name = "VDDMEM", .name = "VDDMEM",
.always_on = 1, .always_on = 1,
}, },
}; };
static struct regulator_init_data vddsys __initdata = { static struct regulator_init_data vddsys __devinitdata = {
.constraints = { .constraints = {
.name = "VDDSYS,VDDEXT,VDDPCM,VDDSS", .name = "VDDSYS,VDDEXT,VDDPCM,VDDSS",
.always_on = 1, .always_on = 1,
}, },
}; };
static struct regulator_consumer_supply vddmmc_consumers[] __initdata = { static struct regulator_consumer_supply vddmmc_consumers[] __devinitdata = {
REGULATOR_SUPPLY("vmmc", "s3c-sdhci.0"), REGULATOR_SUPPLY("vmmc", "s3c-sdhci.0"),
REGULATOR_SUPPLY("vmmc", "s3c-sdhci.1"), REGULATOR_SUPPLY("vmmc", "s3c-sdhci.1"),
REGULATOR_SUPPLY("vmmc", "s3c-sdhci.2"), REGULATOR_SUPPLY("vmmc", "s3c-sdhci.2"),
}; };
static struct regulator_init_data vddmmc __initdata = { static struct regulator_init_data vddmmc __devinitdata = {
.constraints = { .constraints = {
.name = "VDDMMC,UH", .name = "VDDMMC,UH",
.always_on = 1, .always_on = 1,
...@@ -438,7 +438,7 @@ static struct regulator_init_data vddmmc __initdata = { ...@@ -438,7 +438,7 @@ static struct regulator_init_data vddmmc __initdata = {
.supply_regulator = "WALLVDD", .supply_regulator = "WALLVDD",
}; };
static struct regulator_init_data vddotgi __initdata = { static struct regulator_init_data vddotgi __devinitdata = {
.constraints = { .constraints = {
.name = "VDDOTGi", .name = "VDDOTGi",
.always_on = 1, .always_on = 1,
...@@ -446,7 +446,7 @@ static struct regulator_init_data vddotgi __initdata = { ...@@ -446,7 +446,7 @@ static struct regulator_init_data vddotgi __initdata = {
.supply_regulator = "WALLVDD", .supply_regulator = "WALLVDD",
}; };
static struct regulator_init_data vddotg __initdata = { static struct regulator_init_data vddotg __devinitdata = {
.constraints = { .constraints = {
.name = "VDDOTG", .name = "VDDOTG",
.always_on = 1, .always_on = 1,
...@@ -454,7 +454,7 @@ static struct regulator_init_data vddotg __initdata = { ...@@ -454,7 +454,7 @@ static struct regulator_init_data vddotg __initdata = {
.supply_regulator = "WALLVDD", .supply_regulator = "WALLVDD",
}; };
static struct regulator_init_data vddhi __initdata = { static struct regulator_init_data vddhi __devinitdata = {
.constraints = { .constraints = {
.name = "VDDHI", .name = "VDDHI",
.always_on = 1, .always_on = 1,
...@@ -462,7 +462,7 @@ static struct regulator_init_data vddhi __initdata = { ...@@ -462,7 +462,7 @@ static struct regulator_init_data vddhi __initdata = {
.supply_regulator = "WALLVDD", .supply_regulator = "WALLVDD",
}; };
static struct regulator_init_data vddadc __initdata = { static struct regulator_init_data vddadc __devinitdata = {
.constraints = { .constraints = {
.name = "VDDADC,VDDDAC", .name = "VDDADC,VDDDAC",
.always_on = 1, .always_on = 1,
...@@ -470,7 +470,7 @@ static struct regulator_init_data vddadc __initdata = { ...@@ -470,7 +470,7 @@ static struct regulator_init_data vddadc __initdata = {
.supply_regulator = "WALLVDD", .supply_regulator = "WALLVDD",
}; };
static struct regulator_init_data vddmem0 __initdata = { static struct regulator_init_data vddmem0 __devinitdata = {
.constraints = { .constraints = {
.name = "VDDMEM0", .name = "VDDMEM0",
.always_on = 1, .always_on = 1,
...@@ -478,7 +478,7 @@ static struct regulator_init_data vddmem0 __initdata = { ...@@ -478,7 +478,7 @@ static struct regulator_init_data vddmem0 __initdata = {
.supply_regulator = "WALLVDD", .supply_regulator = "WALLVDD",
}; };
static struct regulator_init_data vddpll __initdata = { static struct regulator_init_data vddpll __devinitdata = {
.constraints = { .constraints = {
.name = "VDDPLL", .name = "VDDPLL",
.always_on = 1, .always_on = 1,
...@@ -486,7 +486,7 @@ static struct regulator_init_data vddpll __initdata = { ...@@ -486,7 +486,7 @@ static struct regulator_init_data vddpll __initdata = {
.supply_regulator = "WALLVDD", .supply_regulator = "WALLVDD",
}; };
static struct regulator_init_data vddlcd __initdata = { static struct regulator_init_data vddlcd __devinitdata = {
.constraints = { .constraints = {
.name = "VDDLCD", .name = "VDDLCD",
.always_on = 1, .always_on = 1,
...@@ -494,7 +494,7 @@ static struct regulator_init_data vddlcd __initdata = { ...@@ -494,7 +494,7 @@ static struct regulator_init_data vddlcd __initdata = {
.supply_regulator = "WALLVDD", .supply_regulator = "WALLVDD",
}; };
static struct regulator_init_data vddalive __initdata = { static struct regulator_init_data vddalive __devinitdata = {
.constraints = { .constraints = {
.name = "VDDALIVE", .name = "VDDALIVE",
.always_on = 1, .always_on = 1,
...@@ -502,28 +502,28 @@ static struct regulator_init_data vddalive __initdata = { ...@@ -502,28 +502,28 @@ static struct regulator_init_data vddalive __initdata = {
.supply_regulator = "WALLVDD", .supply_regulator = "WALLVDD",
}; };
static struct wm831x_backup_pdata banff_backup_pdata __initdata = { static struct wm831x_backup_pdata banff_backup_pdata __devinitdata = {
.charger_enable = 1, .charger_enable = 1,
.vlim = 2500, /* mV */ .vlim = 2500, /* mV */
.ilim = 200, /* uA */ .ilim = 200, /* uA */
}; };
static struct wm831x_status_pdata banff_red_led __initdata = { static struct wm831x_status_pdata banff_red_led __devinitdata = {
.name = "banff:red:", .name = "banff:red:",
.default_src = WM831X_STATUS_MANUAL, .default_src = WM831X_STATUS_MANUAL,
}; };
static struct wm831x_status_pdata banff_green_led __initdata = { static struct wm831x_status_pdata banff_green_led __devinitdata = {
.name = "banff:green:", .name = "banff:green:",
.default_src = WM831X_STATUS_MANUAL, .default_src = WM831X_STATUS_MANUAL,
}; };
static struct wm831x_touch_pdata touch_pdata __initdata = { static struct wm831x_touch_pdata touch_pdata __devinitdata = {
.data_irq = S3C_EINT(26), .data_irq = S3C_EINT(26),
.pd_irq = S3C_EINT(27), .pd_irq = S3C_EINT(27),
}; };
static struct wm831x_pdata crag_pmic_pdata __initdata = { static struct wm831x_pdata crag_pmic_pdata __devinitdata = {
.wm831x_num = 1, .wm831x_num = 1,
.gpio_base = BANFF_PMIC_GPIO_BASE, .gpio_base = BANFF_PMIC_GPIO_BASE,
.soft_shutdown = true, .soft_shutdown = true,
...@@ -567,7 +567,7 @@ static struct wm831x_pdata crag_pmic_pdata __initdata = { ...@@ -567,7 +567,7 @@ static struct wm831x_pdata crag_pmic_pdata __initdata = {
.touch = &touch_pdata, .touch = &touch_pdata,
}; };
static struct i2c_board_info i2c_devs0[] __initdata = { static struct i2c_board_info i2c_devs0[] __devinitdata = {
{ I2C_BOARD_INFO("24c08", 0x50), }, { I2C_BOARD_INFO("24c08", 0x50), },
{ I2C_BOARD_INFO("tca6408", 0x20), { I2C_BOARD_INFO("tca6408", 0x20),
.platform_data = &crag6410_pca_data, .platform_data = &crag6410_pca_data,
...@@ -582,12 +582,12 @@ static struct s3c2410_platform_i2c i2c0_pdata = { ...@@ -582,12 +582,12 @@ static struct s3c2410_platform_i2c i2c0_pdata = {
.frequency = 400000, .frequency = 400000,
}; };
static struct regulator_consumer_supply pvdd_1v2_consumers[] __initdata = { static struct regulator_consumer_supply pvdd_1v2_consumers[] __devinitdata = {
REGULATOR_SUPPLY("DCVDD", "spi0.0"), REGULATOR_SUPPLY("DCVDD", "spi0.0"),
REGULATOR_SUPPLY("AVDD", "spi0.0"), REGULATOR_SUPPLY("AVDD", "spi0.0"),
}; };
static struct regulator_init_data pvdd_1v2 __initdata = { static struct regulator_init_data pvdd_1v2 __devinitdata = {
.constraints = { .constraints = {
.name = "PVDD_1V2", .name = "PVDD_1V2",
.valid_ops_mask = REGULATOR_CHANGE_STATUS, .valid_ops_mask = REGULATOR_CHANGE_STATUS,
...@@ -597,7 +597,7 @@ static struct regulator_init_data pvdd_1v2 __initdata = { ...@@ -597,7 +597,7 @@ static struct regulator_init_data pvdd_1v2 __initdata = {
.num_consumer_supplies = ARRAY_SIZE(pvdd_1v2_consumers), .num_consumer_supplies = ARRAY_SIZE(pvdd_1v2_consumers),
}; };
static struct regulator_consumer_supply pvdd_1v8_consumers[] __initdata = { static struct regulator_consumer_supply pvdd_1v8_consumers[] __devinitdata = {
REGULATOR_SUPPLY("LDOVDD", "1-001a"), REGULATOR_SUPPLY("LDOVDD", "1-001a"),
REGULATOR_SUPPLY("PLLVDD", "1-001a"), REGULATOR_SUPPLY("PLLVDD", "1-001a"),
REGULATOR_SUPPLY("DBVDD", "1-001a"), REGULATOR_SUPPLY("DBVDD", "1-001a"),
...@@ -611,7 +611,7 @@ static struct regulator_consumer_supply pvdd_1v8_consumers[] __initdata = { ...@@ -611,7 +611,7 @@ static struct regulator_consumer_supply pvdd_1v8_consumers[] __initdata = {
REGULATOR_SUPPLY("DBVDD", "spi0.0"), REGULATOR_SUPPLY("DBVDD", "spi0.0"),
}; };
static struct regulator_init_data pvdd_1v8 __initdata = { static struct regulator_init_data pvdd_1v8 __devinitdata = {
.constraints = { .constraints = {
.name = "PVDD_1V8", .name = "PVDD_1V8",
.always_on = 1, .always_on = 1,
...@@ -621,12 +621,12 @@ static struct regulator_init_data pvdd_1v8 __initdata = { ...@@ -621,12 +621,12 @@ static struct regulator_init_data pvdd_1v8 __initdata = {
.num_consumer_supplies = ARRAY_SIZE(pvdd_1v8_consumers), .num_consumer_supplies = ARRAY_SIZE(pvdd_1v8_consumers),
}; };
static struct regulator_consumer_supply pvdd_3v3_consumers[] __initdata = { static struct regulator_consumer_supply pvdd_3v3_consumers[] __devinitdata = {
REGULATOR_SUPPLY("MICVDD", "1-001a"), REGULATOR_SUPPLY("MICVDD", "1-001a"),
REGULATOR_SUPPLY("AVDD1", "1-001a"), REGULATOR_SUPPLY("AVDD1", "1-001a"),
}; };
static struct regulator_init_data pvdd_3v3 __initdata = { static struct regulator_init_data pvdd_3v3 __devinitdata = {
.constraints = { .constraints = {
.name = "PVDD_3V3", .name = "PVDD_3V3",
.always_on = 1, .always_on = 1,
...@@ -636,7 +636,7 @@ static struct regulator_init_data pvdd_3v3 __initdata = { ...@@ -636,7 +636,7 @@ static struct regulator_init_data pvdd_3v3 __initdata = {
.num_consumer_supplies = ARRAY_SIZE(pvdd_3v3_consumers), .num_consumer_supplies = ARRAY_SIZE(pvdd_3v3_consumers),
}; };
static struct wm831x_pdata glenfarclas_pmic_pdata __initdata = { static struct wm831x_pdata glenfarclas_pmic_pdata __devinitdata = {
.wm831x_num = 2, .wm831x_num = 2,
.irq_base = GLENFARCLAS_PMIC_IRQ_BASE, .irq_base = GLENFARCLAS_PMIC_IRQ_BASE,
.gpio_base = GLENFARCLAS_PMIC_GPIO_BASE, .gpio_base = GLENFARCLAS_PMIC_GPIO_BASE,
...@@ -668,7 +668,7 @@ static struct wm1250_ev1_pdata wm1250_ev1_pdata = { ...@@ -668,7 +668,7 @@ static struct wm1250_ev1_pdata wm1250_ev1_pdata = {
}, },
}; };
static struct i2c_board_info i2c_devs1[] __initdata = { static struct i2c_board_info i2c_devs1[] __devinitdata = {
{ I2C_BOARD_INFO("wm8311", 0x34), { I2C_BOARD_INFO("wm8311", 0x34),
.irq = S3C_EINT(0), .irq = S3C_EINT(0),
.platform_data = &glenfarclas_pmic_pdata }, .platform_data = &glenfarclas_pmic_pdata },
......
...@@ -908,7 +908,7 @@ static void __init goni_sound_init(void) ...@@ -908,7 +908,7 @@ static void __init goni_sound_init(void)
static void __init goni_map_io(void) static void __init goni_map_io(void)
{ {
s5pv210_init_io(NULL, 0); s5pv210_init_io(NULL, 0);
s3c24xx_init_clocks(24000000); s3c24xx_init_clocks(clk_xusbxti.rate);
s3c24xx_init_uarts(goni_uartcfgs, ARRAY_SIZE(goni_uartcfgs)); s3c24xx_init_uarts(goni_uartcfgs, ARRAY_SIZE(goni_uartcfgs));
s5p_set_timer_source(S5P_PWM3, S5P_PWM4); s5p_set_timer_source(S5P_PWM3, S5P_PWM4);
} }
...@@ -966,8 +966,6 @@ static void __init goni_machine_init(void) ...@@ -966,8 +966,6 @@ static void __init goni_machine_init(void)
/* KEYPAD */ /* KEYPAD */
samsung_keypad_set_platdata(&keypad_data); samsung_keypad_set_platdata(&keypad_data);
clk_xusbxti.rate = 24000000;
platform_add_devices(goni_devices, ARRAY_SIZE(goni_devices)); platform_add_devices(goni_devices, ARRAY_SIZE(goni_devices));
} }
......
...@@ -285,7 +285,7 @@ static struct platform_pwm_backlight_data smdkv210_bl_data = { ...@@ -285,7 +285,7 @@ static struct platform_pwm_backlight_data smdkv210_bl_data = {
static void __init smdkv210_map_io(void) static void __init smdkv210_map_io(void)
{ {
s5pv210_init_io(NULL, 0); s5pv210_init_io(NULL, 0);
s3c24xx_init_clocks(24000000); s3c24xx_init_clocks(clk_xusbxti.rate);
s3c24xx_init_uarts(smdkv210_uartcfgs, ARRAY_SIZE(smdkv210_uartcfgs)); s3c24xx_init_uarts(smdkv210_uartcfgs, ARRAY_SIZE(smdkv210_uartcfgs));
s5p_set_timer_source(S5P_PWM2, S5P_PWM4); s5p_set_timer_source(S5P_PWM2, S5P_PWM4);
} }
...@@ -321,7 +321,6 @@ static void __init smdkv210_machine_init(void) ...@@ -321,7 +321,6 @@ static void __init smdkv210_machine_init(void)
samsung_bl_set(&smdkv210_bl_gpio_info, &smdkv210_bl_data); samsung_bl_set(&smdkv210_bl_gpio_info, &smdkv210_bl_data);
s3c_hsotg_set_platdata(&smdkv210_hsotg_pdata); s3c_hsotg_set_platdata(&smdkv210_hsotg_pdata);
clk_xusbxti.rate = 24000000;
platform_add_devices(smdkv210_devices, ARRAY_SIZE(smdkv210_devices)); platform_add_devices(smdkv210_devices, ARRAY_SIZE(smdkv210_devices));
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment