* [PATCH v2] video: da8xx-fb: Increased resolution configuration of revised LCDC IP
@ 2011-07-13 11:04 Manjunathappa, Prakash
2011-07-14 10:35 ` [PATCH v2] video: da8xx-fb: Increased resolution configuration Sergei Shtylyov
2011-07-14 11:14 ` Manjunathappa, Prakash
0 siblings, 2 replies; 3+ messages in thread
From: Manjunathappa, Prakash @ 2011-07-13 11:04 UTC (permalink / raw)
To: linux-fbdev
Revised LCD controller in upcoming TI SoC which is an updated version of
LCDC IP that was found on TI's DA850 SoC supports 2048*2048 resolution.
Below are the encoding details:
Width:
Pixels Per Line = {pplmsb, ppllsb, 4'b1111} + 1
Where pplmsb:1bit=>Raster Timing0[3], ppllsb:6bits=>Raster Timing0[9:4].
And encoded value can range from 16 to 2048 in multiples of 16.
Height:
Lines Per Panel = {lpp_b10, lpp}
Where lpp:10bits=>Raster Timing1[9:0], lpp_b10:1bit=>Raster Timing2[26].
And encoded value can range from 1 to 2048, programmable range is 0 to
2047.
Patch is verified on emulation platform of upcoming SoC for updated
feature and on DA850 platform to make sure nothing existing breaks.
Signed-off-by: Manjunathappa, Prakash <prakash.pm@ti.com>
---
Since v1:
1)Fixed the bug in configuration of lpp_b10 in Raster Timing2[26] register.
2)Reframed commit message.
drivers/video/da8xx-fb.c | 31 ++++++++++++++++++++++++++++---
1 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
index 620f1c3..19ce407 100644
--- a/drivers/video/da8xx-fb.c
+++ b/drivers/video/da8xx-fb.c
@@ -460,18 +460,43 @@ static int lcd_cfg_frame_buffer(struct da8xx_fb_par *par, u32 width, u32 height,
/* Set the Panel Width */
/* Pixels per line = (PPL + 1)*16 */
- /*0x3F in bits 4..9 gives max horisontal resolution = 1024 pixels*/
- width &= 0x3f0;
+ if (lcd_revision = LCD_VERSION_1) {
+ /*
+ * 0x3F in bits 4..9 gives max horizontal resolution = 1024
+ * pixels.
+ */
+ width &= 0x3f0;
+ } else {
+ /*
+ * 0x7F in bits 3..9 gives max horizontal resolution = 2048
+ * pixels.
+ */
+ width &= 0x7f0;
+ }
+
reg = lcdc_read(LCD_RASTER_TIMING_0_REG);
reg &= 0xfffffc00;
- reg |= ((width >> 4) - 1) << 4;
+ if (lcd_revision = LCD_VERSION_1) {
+ reg |= ((width >> 4) - 1) << 4;
+ } else {
+ width = ((width >> 4) - 1);
+ reg |= ((width & 0x3f) << 4) | ((width & 0x40) >> 3);
+ }
lcdc_write(reg, LCD_RASTER_TIMING_0_REG);
/* Set the Panel Height */
+ /* Set bits 9:0 of Lines Per Pixel */
reg = lcdc_read(LCD_RASTER_TIMING_1_REG);
reg = ((height - 1) & 0x3ff) | (reg & 0xfffffc00);
lcdc_write(reg, LCD_RASTER_TIMING_1_REG);
+ /* Set bit 10 of Lines Per Pixel */
+ if (lcd_revision = LCD_VERSION_2) {
+ reg = lcdc_read(LCD_RASTER_TIMING_2_REG);
+ reg |= (((height - 1) & 0x400) << 16);
+ lcdc_write(reg, LCD_RASTER_TIMING_2_REG);
+ }
+
/* Set the Raster Order of the Frame Buffer */
reg = lcdc_read(LCD_RASTER_CTRL_REG) & ~(1 << 8);
if (raster_order)
--
1.7.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2] video: da8xx-fb: Increased resolution configuration
2011-07-13 11:04 [PATCH v2] video: da8xx-fb: Increased resolution configuration of revised LCDC IP Manjunathappa, Prakash
@ 2011-07-14 10:35 ` Sergei Shtylyov
2011-07-14 11:14 ` Manjunathappa, Prakash
1 sibling, 0 replies; 3+ messages in thread
From: Sergei Shtylyov @ 2011-07-14 10:35 UTC (permalink / raw)
To: linux-fbdev
Hello.
On 13-07-2011 14:52, Manjunathappa, Prakash wrote:
> Revised LCD controller in upcoming TI SoC which is an updated version of
> LCDC IP that was found on TI's DA850 SoC supports 2048*2048 resolution.
> Below are the encoding details:
> Width:
> Pixels Per Line = {pplmsb, ppllsb, 4'b1111} + 1
> Where pplmsb:1bit=>Raster Timing0[3], ppllsb:6bits=>Raster Timing0[9:4].
> And encoded value can range from 16 to 2048 in multiples of 16.
> Height:
> Lines Per Panel = {lpp_b10, lpp}
> Where lpp:10bits=>Raster Timing1[9:0], lpp_b10:1bit=>Raster Timing2[26].
> And encoded value can range from 1 to 2048, programmable range is 0 to
> 2047.
> Patch is verified on emulation platform of upcoming SoC for updated
> feature and on DA850 platform to make sure nothing existing breaks.
> Signed-off-by: Manjunathappa, Prakash<prakash.pm@ti.com>
> ---
> Since v1:
> 1)Fixed the bug in configuration of lpp_b10 in Raster Timing2[26] register.
> 2)Reframed commit message.
> drivers/video/da8xx-fb.c | 31 ++++++++++++++++++++++++++++---
> 1 files changed, 28 insertions(+), 3 deletions(-)
> diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
> index 620f1c3..19ce407 100644
> --- a/drivers/video/da8xx-fb.c
> +++ b/drivers/video/da8xx-fb.c
> @@ -460,18 +460,43 @@ static int lcd_cfg_frame_buffer(struct da8xx_fb_par *par, u32 width, u32 height,
>
> /* Set the Panel Width */
> /* Pixels per line = (PPL + 1)*16 */
> - /*0x3F in bits 4..9 gives max horisontal resolution = 1024 pixels*/
> - width&= 0x3f0;
> + if (lcd_revision = LCD_VERSION_1) {
> + /*
> + * 0x3F in bits 4..9 gives max horizontal resolution = 1024
> + * pixels.
> + */
> + width&= 0x3f0;
> + } else {
> + /*
> + * 0x7F in bits 3..9 gives max horizontal resolution = 2048
Maybe bits 4..10?
> + * pixels.
> + */
> + width&= 0x7f0;
> + }
> +
> reg = lcdc_read(LCD_RASTER_TIMING_0_REG);
> reg &= 0xfffffc00;
> - reg |= ((width >> 4) - 1) << 4;
> + if (lcd_revision = LCD_VERSION_1) {
> + reg |= ((width>> 4) - 1)<< 4;
> + } else {
> + width = ((width>> 4) - 1);
Most outer parens not needed.
> + reg |= ((width & 0x3f) << 4) | ((width& 0x40) >> 3);
> + }
> lcdc_write(reg, LCD_RASTER_TIMING_0_REG);
>
> /* Set the Panel Height */
> + /* Set bits 9:0 of Lines Per Pixel */
> reg = lcdc_read(LCD_RASTER_TIMING_1_REG);
> reg = ((height - 1) & 0x3ff) | (reg & 0xfffffc00);
> lcdc_write(reg, LCD_RASTER_TIMING_1_REG);
>
> + /* Set bit 10 of Lines Per Pixel */
> + if (lcd_revision = LCD_VERSION_2) {
> + reg = lcdc_read(LCD_RASTER_TIMING_2_REG);
> + reg |= (((height - 1) & 0x400) << 16);
Most outer parens not needed.
WBR, Sergei
^ permalink raw reply [flat|nested] 3+ messages in thread
* RE: [PATCH v2] video: da8xx-fb: Increased resolution configuration
2011-07-13 11:04 [PATCH v2] video: da8xx-fb: Increased resolution configuration of revised LCDC IP Manjunathappa, Prakash
2011-07-14 10:35 ` [PATCH v2] video: da8xx-fb: Increased resolution configuration Sergei Shtylyov
@ 2011-07-14 11:14 ` Manjunathappa, Prakash
1 sibling, 0 replies; 3+ messages in thread
From: Manjunathappa, Prakash @ 2011-07-14 11:14 UTC (permalink / raw)
To: linux-fbdev
Hi Sergei,
On Thu, Jul 14, 2011 at 16:05:35, Sergei Shtylyov wrote:
> Hello.
>
> On 13-07-2011 14:52, Manjunathappa, Prakash wrote:
>
> > Revised LCD controller in upcoming TI SoC which is an updated version of
> > LCDC IP that was found on TI's DA850 SoC supports 2048*2048 resolution.
> > Below are the encoding details:
> > Width:
> > Pixels Per Line = {pplmsb, ppllsb, 4'b1111} + 1
> > Where pplmsb:1bit=>Raster Timing0[3], ppllsb:6bits=>Raster Timing0[9:4].
> > And encoded value can range from 16 to 2048 in multiples of 16.
>
> > Height:
> > Lines Per Panel = {lpp_b10, lpp}
> > Where lpp:10bits=>Raster Timing1[9:0], lpp_b10:1bit=>Raster Timing2[26].
> > And encoded value can range from 1 to 2048, programmable range is 0 to
> > 2047.
>
> > Patch is verified on emulation platform of upcoming SoC for updated
> > feature and on DA850 platform to make sure nothing existing breaks.
>
> > Signed-off-by: Manjunathappa, Prakash<prakash.pm@ti.com>
> > ---
> > Since v1:
> > 1)Fixed the bug in configuration of lpp_b10 in Raster Timing2[26] register.
> > 2)Reframed commit message.
> > drivers/video/da8xx-fb.c | 31 ++++++++++++++++++++++++++++---
> > 1 files changed, 28 insertions(+), 3 deletions(-)
>
> > diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
> > index 620f1c3..19ce407 100644
> > --- a/drivers/video/da8xx-fb.c
> > +++ b/drivers/video/da8xx-fb.c
> > @@ -460,18 +460,43 @@ static int lcd_cfg_frame_buffer(struct da8xx_fb_par *par, u32 width, u32 height,
> >
> > /* Set the Panel Width */
> > /* Pixels per line = (PPL + 1)*16 */
> > - /*0x3F in bits 4..9 gives max horisontal resolution = 1024 pixels*/
> > - width&= 0x3f0;
> > + if (lcd_revision = LCD_VERSION_1) {
> > + /*
> > + * 0x3F in bits 4..9 gives max horizontal resolution = 1024
> > + * pixels.
> > + */
> > + width&= 0x3f0;
> > + } else {
> > + /*
> > + * 0x7F in bits 3..9 gives max horizontal resolution = 2048
>
> Maybe bits 4..10?
Correct, I will fix this comment.
>
> > + * pixels.
> > + */
> > + width&= 0x7f0;
> > + }
> > +
> > reg = lcdc_read(LCD_RASTER_TIMING_0_REG);
> > reg &= 0xfffffc00;
> > - reg |= ((width >> 4) - 1) << 4;
> > + if (lcd_revision = LCD_VERSION_1) {
> > + reg |= ((width>> 4) - 1)<< 4;
> > + } else {
> > + width = ((width>> 4) - 1);
>
> Most outer parens not needed.
Ok. I will remove them.
>
> > + reg |= ((width & 0x3f) << 4) | ((width& 0x40) >> 3);
> > + }
> > lcdc_write(reg, LCD_RASTER_TIMING_0_REG);
> >
> > /* Set the Panel Height */
> > + /* Set bits 9:0 of Lines Per Pixel */
> > reg = lcdc_read(LCD_RASTER_TIMING_1_REG);
> > reg = ((height - 1) & 0x3ff) | (reg & 0xfffffc00);
> > lcdc_write(reg, LCD_RASTER_TIMING_1_REG);
> >
> > + /* Set bit 10 of Lines Per Pixel */
> > + if (lcd_revision = LCD_VERSION_2) {
> > + reg = lcdc_read(LCD_RASTER_TIMING_2_REG);
> > + reg |= (((height - 1) & 0x400) << 16);
>
> Most outer parens not needed.
Ok. I will remove them.
Thanks,
Prakash
>
> WBR, Sergei
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-07-14 11:14 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-13 11:04 [PATCH v2] video: da8xx-fb: Increased resolution configuration of revised LCDC IP Manjunathappa, Prakash
2011-07-14 10:35 ` [PATCH v2] video: da8xx-fb: Increased resolution configuration Sergei Shtylyov
2011-07-14 11:14 ` Manjunathappa, Prakash
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).