at91sam9m10ihd: add lcd support
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
6d8a951667
commit
9d8cef4687
|
@ -0,0 +1,8 @@
|
|||
#!/bin/sh
|
||||
|
||||
splash=/env/splash.png
|
||||
|
||||
if [ -f ${splash} -a -e /dev/fb0 ]; then
|
||||
splash -o ${splash}
|
||||
fb0.enable=1
|
||||
fi
|
|
@ -173,6 +173,71 @@ static int at91sam9m10g45ek_mem_init(void)
|
|||
}
|
||||
mem_initcall(at91sam9m10g45ek_mem_init);
|
||||
|
||||
#if defined(CONFIG_DRIVER_VIDEO_ATMEL)
|
||||
static int ek_gpio_request_output(int gpio, const char *name)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = gpio_request(gpio, name);
|
||||
if (ret) {
|
||||
pr_err("%s: can not request gpio %d (%d)\n", name, gpio, ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = gpio_direction_output(gpio, 1);
|
||||
if (ret)
|
||||
pr_err("%s: can not configure gpio %d as output (%d)\n", name, gpio, ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static struct fb_videomode at91fb_default_monspecs[] = {
|
||||
{
|
||||
.name = "MULTEK",
|
||||
.refresh = 60,
|
||||
.xres = 800, .yres = 480,
|
||||
.pixclock = KHZ2PICOS(15000),
|
||||
|
||||
.left_margin = 40, .right_margin = 40,
|
||||
.upper_margin = 29, .lower_margin = 13,
|
||||
.hsync_len = 48, .vsync_len = 3,
|
||||
|
||||
.sync = 0,
|
||||
.vmode = FB_VMODE_NONINTERLACED,
|
||||
},
|
||||
};
|
||||
|
||||
#define AT91SAM9G45_DEFAULT_LCDCON2 (ATMEL_LCDC_MEMOR_LITTLE \
|
||||
| ATMEL_LCDC_DISTYPE_TFT \
|
||||
| ATMEL_LCDC_CLKMOD_ALWAYSACTIVE)
|
||||
|
||||
static void at91_lcdc_power_control(int on)
|
||||
{
|
||||
gpio_set_value(AT91_PIN_PE6, on);
|
||||
}
|
||||
|
||||
/* Driver datas */
|
||||
static struct atmel_lcdfb_platform_data ek_lcdc_data = {
|
||||
.lcdcon_is_backlight = true,
|
||||
.default_bpp = 16,
|
||||
.default_dmacon = ATMEL_LCDC_DMAEN,
|
||||
.default_lcdcon2 = AT91SAM9G45_DEFAULT_LCDCON2,
|
||||
.guard_time = 9,
|
||||
.lcd_wiring_mode = ATMEL_LCDC_WIRING_RGB,
|
||||
.mode_list = at91fb_default_monspecs,
|
||||
.num_modes = ARRAY_SIZE(at91fb_default_monspecs),
|
||||
};
|
||||
|
||||
static void ek_add_device_lcd(void)
|
||||
{
|
||||
if (ek_gpio_request_output(AT91_PIN_PE6, "lcdc_power"))
|
||||
return;
|
||||
|
||||
at91_add_device_lcdc(&ek_lcdc_data);
|
||||
}
|
||||
#else
|
||||
static void ek_add_device_lcd(void) {}
|
||||
#endif
|
||||
|
||||
static void ek_add_device_w1(void)
|
||||
{
|
||||
at91_set_gpio_input(w1_pdata.pin, 0);
|
||||
|
@ -191,6 +256,7 @@ static int at91sam9m10ihd_devices_init(void)
|
|||
ek_add_device_spi();
|
||||
ek_add_device_i2c();
|
||||
ek_add_device_usb();
|
||||
ek_add_device_lcd();
|
||||
|
||||
devfs_add_partition("nand0", 0x00000, SZ_128K, DEVFS_PARTITION_FIXED, "at91bootstrap_raw");
|
||||
dev_add_bb_dev("at91bootstrap_raw", "at91bootstrap");
|
||||
|
|
|
@ -6,6 +6,7 @@ CONFIG_AEABI=y
|
|||
CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
|
||||
CONFIG_PBL_IMAGE=y
|
||||
CONFIG_MMU=y
|
||||
CONFIG_MALLOC_SIZE=0xa00000
|
||||
CONFIG_MALLOC_TLSF=y
|
||||
CONFIG_PROMPT="9M10IHD:"
|
||||
CONFIG_LONGHELP=y
|
||||
|
@ -45,6 +46,7 @@ CONFIG_CMD_GO=y
|
|||
CONFIG_CMD_OFTREE=y
|
||||
CONFIG_CMD_MTEST=y
|
||||
CONFIG_CMD_MTEST_ALTERNATIVE=y
|
||||
CONFIG_CMD_SPLASH=y
|
||||
CONFIG_CMD_TIMEOUT=y
|
||||
CONFIG_CMD_PARTITION=y
|
||||
CONFIG_CMD_MAGICVAR=y
|
||||
|
@ -78,6 +80,8 @@ CONFIG_USB=y
|
|||
CONFIG_USB_EHCI=y
|
||||
CONFIG_USB_EHCI_ATMEL=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_VIDEO=y
|
||||
CONFIG_DRIVER_VIDEO_ATMEL=y
|
||||
CONFIG_MCI=y
|
||||
CONFIG_MCI_STARTUP=y
|
||||
CONFIG_MCI_ATMEL=y
|
||||
|
@ -92,3 +96,4 @@ CONFIG_FS_TFTP=y
|
|||
CONFIG_FS_FAT=y
|
||||
CONFIG_FS_FAT_WRITE=y
|
||||
CONFIG_FS_FAT_LFN=y
|
||||
CONFIG_PNG=y
|
||||
|
|
Loading…
Reference in New Issue