diff options
author | Anatolij Gustschin <agust@denx.de> | 2010-05-26 08:38:59 (GMT) |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2010-06-17 21:12:15 (GMT) |
commit | 86caca1cd97ba71b7a7c82f2b0163682df35ce5d (patch) | |
tree | 23ca75a5208b66a6ce4ea17b55007d59070627dd | |
parent | ec6baf53f7691da4751e98d47a014acf266ab994 (diff) | |
download | u-boot-86caca1cd97ba71b7a7c82f2b0163682df35ce5d.tar.xz |
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>
-rw-r--r-- | board/mosaixtech/icon/icon.c | 69 | ||||
-rw-r--r-- | include/configs/icon.h | 23 |
2 files changed, 92 insertions, 0 deletions
diff --git a/board/mosaixtech/icon/icon.c b/board/mosaixtech/icon/icon.c index fbace9e..ecea1ee 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 */ diff --git a/include/configs/icon.h b/include/configs/icon.h index 3a57d69..7a4e60c 100644 --- a/include/configs/icon.h +++ b/include/configs/icon.h @@ -143,6 +143,26 @@ #define CONFIG_SYS_M41T11_BASE_YEAR 1900 /* play along with linux */ /* + * Video options + */ +#define CONFIG_VIDEO + +#ifdef CONFIG_VIDEO +#define CONFIG_VIDEO_SM501 +#define CONFIG_VIDEO_SM501_32BPP +#define CONFIG_VIDEO_SM501_PCI +#define VIDEO_FB_LITTLE_ENDIAN +#define CONFIG_CFB_CONSOLE +#define CONFIG_VIDEO_LOGO +#define CONFIG_CONSOLE_EXTRA_INFO +#define CONFIG_VGA_AS_SINGLE_DEVICE +#define CONFIG_VIDEO_SW_CURSOR +#define CONFIG_VIDEO_BMP_RLE8 +#define CONFIG_SPLASH_SCREEN +#define CFG_CONSOLE_IS_IN_ENV +#endif + +/* * Environment */ #define CONFIG_ENV_IS_IN_FLASH 1 /* Environment uses flash */ @@ -171,6 +191,9 @@ #define CONFIG_CMD_PCI #define CONFIG_CMD_SDRAM #define CONFIG_CMD_SNTP +#ifdef CONFIG_VIDEO +#define CONFIG_CMD_BMP +#endif #define CONFIG_IBM_EMAC4_V4 /* 440SPe has this EMAC version */ #define CONFIG_PHY_ADDR 1 /* PHY address, See schematics */ |