
On Wed, 18 Apr 2012 11:54:21 +0300 "Timo Ketola" timo@exertus.fi wrote:
Signed-off-by: Timo Ketola timo@exertus.fi
arch/arm/include/asm/arch-mx25/imx-regs.h | 29 +++++++++ drivers/video/Makefile | 1 + drivers/video/mx2fb.c | 92 +++++++++++++++++++++++++++++ include/lcd.h | 21 ++++++- include/mx2fb.h | 39 ++++++++++++ 5 files changed, 181 insertions(+), 1 deletions(-) create mode 100644 drivers/video/mx2fb.c create mode 100644 include/mx2fb.h
...
diff --git a/drivers/video/mx2fb.c b/drivers/video/mx2fb.c new file mode 100644 index 0000000..9ee4a3e --- /dev/null +++ b/drivers/video/mx2fb.c @@ -0,0 +1,92 @@
Please add Copyright info here.
+#include <common.h> +#include <lcd.h> +#include <mx2fb.h> +#include <asm/arch/imx-regs.h> +#include <asm/io.h> +#include <asm/errno.h>
+#if !defined(LCD_BPP) || LCD_BPP != LCD_COLOR16
+#error Only 16bpp is supported
+#endif
Drop empty lines around #error
+DECLARE_GLOBAL_DATA_PTR;
+void *lcd_base; /* Start of framebuffer memory */ +void *lcd_console_address; /* Start of console buffer */
+int lcd_line_length; +int lcd_color_fg; +int lcd_color_bg;
+short console_col; +short console_row;
+void lcd_initcolregs(void) +{ +}
+void lcd_setcolreg(ushort regno, ushort red, ushort green, ushort blue) +{ +}
+void lcd_enable(void) +{ +}
+void lcd_disable(void) +{ +}
+void lcd_panel_disable(void) +{ +}
+void lcd_ctrl_init(void *lcdbase) +{
- u32 ccm_ipg_cg, pcr;
- struct lcdc_regs *lcdc = (struct lcdc_regs *)IMX_LCDC_BASE;
- struct ccm_regs *ccm = (struct ccm_regs *)IMX_CCM_BASE;
- writel(gd->fb_base, &lcdc->lssar);
- writel(panel_info.vl_col >> 4 << 20 | panel_info.vl_row, &lcdc->lsr);
- writel(panel_info.vl_col / 2, &lcdc->lvpwr);
- if (panel_info.vl_bpix != 4)
printf("Unsupported color depth (%d), only 16bpp supported\n",
NBITS(panel_info.vl_bpix));
Style issue: multi-line if statements should use braces if (cond) { multi-line statement }
- pcr = LCDC_LPCR | 5 << 25;
- if (panel_info.vl_sync & FB_SYNC_CLK_LAT_FALL)
pcr |= 0x00200000;
- if (panel_info.vl_sync & FB_SYNC_DATA_INVERT)
pcr |= 0x01000000;
- if (panel_info.vl_sync & FB_SYNC_SHARP_MODE)
pcr |= 0x00000040;
- if (panel_info.vl_sync & FB_SYNC_OE_LOW_ACT)
pcr |= 0x00100000;
- pcr |= LCDC_LPCR_PCD;
- writel(pcr, &lcdc->lpcr);
- writel((panel_info.vl_hsync - 1) << 26 |
(panel_info.vl_right_margin - 1) << 8 |
(panel_info.vl_left_margin - 3),
Please remove two tabs here,
&lcdc->lhcr);
and one tab here.
- writel(panel_info.vl_vsync << 26 |
panel_info.vl_lower_margin << 8 |
panel_info.vl_upper_margin,
&lcdc->lvcr);
ditto.
- writel(LCDC_LSCR, &lcdc->lscr);
- writel(LCDC_LRMCR, &lcdc->lrmcr);
- writel(LCDC_LDCR, &lcdc->ldcr);
- writel(LCDC_LPCCR, &lcdc->lpccr);
- /* Off and on clock gating
FIXME: Why *off* and on; What side effects does it have? */
Style for multi-line comments is /* * multi-line * comment */
- ccm_ipg_cg = readl(&ccm->cgr1);
- writel(ccm_ipg_cg & 0xDFFFFFFF, &ccm->cgr1);
- writel(ccm_ipg_cg | 0x20000000, &ccm->cgr1);
+}
...
diff --git a/include/mx2fb.h b/include/mx2fb.h new file mode 100644 index 0000000..1f16a61 --- /dev/null +++ b/include/mx2fb.h @@ -0,0 +1,39 @@ +/*
- Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved.
- */
+/*
- The code contained herein is licensed under the GNU General Public
- License. You may obtain a copy of the GNU General Public License
- Version 2 or later at the following locations:
- */
Please consider Stefano's comment regarding copyright header.
+#ifndef __MX2FB_H__ +#define __MX2FB_H__
please drop one empty line here.
+/* LCDC register settings */
+#define LCDC_LSCR 0x00120300
+#define LCDC_LRMCR 0x00000000
+#define LCDC_LDCR 0x00020010
+#define LCDC_LPCCR 0x00a9037f
+#define LCDC_LPCR 0xFA008B80
+#define LCDC_LPCR_PCD 0x4
Please use the same style here as below, so remove empty lines and indent numbers by tab.
+#define FB_SYNC_OE_LOW_ACT 0x80000000 +#define FB_SYNC_CLK_LAT_FALL 0x40000000 +#define FB_SYNC_DATA_INVERT 0x20000000 +#define FB_SYNC_CLK_IDLE_EN 0x10000000 +#define FB_SYNC_SHARP_MODE 0x08000000 +#define FB_SYNC_SWAP_RGB 0x04000000
+#endif
Thanks, Anatolij