summaryrefslogtreecommitdiff
path: root/drivers/video
diff options
context:
space:
mode:
authorStefan Agner <stefan.agner@toradex.com>2014-01-28 17:34:19 +0100
committerStefan Agner <stefan.agner@toradex.com>2014-01-29 15:12:40 +0100
commit8a87a46328d2e248cf11e1d2588ef42d67110b73 (patch)
treeaea8d403b8cfb528a2e55f621ef29659895b2845 /drivers/video
parentfbc6268fac01db1618eaa34c981d63a720d27c65 (diff)
video: tegra: remove special clocks for Tegra 2
Remove special clocks for Tegra 2, but use backup clock source instead. This allows to run all common used resolution within the drivers -1/+9% allowed band for pixelclock exactness.
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/tegra/dc/mode.c135
1 files changed, 60 insertions, 75 deletions
diff --git a/drivers/video/tegra/dc/mode.c b/drivers/video/tegra/dc/mode.c
index f61d0bf7d6da..f5cd4fb0cdea 100644
--- a/drivers/video/tegra/dc/mode.c
+++ b/drivers/video/tegra/dc/mode.c
@@ -27,25 +27,6 @@
#include "dc_priv.h"
const struct fb_videomode tegra_modes[] = {
- /* TouchRevolution Fusion 10" aka Chunghwa Picture Tubes
- * CLAA100NC05 10.1 inch 1024x600 single channel LVDS panel
- */
- {
- .name = "1024x600",
- .refresh = 60,
- .xres = 1024,
- .yres = 600,
- .pixclock = KHZ2PICOS(48000),
- .left_margin = 104,
- .right_margin = 43,
- .upper_margin = 24,
- .lower_margin = 20,
- .hsync_len = 5,
- .vsync_len = 5,
- .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- .flag = FB_FLAG_RATIO_16_9,
- .vmode = FB_VMODE_NONINTERLACED
- },
/* EDT 5.7" ET070080DH or TouchRevolution Fusion 7" */
{
.name = "800x480",
@@ -63,50 +44,23 @@ const struct fb_videomode tegra_modes[] = {
.flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED
},
- /* Portrait modes */
- {
- .name = "480x640",
- .refresh = 60,
- .xres = 480,
- .yres = 640,
- .pixclock = 55555,
- .left_margin = 20,
- .right_margin = 8,
- .upper_margin = 7,
- .lower_margin = 8,
- .hsync_len = 4,
- .vsync_len = 1,
- .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- .vmode = FB_VMODE_NONINTERLACED
- },
- {
- .name = "540x960",
- .refresh = 60,
- .xres = 540,
- .yres = 960,
- .pixclock = 100000,
- .left_margin = 32,
- .right_margin = 32,
- .upper_margin = 1,
- .lower_margin = 2,
- .hsync_len = 16,
- .vsync_len = 1,
- .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
- .vmode = FB_VMODE_NONINTERLACED
- },
+ /* TouchRevolution Fusion 10" aka Chunghwa Picture Tubes
+ * CLAA100NC05 10.1 inch 1024x600 single channel LVDS panel
+ */
{
- .name = "720x1280",
+ .name = "1024x600",
.refresh = 60,
- .xres = 720,
- .yres = 1280,
- .pixclock = 16282,
- .left_margin = 100,
- .right_margin = 4,
- .upper_margin = 14,
- .lower_margin = 4,
- .hsync_len = 4,
- .vsync_len = 4,
+ .xres = 1024,
+ .yres = 600,
+ .pixclock = KHZ2PICOS(48000),
+ .left_margin = 104,
+ .right_margin = 43,
+ .upper_margin = 24,
+ .lower_margin = 20,
+ .hsync_len = 5,
+ .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED
},
{
@@ -129,11 +83,7 @@ const struct fb_videomode tegra_modes[] = {
.refresh = 60,
.xres = 1680,
.yres = 1050,
-#ifdef CONFIG_MACH_COLIBRI_T20
- .pixclock = KHZ2PICOS(144000),
-#else
.pixclock = KHZ2PICOS(147140),
-#endif
.hsync_len = 184, /* h_sync_width */
.vsync_len = 3, /* v_sync_width */
.left_margin = 288, /* h_back_porch */
@@ -148,14 +98,7 @@ const struct fb_videomode tegra_modes[] = {
.refresh = 60,
.xres = 1920,
.yres = 1080,
-#ifdef CONFIG_MACH_COLIBRI_T20
-/* We need to choose too small pixelclocks because parent clock system
- * doesn't allow exact pixelclocks
- */
- .pixclock = KHZ2PICOS(144000),
-#else
.pixclock = KHZ2PICOS(148500),
-#endif
.hsync_len = 44, /* h_sync_width */
.vsync_len = 5, /* v_sync_width */
.left_margin = 148, /* h_back_porch */
@@ -170,11 +113,7 @@ const struct fb_videomode tegra_modes[] = {
.refresh = 60,
.xres = 1920,
.yres = 1200,
-#ifdef CONFIG_MACH_COLIBRI_T20
- .pixclock = KHZ2PICOS(144000),
-#else
.pixclock = KHZ2PICOS(154000),
-#endif
.hsync_len = 32, /* h_sync_width */
.vsync_len = 6, /* v_sync_width */
.left_margin = 80, /* h_back_porch */
@@ -184,6 +123,52 @@ const struct fb_videomode tegra_modes[] = {
.vmode = FB_VMODE_NONINTERLACED,
.sync = 0,
},
+ /* Portrait modes */
+ {
+ .name = "480x640",
+ .refresh = 60,
+ .xres = 480,
+ .yres = 640,
+ .pixclock = 55555,
+ .left_margin = 20,
+ .right_margin = 8,
+ .upper_margin = 7,
+ .lower_margin = 8,
+ .hsync_len = 4,
+ .vsync_len = 1,
+ .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .vmode = FB_VMODE_NONINTERLACED
+ },
+ {
+ .name = "540x960",
+ .refresh = 60,
+ .xres = 540,
+ .yres = 960,
+ .pixclock = 100000,
+ .left_margin = 32,
+ .right_margin = 32,
+ .upper_margin = 1,
+ .lower_margin = 2,
+ .hsync_len = 16,
+ .vsync_len = 1,
+ .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .vmode = FB_VMODE_NONINTERLACED
+ },
+ {
+ .name = "720x1280",
+ .refresh = 60,
+ .xres = 720,
+ .yres = 1280,
+ .pixclock = 16282,
+ .left_margin = 100,
+ .right_margin = 4,
+ .upper_margin = 14,
+ .lower_margin = 4,
+ .hsync_len = 4,
+ .vsync_len = 4,
+ .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .vmode = FB_VMODE_NONINTERLACED
+ },
};
/* try to find best matching mode using our modes, VESA and CEA modes from