summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorJason Chen <b02280@freescale.com>2011-02-12 10:49:06 +0800
committerJason Chen <b02280@freescale.com>2011-02-12 15:32:23 +0800
commit4d38b81f9e39aa8d2c09b2e3f3d29ca32599917a (patch)
tree2fda67ff56e7da80f7d41cfb353271fe71dd1aa6 /arch
parent49a63fcc2ae3f1aaf2132dcc0ec42a6269e0f578 (diff)
ENGR00138644-1 MSL:change the video mode setting method
The old method of setting display device's video mode is that using platform data in MSL to bring into different video modes, all of these modes will be added into fb modelist during mxcfb_probe, after that, specified video mode in cmdline fb option would be found in this modelist; and at last, display device driver will set related parameters according to this mode by fb notifier event. This method has some weakness: 1. must keep the same video mode in two files, MSL platform file and display driver file. 2. display driver may need call fb_set_var() if it's primary display. 3. it puts all video modes into fb modelist, so it's not correct for different display device, especially for the device which supports DDC. New method brings two APIs in ipuv3 fb driver: mxcfb_register_mode() and mxcfb_register_presetup(). Function mxcfb_register_mode() should be called by display device driver before mxcfb_probe, it will register its supported video modes to correct fb modelist. Function mxcfb_register_presetup() should be called by display device driver before mxcfb_probe when it need some pre-setup before IPU display setup. During mxcfb_probe, ipuv3 fb driver will try to find the best video mode in registered fb modelist, call presetup function if there is one, then goto ipu display setup. After this patch: 1. To enable TVOUT, pls add 'tve' to cmdline, below video modes will be added to di1 fb: TV-1080P24: D:1920x1080p-24 TV-1080P25: D:1920x1080p-25 TV-1080P30: D:1920x1080p-30 TV-1080I50: D:1920x1080i-50 TV-1080I60: D:1920x1080i-60 TV-720P30: D:1280x720p-30 TV-720P60: D:1280x720p-60 TV-PAL: D:720x576i-50 TV-NTSC: D:720x480i-60 First column is fb option name, for example, to enable primary TVOUT for 720P60, the cmdline should like: 'video=mxcdi1fb:YUV444,TV-720P60 di1_primary tve' 2. To enable VGA, pls add 'vga' to cmdline, below video modes will be added to di1 fb: VGA-WSXGA+: D:1680x1050p-60 VGA-SXGA: D:1280x1024p-60 VGA-XGA: D:1024x768p-60 VGA-SVGA: D:800x600p-60 First column is fb option name, for example, to enable primary VGA for SXGA, the cmdline should like: 'video=mxcdi1fb:GBR24,VGA-SXGA di1_primary vga' 3. For SII902x HDMI with DDC support, pls add 'hdmi' to cmdline, and just put one video mode with resolution you want to support, after EDID reading and mxcfb_probe, the nearest video mode will be used. For example, if you want to use XGA resolution on HDMI, the cmdline could be: 'video=mxcdi0fb:RGB24,1024x768 hdmi' 'video=mxcdi0fb:RGB24,1024x768M hdmi' 'video=mxcdi0fb:RGB24,1024x768M@60 hdmi' 4. For some display device with specified video mode but without driver support, the video mode could be put in MSL platform data. 5. LDB is still keep the old method, should be change to current method in the future. NOTE: 1. VGA can only enable with cmdline 'vga' 2. TVOUT can only enable with cmdline 'tve' 3. SII902x HDMI can only enable with cmdline 'hdmi' 4. For DDC support, there is I2C conflict on some boards, like LVDS panel & HDMI on SMD board, like VGA port & HDMI daughter card on LOCO board. Signed-off-by: Jason Chen <b02280@freescale.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-mx5/mx51_babbage.c27
-rw-r--r--arch/arm/mach-mx5/mx53_ard.c33
-rw-r--r--arch/arm/mach-mx5/mx53_evk.c116
-rw-r--r--arch/arm/mach-mx5/mx53_loco.c122
-rw-r--r--arch/arm/mach-mx5/mx53_smd.c118
5 files changed, 50 insertions, 366 deletions
diff --git a/arch/arm/mach-mx5/mx51_babbage.c b/arch/arm/mach-mx5/mx51_babbage.c
index b99eee017144..2b3f7a9113f7 100644
--- a/arch/arm/mach-mx5/mx51_babbage.c
+++ b/arch/arm/mach-mx5/mx51_babbage.c
@@ -274,33 +274,6 @@ static struct cpu_wp cpu_wp_auto[] = {
static struct fb_videomode video_modes[] = {
{
- /* NTSC TV output */
- "TV-NTSC", 60, 720, 480, 74074,
- 122, 15,
- 18, 26,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_INTERLACED,
- 0,},
- {
- /* PAL TV output */
- "TV-PAL", 50, 720, 576, 74074,
- 132, 11,
- 22, 26,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_INTERLACED | FB_VMODE_ODD_FLD_FIRST,
- 0,},
- {
- /* 720p60 TV output */
- "720P60", 60, 1280, 720, 13468,
- 260, 109,
- 25, 4,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
/*MITSUBISHI LVDS panel */
"XGA", 60, 1024, 768, 15385,
220, 40,
diff --git a/arch/arm/mach-mx5/mx53_ard.c b/arch/arm/mach-mx5/mx53_ard.c
index 6284e0ad98d3..1d6e68dacdd5 100644
--- a/arch/arm/mach-mx5/mx53_ard.c
+++ b/arch/arm/mach-mx5/mx53_ard.c
@@ -360,32 +360,6 @@ static iomux_v3_cfg_t mx53ard_pads[] = {
static struct fb_videomode video_modes[] = {
{
- /* NTSC TV output */
- "TV-NTSC", 60, 720, 480, 74074,
- 122, 15,
- 18, 26,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_INTERLACED,
- 0,},
- {
- /* PAL TV output */
- "TV-PAL", 50, 720, 576, 74074,
- 132, 11,
- 22, 26,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_INTERLACED | FB_VMODE_ODD_FLD_FIRST,
- 0,},
- {
- "720P60", 60, 1280, 720, 13468,
- 260, 109,
- 25, 4,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
/* 800x480 @ 57 Hz , pixel clk @ 27MHz */
"CLAA-WVGA", 57, 800, 480, 37037, 40, 60, 10, 10, 20, 10,
FB_SYNC_CLK_LAT_FALL,
@@ -400,6 +374,7 @@ static struct fb_videomode video_modes[] = {
FB_SYNC_HOR_HIGH_ACT|FB_SYNC_VERT_HIGH_ACT,
FB_VMODE_NONINTERLACED,
0,},
+ /* 2 LVDS modes, had better remove from here */
{
"1080P60", 60, 1920, 1080, 7692,
100, 40,
@@ -687,13 +662,13 @@ static struct resource mxcfb_resources[] = {
static struct mxc_fb_platform_data fb_data[] = {
{
- .interface_pix_fmt = IPU_PIX_FMT_RGB565,
- .mode_str = "CLAA-WVGA",
+ .interface_pix_fmt = IPU_PIX_FMT_RGB24,
+ .mode_str = "XGA",
.mode = video_modes,
.num_modes = ARRAY_SIZE(video_modes),
},
{
- .interface_pix_fmt = IPU_PIX_FMT_BGR24,
+ .interface_pix_fmt = IPU_PIX_FMT_GBR24,
.mode_str = "1024x768M-16@60",
.mode = video_modes,
.num_modes = ARRAY_SIZE(video_modes),
diff --git a/arch/arm/mach-mx5/mx53_evk.c b/arch/arm/mach-mx5/mx53_evk.c
index 3afb84d2c2ee..0abb4d010c8f 100644
--- a/arch/arm/mach-mx5/mx53_evk.c
+++ b/arch/arm/mach-mx5/mx53_evk.c
@@ -397,82 +397,12 @@ static iomux_v3_cfg_t mx53_nand_pads[] = {
static struct fb_videomode video_modes[] = {
{
- /* NTSC TV output */
- "TV-NTSC", 60, 720, 480, 74074,
- 122, 15,
- 18, 26,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_INTERLACED,
- 0,},
- {
- /* PAL TV output */
- "TV-PAL", 50, 720, 576, 74074,
- 132, 11,
- 22, 26,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_INTERLACED | FB_VMODE_ODD_FLD_FIRST,
- 0,},
- {
- /* 1080i50 TV output */
- "1080I50", 50, 1920, 1080, 13468,
- 192, 527,
- 20, 24,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_INTERLACED | FB_VMODE_ODD_FLD_FIRST,
- 0,},
- {
- /* 1080i60 TV output */
- "1080I60", 60, 1920, 1080, 13468,
- 192, 87,
- 20, 24,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_INTERLACED | FB_VMODE_ODD_FLD_FIRST,
- 0,},
- {
/* 800x480 @ 57 Hz , pixel clk @ 27MHz */
"CLAA-WVGA", 57, 800, 480, 37037, 40, 60, 10, 10, 20, 10,
FB_SYNC_CLK_LAT_FALL,
FB_VMODE_NONINTERLACED,
0,},
{
- "XGA", 60, 1024, 768, 15385,
- 220, 40,
- 21, 7,
- 60, 10,
- 0,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
- /* 720p30 TV output */
- "720P30", 30, 1280, 720, 13468,
- 260, 1759,
- 25, 4,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
- "720P60", 60, 1280, 720, 13468,
- 260, 109,
- 25, 4,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
- /* VGA 1280x1024 108M pixel clk output */
- "SXGA", 60, 1280, 1024, 9259,
- 48, 248,
- 1, 38,
- 112, 3,
- 0,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
/* 1600x1200 @ 60 Hz 162M pixel clk*/
"UXGA", 60, 1600, 1200, 6172,
304, 64,
@@ -481,33 +411,7 @@ static struct fb_videomode video_modes[] = {
FB_SYNC_HOR_HIGH_ACT|FB_SYNC_VERT_HIGH_ACT,
FB_VMODE_NONINTERLACED,
0,},
- {
- /* 1080p24 TV output */
- "1080P24", 24, 1920, 1080, 13468,
- 192, 637,
- 38, 6,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
- /* 1080p25 TV output */
- "1080P25", 25, 1920, 1080, 13468,
- 192, 527,
- 38, 6,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
- /* 1080p30 TV output */
- "1080P30", 30, 1920, 1080, 13468,
- 192, 87,
- 38, 6,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_NONINTERLACED,
- 0,},
+ /* 2 LVDS modes, had better remove from here */
{
"1080P60", 60, 1920, 1080, 7692,
100, 40,
@@ -516,6 +420,14 @@ static struct fb_videomode video_modes[] = {
0,
FB_VMODE_NONINTERLACED,
0,},
+ {
+ "XGA", 60, 1024, 768, 15385,
+ 220, 40,
+ 21, 7,
+ 60, 10,
+ 0,
+ FB_VMODE_NONINTERLACED,
+ 0,},
};
static struct mxc_w1_config mxc_w1_data = {
@@ -954,7 +866,7 @@ static struct i2c_board_info mxc_i2c0_board_info[] __initdata = {
},
};
-static void sii9022_hdmi_reset(void)
+static void sii902x_hdmi_reset(void)
{
gpio_set_value(MX53_DVI_RESET, 0);
msleep(10);
@@ -962,8 +874,8 @@ static void sii9022_hdmi_reset(void)
msleep(10);
}
-static struct mxc_lcd_platform_data sii9022_hdmi_data = {
- .reset = sii9022_hdmi_reset,
+static struct mxc_lcd_platform_data sii902x_hdmi_data = {
+ .reset = sii902x_hdmi_reset,
};
/* TO DO add platform data */
@@ -990,10 +902,10 @@ static struct i2c_board_info mxc_i2c1_board_info[] __initdata = {
.addr = 0x50,
},
{
- .type = "sii9022",
+ .type = "sii902x",
.addr = 0x39,
.irq = IOMUX_TO_IRQ_V3(MX53_DVI_DETECT),
- .platform_data = &sii9022_hdmi_data,
+ .platform_data = &sii902x_hdmi_data,
},
};
diff --git a/arch/arm/mach-mx5/mx53_loco.c b/arch/arm/mach-mx5/mx53_loco.c
index 8b73c49dba67..041056aa51a2 100644
--- a/arch/arm/mach-mx5/mx53_loco.c
+++ b/arch/arm/mach-mx5/mx53_loco.c
@@ -250,42 +250,6 @@ static iomux_v3_cfg_t mx53_loco_pads[] = {
static struct fb_videomode video_modes[] = {
{
- /* NTSC TV output */
- "TV-NTSC", 60, 720, 480, 74074,
- 122, 15,
- 18, 26,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_INTERLACED,
- 0,},
- {
- /* PAL TV output */
- "TV-PAL", 50, 720, 576, 74074,
- 132, 11,
- 22, 26,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_INTERLACED | FB_VMODE_ODD_FLD_FIRST,
- 0,},
- {
- /* 1080i50 TV output */
- "1080I50", 50, 1920, 1080, 13468,
- 192, 527,
- 20, 24,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_INTERLACED | FB_VMODE_ODD_FLD_FIRST,
- 0,},
- {
- /* 1080i60 TV output */
- "1080I60", 60, 1920, 1080, 13468,
- 192, 87,
- 20, 24,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_INTERLACED | FB_VMODE_ODD_FLD_FIRST,
- 0,},
- {
/* 800x480 @ 57 Hz , pixel clk @ 27MHz */
"CLAA-WVGA", 57, 800, 480, 37037, 40, 60, 10, 10, 20, 10,
FB_SYNC_CLK_LAT_FALL,
@@ -298,40 +262,6 @@ static struct fb_videomode video_modes[] = {
FB_VMODE_NONINTERLACED,
0,},
{
- "XGA", 60, 1024, 768, 15385,
- 220, 40,
- 21, 7,
- 60, 10,
- 0,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
- /* 720p30 TV output */
- "720P30", 30, 1280, 720, 13468,
- 260, 1759,
- 25, 4,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
- "720P60", 60, 1280, 720, 13468,
- 260, 109,
- 25, 4,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
- /* VGA 1280x1024 108M pixel clk output */
- "SXGA", 60, 1280, 1024, 9259,
- 48, 248,
- 1, 38,
- 112, 3,
- 0,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
/* 1600x1200 @ 60 Hz 162M pixel clk*/
"UXGA", 60, 1600, 1200, 6172,
304, 64,
@@ -340,33 +270,7 @@ static struct fb_videomode video_modes[] = {
FB_SYNC_HOR_HIGH_ACT|FB_SYNC_VERT_HIGH_ACT,
FB_VMODE_NONINTERLACED,
0,},
- {
- /* 1080p24 TV output */
- "1080P24", 24, 1920, 1080, 13468,
- 192, 637,
- 38, 6,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
- /* 1080p25 TV output */
- "1080P25", 25, 1920, 1080, 13468,
- 192, 527,
- 38, 6,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
- /* 1080p30 TV output */
- "1080P30", 30, 1920, 1080, 13468,
- 192, 87,
- 38, 6,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_NONINTERLACED,
- 0,},
+ /* 2 LVDS modes, had better remove from here */
{
"1080P60", 60, 1920, 1080, 7692,
100, 40,
@@ -375,6 +279,14 @@ static struct fb_videomode video_modes[] = {
0,
FB_VMODE_NONINTERLACED,
0,},
+ {
+ "XGA", 60, 1024, 768, 15385,
+ 220, 40,
+ 21, 7,
+ 60, 10,
+ 0,
+ FB_VMODE_NONINTERLACED,
+ 0,},
};
static struct platform_pwm_backlight_data mxc_pwm_backlight_data = {
@@ -482,8 +394,8 @@ static struct mxc_fb_platform_data fb_data[] = {
.num_modes = ARRAY_SIZE(video_modes),
},
{
- .interface_pix_fmt = IPU_PIX_FMT_BGR24,
- .mode_str = "XGA",
+ .interface_pix_fmt = IPU_PIX_FMT_GBR24,
+ .mode_str = "1024x768M-16@60",
.mode = video_modes,
.num_modes = ARRAY_SIZE(video_modes),
},
@@ -525,7 +437,7 @@ static int __init mxc_init_fb(void)
}
device_initcall(mxc_init_fb);
-static void sii9022_hdmi_reset(void)
+static void sii902x_hdmi_reset(void)
{
gpio_set_value(DISP0_RESET, 0);
msleep(10);
@@ -533,8 +445,8 @@ static void sii9022_hdmi_reset(void)
msleep(10);
}
-static struct mxc_lcd_platform_data sii9022_hdmi_data = {
- .reset = sii9022_hdmi_reset,
+static struct mxc_lcd_platform_data sii902x_hdmi_data = {
+ .reset = sii902x_hdmi_reset,
};
static struct imxi2c_platform_data mxci2c_data = {
@@ -554,10 +466,10 @@ static struct i2c_board_info mxc_i2c1_board_info[] __initdata = {
.addr = 0x0a,
},
{
- .type = "sii9022",
+ .type = "sii902x",
.addr = 0x39,
.irq = IOMUX_TO_IRQ_V3(DISP0_DET_INT),
- .platform_data = &sii9022_hdmi_data,
+ .platform_data = &sii902x_hdmi_data,
},
};
@@ -822,7 +734,7 @@ static void __init mx53_loco_io_init(void)
gpio_request(USB_PWREN, "usb-pwr");
gpio_direction_output(USB_PWREN, 0);
- /* Sii9022 HDMI controller */
+ /* Sii902x HDMI controller */
gpio_request(DISP0_RESET, "disp0-reset");
gpio_direction_output(DISP0_RESET, 0);
gpio_request(DISP0_DET_INT, "disp0-detect");
diff --git a/arch/arm/mach-mx5/mx53_smd.c b/arch/arm/mach-mx5/mx53_smd.c
index 19c4cfaaa6f5..ad916011c75d 100644
--- a/arch/arm/mach-mx5/mx53_smd.c
+++ b/arch/arm/mach-mx5/mx53_smd.c
@@ -418,82 +418,12 @@ static iomux_v3_cfg_t mx53_smd_pads[] = {
static struct fb_videomode video_modes[] = {
{
- /* NTSC TV output */
- "TV-NTSC", 60, 720, 480, 74074,
- 122, 15,
- 18, 26,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_INTERLACED,
- 0,},
- {
- /* PAL TV output */
- "TV-PAL", 50, 720, 576, 74074,
- 132, 11,
- 22, 26,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_INTERLACED | FB_VMODE_ODD_FLD_FIRST,
- 0,},
- {
- /* 1080i50 TV output */
- "1080I50", 50, 1920, 1080, 13468,
- 192, 527,
- 20, 24,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_INTERLACED | FB_VMODE_ODD_FLD_FIRST,
- 0,},
- {
- /* 1080i60 TV output */
- "1080I60", 60, 1920, 1080, 13468,
- 192, 87,
- 20, 24,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_INTERLACED | FB_VMODE_ODD_FLD_FIRST,
- 0,},
- {
/* 800x480 @ 57 Hz , pixel clk @ 27MHz */
"CLAA-WVGA", 57, 800, 480, 37037, 40, 60, 10, 10, 20, 10,
FB_SYNC_CLK_LAT_FALL,
FB_VMODE_NONINTERLACED,
0,},
{
- "XGA", 60, 1024, 768, 15385,
- 220, 40,
- 21, 7,
- 60, 10,
- 0,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
- /* 720p30 TV output */
- "720P30", 30, 1280, 720, 13468,
- 260, 1759,
- 25, 4,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
- "720P60", 60, 1280, 720, 13468,
- 260, 109,
- 25, 4,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
- /* VGA 1280x1024 108M pixel clk output */
- "SXGA", 60, 1280, 1024, 9259,
- 48, 248,
- 1, 38,
- 112, 3,
- 0,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
/* 1600x1200 @ 60 Hz 162M pixel clk*/
"UXGA", 60, 1600, 1200, 6172,
304, 64,
@@ -502,33 +432,7 @@ static struct fb_videomode video_modes[] = {
FB_SYNC_HOR_HIGH_ACT|FB_SYNC_VERT_HIGH_ACT,
FB_VMODE_NONINTERLACED,
0,},
- {
- /* 1080p24 TV output */
- "1080P24", 24, 1920, 1080, 13468,
- 192, 637,
- 38, 6,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
- /* 1080p25 TV output */
- "1080P25", 25, 1920, 1080, 13468,
- 192, 527,
- 38, 6,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_NONINTERLACED,
- 0,},
- {
- /* 1080p30 TV output */
- "1080P30", 30, 1920, 1080, 13468,
- 192, 87,
- 38, 6,
- 1, 1,
- FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- FB_VMODE_NONINTERLACED,
- 0,},
+ /* 2 LVDS modes, had better remove from here */
{
"1080P60", 60, 1920, 1080, 7692,
100, 40,
@@ -537,6 +441,14 @@ static struct fb_videomode video_modes[] = {
0,
FB_VMODE_NONINTERLACED,
0,},
+ {
+ "XGA", 60, 1024, 768, 15385,
+ 220, 40,
+ 21, 7,
+ 60, 10,
+ 0,
+ FB_VMODE_NONINTERLACED,
+ 0,},
};
static struct platform_pwm_backlight_data mxc_pwm_backlight_data = {
@@ -695,7 +607,7 @@ static int __init mxc_init_fb(void)
}
device_initcall(mxc_init_fb);
-static void sii9022_hdmi_reset(void)
+static void sii902x_hdmi_reset(void)
{
gpio_set_value(MX53_SMD_HDMI_RESET_B, 0);
msleep(10);
@@ -703,8 +615,8 @@ static void sii9022_hdmi_reset(void)
msleep(10);
}
-static struct mxc_lcd_platform_data sii9022_hdmi_data = {
- .reset = sii9022_hdmi_reset,
+static struct mxc_lcd_platform_data sii902x_hdmi_data = {
+ .reset = sii902x_hdmi_reset,
};
static struct imxi2c_platform_data mxci2c_data = {
@@ -793,10 +705,10 @@ static void __init smd_add_device_buttons(void) {}
static struct i2c_board_info mxc_i2c2_board_info[] __initdata = {
{
- .type = "sii9022",
+ .type = "sii902x",
.addr = 0x39,
.irq = IOMUX_TO_IRQ_V3(MX53_SMD_HDMI_INT),
- .platform_data = &sii9022_hdmi_data,
+ .platform_data = &sii902x_hdmi_data,
},
};
@@ -1071,7 +983,7 @@ static void __init mx53_smd_io_init(void)
gpio_direction_output(MX53_SMD_OSC_CKIH1_EN, 1);
gpio_set_value(MX53_SMD_OSC_CKIH1_EN, 1);
- /* Sii9022 HDMI controller */
+ /* Sii902x HDMI controller */
gpio_request(MX53_SMD_HDMI_RESET_B, "disp0-pwr-en");
gpio_direction_output(MX53_SMD_HDMI_RESET_B, 0);
gpio_request(MX53_SMD_HDMI_INT, "disp0-det-int");