|
@@ -13,12 +13,14 @@
|
|
|
#include <linux/i2c.h>
|
|
|
#include <linux/input.h>
|
|
|
#include <linux/io.h>
|
|
|
+#include <linux/lcd.h>
|
|
|
#include <linux/mfd/max8997.h>
|
|
|
#include <linux/mmc/host.h>
|
|
|
#include <linux/platform_device.h>
|
|
|
#include <linux/pwm_backlight.h>
|
|
|
#include <linux/regulator/machine.h>
|
|
|
#include <linux/serial_core.h>
|
|
|
+#include <linux/platform_data/s3c-hsotg.h>
|
|
|
|
|
|
#include <asm/mach/arch.h>
|
|
|
#include <asm/hardware/gic.h>
|
|
@@ -28,10 +30,12 @@
|
|
|
#include <plat/clock.h>
|
|
|
#include <plat/cpu.h>
|
|
|
#include <plat/devs.h>
|
|
|
+#include <plat/fb.h>
|
|
|
#include <plat/gpio-cfg.h>
|
|
|
#include <plat/iic.h>
|
|
|
#include <plat/keypad.h>
|
|
|
#include <plat/mfc.h>
|
|
|
+#include <plat/regs-fb.h>
|
|
|
#include <plat/regs-serial.h>
|
|
|
#include <plat/sdhci.h>
|
|
|
|
|
@@ -219,8 +223,10 @@ static struct platform_pwm_backlight_data smdk4x12_bl_data = {
|
|
|
|
|
|
static uint32_t smdk4x12_keymap[] __initdata = {
|
|
|
/* KEY(row, col, keycode) */
|
|
|
- KEY(1, 0, KEY_D), KEY(1, 1, KEY_A), KEY(1, 2, KEY_B),
|
|
|
- KEY(1, 3, KEY_E), KEY(1, 4, KEY_C)
|
|
|
+ KEY(1, 3, KEY_1), KEY(1, 4, KEY_2), KEY(1, 5, KEY_3),
|
|
|
+ KEY(1, 6, KEY_4), KEY(1, 7, KEY_5),
|
|
|
+ KEY(2, 5, KEY_D), KEY(2, 6, KEY_A), KEY(2, 7, KEY_B),
|
|
|
+ KEY(0, 7, KEY_E), KEY(0, 5, KEY_C)
|
|
|
};
|
|
|
|
|
|
static struct matrix_keymap_data smdk4x12_keymap_data __initdata = {
|
|
@@ -230,10 +236,41 @@ static struct matrix_keymap_data smdk4x12_keymap_data __initdata = {
|
|
|
|
|
|
static struct samsung_keypad_platdata smdk4x12_keypad_data __initdata = {
|
|
|
.keymap_data = &smdk4x12_keymap_data,
|
|
|
- .rows = 2,
|
|
|
- .cols = 5,
|
|
|
+ .rows = 3,
|
|
|
+ .cols = 8,
|
|
|
};
|
|
|
|
|
|
+static struct s3c_fb_pd_win smdk4x12_fb_win0 = {
|
|
|
+ .xres = 480,
|
|
|
+ .yres = 800,
|
|
|
+ .virtual_x = 480,
|
|
|
+ .virtual_y = 800 * 2,
|
|
|
+ .max_bpp = 32,
|
|
|
+ .default_bpp = 24,
|
|
|
+};
|
|
|
+
|
|
|
+static struct fb_videomode smdk4x12_lcd_timing = {
|
|
|
+ .left_margin = 8,
|
|
|
+ .right_margin = 8,
|
|
|
+ .upper_margin = 6,
|
|
|
+ .lower_margin = 6,
|
|
|
+ .hsync_len = 6,
|
|
|
+ .vsync_len = 4,
|
|
|
+ .xres = 480,
|
|
|
+ .yres = 800,
|
|
|
+};
|
|
|
+
|
|
|
+static struct s3c_fb_platdata smdk4x12_lcd_pdata __initdata = {
|
|
|
+ .win[0] = &smdk4x12_fb_win0,
|
|
|
+ .vtiming = &smdk4x12_lcd_timing,
|
|
|
+ .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
|
|
|
+ .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
|
|
|
+ .setup_gpio = exynos4_fimd0_gpio_setup_24bpp,
|
|
|
+};
|
|
|
+
|
|
|
+/* USB OTG */
|
|
|
+static struct s3c_hsotg_plat smdk4x12_hsotg_pdata;
|
|
|
+
|
|
|
static struct platform_device *smdk4x12_devices[] __initdata = {
|
|
|
&s3c_device_hsmmc2,
|
|
|
&s3c_device_hsmmc3,
|
|
@@ -242,12 +279,14 @@ static struct platform_device *smdk4x12_devices[] __initdata = {
|
|
|
&s3c_device_i2c3,
|
|
|
&s3c_device_i2c7,
|
|
|
&s3c_device_rtc,
|
|
|
+ &s3c_device_usb_hsotg,
|
|
|
&s3c_device_wdt,
|
|
|
&s5p_device_fimc0,
|
|
|
&s5p_device_fimc1,
|
|
|
&s5p_device_fimc2,
|
|
|
&s5p_device_fimc3,
|
|
|
&s5p_device_fimc_md,
|
|
|
+ &s5p_device_fimd0,
|
|
|
&s5p_device_mfc,
|
|
|
&s5p_device_mfc_l,
|
|
|
&s5p_device_mfc_r,
|
|
@@ -293,6 +332,10 @@ static void __init smdk4x12_machine_init(void)
|
|
|
s3c_sdhci2_set_platdata(&smdk4x12_hsmmc2_pdata);
|
|
|
s3c_sdhci3_set_platdata(&smdk4x12_hsmmc3_pdata);
|
|
|
|
|
|
+ s3c_hsotg_set_platdata(&smdk4x12_hsotg_pdata);
|
|
|
+
|
|
|
+ s5p_fimd0_set_platdata(&smdk4x12_lcd_pdata);
|
|
|
+
|
|
|
platform_add_devices(smdk4x12_devices, ARRAY_SIZE(smdk4x12_devices));
|
|
|
}
|
|
|
|