Re: [Linux-fbdev-devel] [PATCH 06/20] omapfb: Add support for the OMAP2EVM LCD

2009-06-16 Thread Imre Deak
On Sun, Jun 14, 2009 at 11:30:27PM +0200, ext Krzysztof Helt wrote:
> On Thu,  4 Jun 2009 20:52:31 +0300
> Imre Deak  wrote:
> 
> > From: arun c 
> > 
> > omap2evm LCD supports VGA and QVGA resolution, by default its in VGA mode.
> > 
> > Signed-off-by: Arun C 
> > Signed-off-by: Tony Lindgren 
> > Fixed-by: Jarkko Nikula 
> > Fixed-by: David Brownell 
> > Signed-off-by: Imre Deak 
> > ---
> >  drivers/video/omap/Makefile   |1 +
> >  drivers/video/omap/lcd_omap2evm.c |  189 
> > +
> >  2 files changed, 190 insertions(+), 0 deletions(-)
> >  create mode 100644 drivers/video/omap/lcd_omap2evm.c
> > 
> > diff --git a/drivers/video/omap/Makefile b/drivers/video/omap/Makefile
> > index 7a37b03..c2475e3 100644
> > --- a/drivers/video/omap/Makefile
> > +++ b/drivers/video/omap/Makefile
> > @@ -27,6 +27,7 @@ objs-y$(CONFIG_MACH_OMAP_OSK) += lcd_osk.o
> >  
> >  objs-y$(CONFIG_MACH_OMAP_APOLLON) += lcd_apollon.o
> >  objs-y$(CONFIG_MACH_OMAP_2430SDP) += lcd_2430sdp.o
> > +objs-y$(CONFIG_MACH_OMAP2EVM) += lcd_omap2evm.o
> >  objs-y$(CONFIG_FB_OMAP_LCD_MIPID) += lcd_mipid.o
> >  
> >  omapfb-objs := $(objs-yy)
> diff --git a/drivers/video/omap/lcd_omap2evm.c 
> b/drivers/video/omap/lcd_omap2evm.c
> new file mode 100644
> index 000..2fc46c2
> --- /dev/null
> +++ b/drivers/video/omap/lcd_omap2evm.c
> @@ -0,0 +1,189 @@
> +/*
> + * LCD panel support for the MISTRAL OMAP2EVM board
> + *
> + * Author: Arun C 
> + *
> + * Derived from drivers/video/omap/lcd_omap3evm.c
> + * Derived from drivers/video/omap/lcd-apollon.c
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License as published by the
> + * Free Software Foundation; either version 2 of the License, or (at your
> + * option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful, but
> + * WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + * General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License along
> + * with this program; if not, write to the Free Software Foundation, Inc.,
> + * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
> + */
> +
> +#include 
> +#include 
> +#include 
> +#include 
> +
> +#include 
> +#include 
> +#include 
> +
> +#define LCD_PANEL_ENABLE_GPIO154
> +#define LCD_PANEL_LR 128
> +#define LCD_PANEL_UD 129
> +#define LCD_PANEL_INI152
> +#define LCD_PANEL_QVGA   148
> +#define LCD_PANEL_RESB   153
> +
> +#define LCD_XRES 480
> +#define LCD_YRES 640
> +#define LCD_PIXCLOCK_MAX 2 /* in kHz */
> 
> You can drop defines used only once. There are no such defines for some other 
> panels
> in your patches.

Ok, fixing it.

--Imre


--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [Linux-fbdev-devel] [PATCH 06/20] omapfb: Add support for the OMAP2EVM LCD

2009-06-14 Thread Krzysztof Helt
On Thu,  4 Jun 2009 20:52:31 +0300
Imre Deak  wrote:

> From: arun c 
> 
> omap2evm LCD supports VGA and QVGA resolution, by default its in VGA mode.
> 
> Signed-off-by: Arun C 
> Signed-off-by: Tony Lindgren 
> Fixed-by: Jarkko Nikula 
> Fixed-by: David Brownell 
> Signed-off-by: Imre Deak 
> ---
>  drivers/video/omap/Makefile   |1 +
>  drivers/video/omap/lcd_omap2evm.c |  189 
> +
>  2 files changed, 190 insertions(+), 0 deletions(-)
>  create mode 100644 drivers/video/omap/lcd_omap2evm.c
> 
> diff --git a/drivers/video/omap/Makefile b/drivers/video/omap/Makefile
> index 7a37b03..c2475e3 100644
> --- a/drivers/video/omap/Makefile
> +++ b/drivers/video/omap/Makefile
> @@ -27,6 +27,7 @@ objs-y$(CONFIG_MACH_OMAP_OSK) += lcd_osk.o
>  
>  objs-y$(CONFIG_MACH_OMAP_APOLLON) += lcd_apollon.o
>  objs-y$(CONFIG_MACH_OMAP_2430SDP) += lcd_2430sdp.o
> +objs-y$(CONFIG_MACH_OMAP2EVM) += lcd_omap2evm.o
>  objs-y$(CONFIG_FB_OMAP_LCD_MIPID) += lcd_mipid.o
>  
>  omapfb-objs := $(objs-yy)
diff --git a/drivers/video/omap/lcd_omap2evm.c 
b/drivers/video/omap/lcd_omap2evm.c
new file mode 100644
index 000..2fc46c2
--- /dev/null
+++ b/drivers/video/omap/lcd_omap2evm.c
@@ -0,0 +1,189 @@
+/*
+ * LCD panel support for the MISTRAL OMAP2EVM board
+ *
+ * Author: Arun C 
+ *
+ * Derived from drivers/video/omap/lcd_omap3evm.c
+ * Derived from drivers/video/omap/lcd-apollon.c
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+
+#define LCD_PANEL_ENABLE_GPIO  154
+#define LCD_PANEL_LR   128
+#define LCD_PANEL_UD   129
+#define LCD_PANEL_INI  152
+#define LCD_PANEL_QVGA 148
+#define LCD_PANEL_RESB 153
+
+#define LCD_XRES   480
+#define LCD_YRES   640
+#define LCD_PIXCLOCK_MAX   2 /* in kHz */

You can drop defines used only once. There are no such defines for some other 
panels
in your patches.

+
+#define TWL_LED_LEDEN  0x00
+#define TWL_PWMA_PWMAON0x00
+#define TWL_PWMA_PWMAOFF   0x01
+
+static unsigned int bklight_level;
+
+static int omap2evm_panel_init(struct lcd_panel *panel,
+   struct omapfb_device *fbdev)
+{
+   gpio_request(LCD_PANEL_ENABLE_GPIO, "LCD enable");
+   gpio_request(LCD_PANEL_LR, "LCD lr");
+   gpio_request(LCD_PANEL_UD, "LCD ud");
+   gpio_request(LCD_PANEL_INI, "LCD ini");
+   gpio_request(LCD_PANEL_QVGA, "LCD qvga");
+   gpio_request(LCD_PANEL_RESB, "LCD resb");
+
+   gpio_direction_output(LCD_PANEL_ENABLE_GPIO, 1);
+   gpio_direction_output(LCD_PANEL_RESB, 1);
+   gpio_direction_output(LCD_PANEL_INI, 1);
+   gpio_direction_output(LCD_PANEL_QVGA, 0);
+   gpio_direction_output(LCD_PANEL_LR, 1);
+   gpio_direction_output(LCD_PANEL_UD, 1);
+
+   twl4030_i2c_write_u8(TWL4030_MODULE_LED, 0x11, TWL_LED_LEDEN);
+   twl4030_i2c_write_u8(TWL4030_MODULE_PWMA, 0x01, TWL_PWMA_PWMAON);
+   twl4030_i2c_write_u8(TWL4030_MODULE_PWMA, 0x02, TWL_PWMA_PWMAOFF);
+   bklight_level = 100;
+
+   return 0;
+}
+
+static void omap2evm_panel_cleanup(struct lcd_panel *panel)
+{

Should the requested gpios be freed?

+}
+
+static int omap2evm_panel_enable(struct lcd_panel *panel)
+{
+   gpio_set_value(LCD_PANEL_ENABLE_GPIO, 0);
+   return 0;
+}
+
+static void omap2evm_panel_disable(struct lcd_panel *panel)
+{
+   gpio_set_value(LCD_PANEL_ENABLE_GPIO, 1);
+}
+
+static unsigned long omap2evm_panel_get_caps(struct lcd_panel *panel)
+{
+   return 0;
+}
+
+static int omap2evm_bklight_setlevel(struct lcd_panel *panel,
+   unsigned int level)
+{
+   u8 c;
+   if ((level >= 0) && (level <= 100)) {
+   c = (125 * (100 - level)) / 100 + 2;
+   twl4030_i2c_write_u8(TWL4030_MODULE_PWMA, c, TWL_PWMA_PWMAOFF);
+   bklight_level = level;
+   }
+   return 0;
+}
+
+static unsigned int omap2evm_bklight_getlevel(struct lcd_panel *panel)
+{
+   return bklight_level;
+}
+
+static unsigned int omap2evm_bklight_getmaxlevel(struct lcd_panel *panel)
+{
+   return 100;
+}
+
+struct lcd_panel omap2evm_panel = {
+   .name   = "omap2evm",
+   .

[PATCH 06/20] omapfb: Add support for the OMAP2EVM LCD

2009-06-04 Thread Imre Deak
From: arun c 

omap2evm LCD supports VGA and QVGA resolution, by default its in VGA mode.

Signed-off-by: Arun C 
Signed-off-by: Tony Lindgren 
Fixed-by: Jarkko Nikula 
Fixed-by: David Brownell 
Signed-off-by: Imre Deak 
---
 drivers/video/omap/Makefile   |1 +
 drivers/video/omap/lcd_omap2evm.c |  189 +
 2 files changed, 190 insertions(+), 0 deletions(-)
 create mode 100644 drivers/video/omap/lcd_omap2evm.c

diff --git a/drivers/video/omap/Makefile b/drivers/video/omap/Makefile
index 7a37b03..c2475e3 100644
--- a/drivers/video/omap/Makefile
+++ b/drivers/video/omap/Makefile
@@ -27,6 +27,7 @@ objs-y$(CONFIG_MACH_OMAP_OSK) += lcd_osk.o
 
 objs-y$(CONFIG_MACH_OMAP_APOLLON) += lcd_apollon.o
 objs-y$(CONFIG_MACH_OMAP_2430SDP) += lcd_2430sdp.o
+objs-y$(CONFIG_MACH_OMAP2EVM) += lcd_omap2evm.o
 objs-y$(CONFIG_FB_OMAP_LCD_MIPID) += lcd_mipid.o
 
 omapfb-objs := $(objs-yy)
diff --git a/drivers/video/omap/lcd_omap2evm.c 
b/drivers/video/omap/lcd_omap2evm.c
new file mode 100644
index 000..2fc46c2
--- /dev/null
+++ b/drivers/video/omap/lcd_omap2evm.c
@@ -0,0 +1,189 @@
+/*
+ * LCD panel support for the MISTRAL OMAP2EVM board
+ *
+ * Author: Arun C 
+ *
+ * Derived from drivers/video/omap/lcd_omap3evm.c
+ * Derived from drivers/video/omap/lcd-apollon.c
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+
+#define LCD_PANEL_ENABLE_GPIO  154
+#define LCD_PANEL_LR   128
+#define LCD_PANEL_UD   129
+#define LCD_PANEL_INI  152
+#define LCD_PANEL_QVGA 148
+#define LCD_PANEL_RESB 153
+
+#define LCD_XRES   480
+#define LCD_YRES   640
+#define LCD_PIXCLOCK_MAX   2 /* in kHz */
+
+#define TWL_LED_LEDEN  0x00
+#define TWL_PWMA_PWMAON0x00
+#define TWL_PWMA_PWMAOFF   0x01
+
+static unsigned int bklight_level;
+
+static int omap2evm_panel_init(struct lcd_panel *panel,
+   struct omapfb_device *fbdev)
+{
+   gpio_request(LCD_PANEL_ENABLE_GPIO, "LCD enable");
+   gpio_request(LCD_PANEL_LR, "LCD lr");
+   gpio_request(LCD_PANEL_UD, "LCD ud");
+   gpio_request(LCD_PANEL_INI, "LCD ini");
+   gpio_request(LCD_PANEL_QVGA, "LCD qvga");
+   gpio_request(LCD_PANEL_RESB, "LCD resb");
+
+   gpio_direction_output(LCD_PANEL_ENABLE_GPIO, 1);
+   gpio_direction_output(LCD_PANEL_RESB, 1);
+   gpio_direction_output(LCD_PANEL_INI, 1);
+   gpio_direction_output(LCD_PANEL_QVGA, 0);
+   gpio_direction_output(LCD_PANEL_LR, 1);
+   gpio_direction_output(LCD_PANEL_UD, 1);
+
+   twl4030_i2c_write_u8(TWL4030_MODULE_LED, 0x11, TWL_LED_LEDEN);
+   twl4030_i2c_write_u8(TWL4030_MODULE_PWMA, 0x01, TWL_PWMA_PWMAON);
+   twl4030_i2c_write_u8(TWL4030_MODULE_PWMA, 0x02, TWL_PWMA_PWMAOFF);
+   bklight_level = 100;
+
+   return 0;
+}
+
+static void omap2evm_panel_cleanup(struct lcd_panel *panel)
+{
+}
+
+static int omap2evm_panel_enable(struct lcd_panel *panel)
+{
+   gpio_set_value(LCD_PANEL_ENABLE_GPIO, 0);
+   return 0;
+}
+
+static void omap2evm_panel_disable(struct lcd_panel *panel)
+{
+   gpio_set_value(LCD_PANEL_ENABLE_GPIO, 1);
+}
+
+static unsigned long omap2evm_panel_get_caps(struct lcd_panel *panel)
+{
+   return 0;
+}
+
+static int omap2evm_bklight_setlevel(struct lcd_panel *panel,
+   unsigned int level)
+{
+   u8 c;
+   if ((level >= 0) && (level <= 100)) {
+   c = (125 * (100 - level)) / 100 + 2;
+   twl4030_i2c_write_u8(TWL4030_MODULE_PWMA, c, TWL_PWMA_PWMAOFF);
+   bklight_level = level;
+   }
+   return 0;
+}
+
+static unsigned int omap2evm_bklight_getlevel(struct lcd_panel *panel)
+{
+   return bklight_level;
+}
+
+static unsigned int omap2evm_bklight_getmaxlevel(struct lcd_panel *panel)
+{
+   return 100;
+}
+
+struct lcd_panel omap2evm_panel = {
+   .name   = "omap2evm",
+   .config = OMAP_LCDC_PANEL_TFT | OMAP_LCDC_INV_VSYNC |
+ OMAP_LCDC_INV_HSYNC,
+
+   .bpp= 16,
+   .data_lines = 18,
+   .x_res  = LCD_XRES,
+   .y_res  = LCD_YRES,
+   .hsw