All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] [v2] video: Add SHARP LQ084S3LG01 LCD support on P1022DS
@ 2011-05-26 14:02 Timur Tabi
  2011-07-04 22:27 ` Anatolij Gustschin
  0 siblings, 1 reply; 4+ messages in thread
From: Timur Tabi @ 2011-05-26 14:02 UTC (permalink / raw)
  To: u-boot

The SHARP LQ084S3LG01 is a TFT LCD used on the P1022DS (revision "C") board.
This device only supports 800x600 resolution, so if that resolution is selected,
assume that this is the device.  The device is attached to the LVDS port
on the P1022DS board.

The existing 800x600 entry (for the PDM360NG board) is actually 800x480,
so we fix that.  To support two different 800x resolutions, the Y-resolution
is now passed to fsl_diu_init() and both values are used to pick the proper
fb_videomode structure.

The data for the 800x600 video mode is originally from Jiang Yutang.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Jiang Yutang <b14898@freescale.com>
---
 arch/powerpc/cpu/mpc512x/diu.c                |    2 +-
 board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c |    2 +-
 board/freescale/p1022ds/diu.c                 |    2 +-
 drivers/video/fsl_diu_fb.c                    |   51 +++++++++++++++++-------
 include/fsl_diu_fb.h                          |    2 +-
 5 files changed, 40 insertions(+), 19 deletions(-)

diff --git a/arch/powerpc/cpu/mpc512x/diu.c b/arch/powerpc/cpu/mpc512x/diu.c
index 9dc1e48..b7db249 100644
--- a/arch/powerpc/cpu/mpc512x/diu.c
+++ b/arch/powerpc/cpu/mpc512x/diu.c
@@ -56,5 +56,5 @@ int platform_diu_init(unsigned int xres, unsigned int yres, const char *port)
 	unsigned int pixel_format = 0x88883316;
 
 	debug("mpc5121_diu_init\n");
-	return fsl_diu_init(xres, pixel_format, 0);
+	return fsl_diu_init(xres, yres, pixel_format, 0);
 }
diff --git a/board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c b/board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c
index 3011bb8..358a432 100644
--- a/board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c
+++ b/board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c
@@ -83,5 +83,5 @@ int platform_diu_init(unsigned int xres, unsigned int yres, const char *port)
 	printf("DIU:   Switching to %s monitor @ %ux%u\n", name, xres, yres);
 	out_8(&pixis->brdcfg0, temp);
 
-	return fsl_diu_init(xres, pixel_format, gamma_fix);
+	return fsl_diu_init(xres, yres, pixel_format, gamma_fix);
 }
diff --git a/board/freescale/p1022ds/diu.c b/board/freescale/p1022ds/diu.c
index 7d1f6aa..cef81ce 100644
--- a/board/freescale/p1022ds/diu.c
+++ b/board/freescale/p1022ds/diu.c
@@ -139,7 +139,7 @@ int platform_diu_init(unsigned int xres, unsigned int yres, const char *port)
 	clrsetbits_be32(&gur->pmuxcr, PMUXCR_ELBCDIU_MASK, PMUXCR_ELBCDIU_DIU);
 	pmuxcr = in_be32(&gur->pmuxcr);
 
-	return fsl_diu_init(xres, pixel_format, 0);
+	return fsl_diu_init(xres, yres, pixel_format, 0);
 }
 
 /*
diff --git a/drivers/video/fsl_diu_fb.c b/drivers/video/fsl_diu_fb.c
index 0709849..e1d6c26 100644
--- a/drivers/video/fsl_diu_fb.c
+++ b/drivers/video/fsl_diu_fb.c
@@ -78,13 +78,9 @@ struct fb_videomode {
 	unsigned int flag;
 };
 
-#define FB_SYNC_VERT_HIGH_ACT	2	/* vertical sync high active	*/
-#define FB_SYNC_COMP_HIGH_ACT	8	/* composite sync high active   */
-#define FB_VMODE_NONINTERLACED  0	/* non interlaced */
-
 /* This setting is used for the ifm pdm360ng with PRIMEVIEW PM070WL3 */
-static struct fb_videomode fsl_diu_mode_800 = {
-	.name		= "800x600-60",
+static struct fb_videomode fsl_diu_mode_800_480 = {
+	.name		= "800x480-60",
 	.refresh	= 60,
 	.xres		= 800,
 	.yres		= 480,
@@ -99,13 +95,30 @@ static struct fb_videomode fsl_diu_mode_800 = {
 	.vmode		= FB_VMODE_NONINTERLACED
 };
 
+/* For the SHARP LQ084S3LG01, used on the P1022DS board */
+static struct fb_videomode fsl_diu_mode_800_600 = {
+	.name		= "800x600-60",
+	.refresh	= 60,
+	.xres		= 800,
+	.yres		= 600,
+	.pixclock	= 25000,
+	.left_margin	= 88,
+	.right_margin	= 40,
+	.upper_margin	= 23,
+	.lower_margin	= 1,
+	.hsync_len	= 128,
+	.vsync_len	= 4,
+	.sync		= FB_SYNC_COMP_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+	.vmode		= FB_VMODE_NONINTERLACED
+};
+
 /*
  * These parameters give default parameters
  * for video output 1024x768,
  * FIXME - change timing to proper amounts
  * hsync 31.5kHz, vsync 60Hz
  */
-static struct fb_videomode fsl_diu_mode_1024 = {
+static struct fb_videomode fsl_diu_mode_1024_768 = {
 	.name		= "1024x768-60",
 	.refresh	= 60,
 	.xres		= 1024,
@@ -121,7 +134,7 @@ static struct fb_videomode fsl_diu_mode_1024 = {
 	.vmode		= FB_VMODE_NONINTERLACED
 };
 
-static struct fb_videomode fsl_diu_mode_1280 = {
+static struct fb_videomode fsl_diu_mode_1280_1024 = {
 	.name		= "1280x1024-60",
 	.refresh	= 60,
 	.xres		= 1280,
@@ -263,7 +276,7 @@ static struct diu_ad *allocate_fb(unsigned int xres, unsigned int yres,
 	return ad;
 }
 
-int fsl_diu_init(int xres, u32 pixel_format, int gamma_fix)
+int fsl_diu_init(u16 xres, u16 yres, u32 pixel_format, int gamma_fix)
 {
 	struct fb_videomode *fsl_diu_mode_db;
 	struct diu_ad *ad;
@@ -274,15 +287,23 @@ int fsl_diu_init(int xres, u32 pixel_format, int gamma_fix)
 	struct diu_addr gamma;
 	struct diu_addr cursor;
 
-	switch (xres) {
-	case 800:
-		fsl_diu_mode_db = &fsl_diu_mode_800;
+/* Convert the X,Y resolution pair into a single number */
+#define RESOLUTION(x, y) (((u32)(x) << 16) | (y))
+
+	switch (RESOLUTION(xres, yres)) {
+	case RESOLUTION(800, 480):
+		fsl_diu_mode_db = &fsl_diu_mode_800_480;
 		break;
-	case 1280:
-		fsl_diu_mode_db = &fsl_diu_mode_1280;
+	case RESOLUTION(800, 600):
+		fsl_diu_mode_db = &fsl_diu_mode_800_600;
+	case RESOLUTION(1024, 768):
+		fsl_diu_mode_db = &fsl_diu_mode_1024_768;
+	case RESOLUTION(1280, 1024):
+		fsl_diu_mode_db = &fsl_diu_mode_1280_1024;
 		break;
 	default:
-		fsl_diu_mode_db = &fsl_diu_mode_1024;
+		printf("DIU:   Unsupported resolution %ux%u\n", xres, yres);
+		return -1;
 	}
 
 	/* The AD struct for the dummy framebuffer and the FB itself */
diff --git a/include/fsl_diu_fb.h b/include/fsl_diu_fb.h
index 4c89f4b..a58e7e2 100644
--- a/include/fsl_diu_fb.h
+++ b/include/fsl_diu_fb.h
@@ -24,7 +24,7 @@
  * MA 02111-1307 USA
  */
 
-int fsl_diu_init(int xres, u32 pixel_format, int gamma_fix);
+int fsl_diu_init(u16 xres, u16 yres, u32 pixel_format, int gamma_fix);
 
 /* Prototypes for external board-specific functions */
 int platform_diu_init(unsigned int xres, unsigned int yres, const char *port);
-- 
1.7.3.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [U-Boot] [PATCH] [v2] video: Add SHARP LQ084S3LG01 LCD support on P1022DS
  2011-05-26 14:02 [U-Boot] [PATCH] [v2] video: Add SHARP LQ084S3LG01 LCD support on P1022DS Timur Tabi
@ 2011-07-04 22:27 ` Anatolij Gustschin
  2011-07-27 21:25   ` Wolfgang Denk
  0 siblings, 1 reply; 4+ messages in thread
From: Anatolij Gustschin @ 2011-07-04 22:27 UTC (permalink / raw)
  To: u-boot

On Thu, 26 May 2011 09:02:17 -0500
Timur Tabi <timur@freescale.com> wrote:

> The SHARP LQ084S3LG01 is a TFT LCD used on the P1022DS (revision "C") board.
> This device only supports 800x600 resolution, so if that resolution is selected,
> assume that this is the device.  The device is attached to the LVDS port
> on the P1022DS board.
> 
> The existing 800x600 entry (for the PDM360NG board) is actually 800x480,
> so we fix that.  To support two different 800x resolutions, the Y-resolution
> is now passed to fsl_diu_init() and both values are used to pick the proper
> fb_videomode structure.
> 
> The data for the 800x600 video mode is originally from Jiang Yutang.
> 
> Signed-off-by: Timur Tabi <timur@freescale.com>
> Signed-off-by: Jiang Yutang <b14898@freescale.com>
> ---
>  arch/powerpc/cpu/mpc512x/diu.c                |    2 +-
>  board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c |    2 +-
>  board/freescale/p1022ds/diu.c                 |    2 +-
>  drivers/video/fsl_diu_fb.c                    |   51 +++++++++++++++++-------
>  include/fsl_diu_fb.h                          |    2 +-
>  5 files changed, 40 insertions(+), 19 deletions(-)

applied to u-boot-video/master. Thanks!

Anatolij

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [U-Boot] [PATCH] [v2] video: Add SHARP LQ084S3LG01 LCD support on P1022DS
  2011-07-04 22:27 ` Anatolij Gustschin
@ 2011-07-27 21:25   ` Wolfgang Denk
  2011-07-27 21:45     ` Anatolij Gustschin
  0 siblings, 1 reply; 4+ messages in thread
From: Wolfgang Denk @ 2011-07-27 21:25 UTC (permalink / raw)
  To: u-boot

Dear Anatolij Gustschin,

In message <20110705002700.2e54086d@wker> you wrote:
>
> >  arch/powerpc/cpu/mpc512x/diu.c                |    2 +-
> >  board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c |    2 +-
> >  board/freescale/p1022ds/diu.c                 |    2 +-
> >  drivers/video/fsl_diu_fb.c                    |   51 +++++++++++++++++-------
> >  include/fsl_diu_fb.h                          |    2 +-
> >  5 files changed, 40 insertions(+), 19 deletions(-)
> 
> applied to u-boot-video/master. Thanks!

I don't think I have seen your pull request yet.  What are your plans
for sending it?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
When the tide of life turns against you
And the current upsets your boat
Don't waste tears on what might have been
Just lie on your back and float.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [U-Boot] [PATCH] [v2] video: Add SHARP LQ084S3LG01 LCD support on P1022DS
  2011-07-27 21:25   ` Wolfgang Denk
@ 2011-07-27 21:45     ` Anatolij Gustschin
  0 siblings, 0 replies; 4+ messages in thread
From: Anatolij Gustschin @ 2011-07-27 21:45 UTC (permalink / raw)
  To: u-boot

Hello Wolfgang,

On Wed, 27 Jul 2011 23:25:29 +0200
Wolfgang Denk <wd@denx.de> wrote:

> Dear Anatolij Gustschin,
> 
> In message <20110705002700.2e54086d@wker> you wrote:
> >
> > >  arch/powerpc/cpu/mpc512x/diu.c                |    2 +-
> > >  board/freescale/mpc8610hpcd/mpc8610hpcd_diu.c |    2 +-
> > >  board/freescale/p1022ds/diu.c                 |    2 +-
> > >  drivers/video/fsl_diu_fb.c                    |   51 +++++++++++++++++-------
> > >  include/fsl_diu_fb.h                          |    2 +-
> > >  5 files changed, 40 insertions(+), 19 deletions(-)
> > 
> > applied to u-boot-video/master. Thanks!
> 
> I don't think I have seen your pull request yet.  What are your plans
> for sending it?

I've send a pull request for some video patches, including this one,
on 5 Jul 2011, I believe. It is also on patchwork

http://patchwork.ozlabs.org/patch/103178/

Best regards,
Anatolij

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-07-27 21:45 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-05-26 14:02 [U-Boot] [PATCH] [v2] video: Add SHARP LQ084S3LG01 LCD support on P1022DS Timur Tabi
2011-07-04 22:27 ` Anatolij Gustschin
2011-07-27 21:25   ` Wolfgang Denk
2011-07-27 21:45     ` Anatolij Gustschin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.