summaryrefslogtreecommitdiff
path: root/board/mosaixtech
diff options
context:
space:
mode:
authorAnatolij Gustschin <agust@denx.de>2010-05-26 10:38:59 +0200
committerWolfgang Denk <wd@denx.de>2010-06-17 23:12:15 +0200
commit86caca1cd97ba71b7a7c82f2b0163682df35ce5d (patch)
tree23ca75a5208b66a6ce4ea17b55007d59070627dd /board/mosaixtech
parentec6baf53f7691da4751e98d47a014acf266ab994 (diff)
ppc4xx: icon: add support for SM502 chip
Adds initialization code for SM502 graphics controller and NL6448BC20-21D LCD panel. Signed-off-by: Anatolij Gustschin <agust@denx.de> Cc: Stefan Roese <sr@denx.de>
Diffstat (limited to 'board/mosaixtech')
-rw-r--r--board/mosaixtech/icon/icon.c69
1 files changed, 69 insertions, 0 deletions
diff --git a/board/mosaixtech/icon/icon.c b/board/mosaixtech/icon/icon.c
index fbace9efe95..ecea1ee50d4 100644
--- a/board/mosaixtech/icon/icon.c
+++ b/board/mosaixtech/icon/icon.c
@@ -317,3 +317,72 @@ int board_pcie_last(void)
/* Only 2 PCIe ports used on ICON, so the last one is 1 */
return 1;
}
+
+/*
+ * Video
+ */
+#ifdef CONFIG_VIDEO_SM501
+#include <sm501.h>
+
+#define DISPLAY_WIDTH 640
+#define DISPLAY_HEIGHT 480
+
+static const SMI_REGS sm502_init_regs[] = {
+ {0x00004, 0x0},
+ {0x00040, 0x00021847},
+ {0x00044, 0x091a0a01}, /* 24 MHz pixclk */
+ {0x00054, 0x0},
+ {0x00048, 0x00021847},
+ {0x0004C, 0x091a0a01},
+ {0x00054, 0x1},
+ {0x80004, 0xc428bb17},
+ {0x8000C, 0x00000000},
+ {0x80010, 0x0a000a00},
+ {0x80014, 0x02800000},
+ {0x80018, 0x01e00000},
+ {0x8001C, 0x00000000},
+ {0x80020, 0x01e00280},
+ {0x80024, 0x02fa027f},
+ {0x80028, 0x004a0280},
+ {0x8002C, 0x020c01df},
+ {0x80030, 0x000201e7},
+ {0x80200, 0x00010000},
+ {0x00008, 0x20000000}, /* gpio29 is pwm0, LED_PWM */
+ {0x0000C, 0x3f000000}, /* gpio56 - gpio61 as flat panel data pins */
+ {0x10020, 0x25725728}, /* 20 kHz pwm0, 50 % duty cycle, disabled */
+ {0x80000, 0x0f010106}, /* vsync & hsync pos, disp on */
+ {0, 0}
+};
+
+/*
+ * Return a pointer to the register initialization table.
+ */
+const SMI_REGS *board_get_regs(void)
+{
+ return sm502_init_regs;
+}
+
+int board_get_width(void)
+{
+ return DISPLAY_WIDTH;
+}
+
+int board_get_height(void)
+{
+ return DISPLAY_HEIGHT;
+}
+
+#ifdef CONFIG_CONSOLE_EXTRA_INFO
+/*
+ * Return text to be printed besides the logo.
+ */
+void video_get_info_str(int line_number, char *info)
+{
+ if (line_number == 1)
+ strcpy(info, " Board: ICON");
+ else
+ info[0] = '\0';
+}
+#endif
+
+#endif /* CONFIG_VIDEO_SM501 */