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);
|
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)
|
static void ek_add_device_w1(void)
|
||||||
{
|
{
|
||||||
at91_set_gpio_input(w1_pdata.pin, 0);
|
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_spi();
|
||||||
ek_add_device_i2c();
|
ek_add_device_i2c();
|
||||||
ek_add_device_usb();
|
ek_add_device_usb();
|
||||||
|
ek_add_device_lcd();
|
||||||
|
|
||||||
devfs_add_partition("nand0", 0x00000, SZ_128K, DEVFS_PARTITION_FIXED, "at91bootstrap_raw");
|
devfs_add_partition("nand0", 0x00000, SZ_128K, DEVFS_PARTITION_FIXED, "at91bootstrap_raw");
|
||||||
dev_add_bb_dev("at91bootstrap_raw", "at91bootstrap");
|
dev_add_bb_dev("at91bootstrap_raw", "at91bootstrap");
|
||||||
|
|
|
@ -6,6 +6,7 @@ CONFIG_AEABI=y
|
||||||
CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
|
CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
|
||||||
CONFIG_PBL_IMAGE=y
|
CONFIG_PBL_IMAGE=y
|
||||||
CONFIG_MMU=y
|
CONFIG_MMU=y
|
||||||
|
CONFIG_MALLOC_SIZE=0xa00000
|
||||||
CONFIG_MALLOC_TLSF=y
|
CONFIG_MALLOC_TLSF=y
|
||||||
CONFIG_PROMPT="9M10IHD:"
|
CONFIG_PROMPT="9M10IHD:"
|
||||||
CONFIG_LONGHELP=y
|
CONFIG_LONGHELP=y
|
||||||
|
@ -45,6 +46,7 @@ CONFIG_CMD_GO=y
|
||||||
CONFIG_CMD_OFTREE=y
|
CONFIG_CMD_OFTREE=y
|
||||||
CONFIG_CMD_MTEST=y
|
CONFIG_CMD_MTEST=y
|
||||||
CONFIG_CMD_MTEST_ALTERNATIVE=y
|
CONFIG_CMD_MTEST_ALTERNATIVE=y
|
||||||
|
CONFIG_CMD_SPLASH=y
|
||||||
CONFIG_CMD_TIMEOUT=y
|
CONFIG_CMD_TIMEOUT=y
|
||||||
CONFIG_CMD_PARTITION=y
|
CONFIG_CMD_PARTITION=y
|
||||||
CONFIG_CMD_MAGICVAR=y
|
CONFIG_CMD_MAGICVAR=y
|
||||||
|
@ -78,6 +80,8 @@ CONFIG_USB=y
|
||||||
CONFIG_USB_EHCI=y
|
CONFIG_USB_EHCI=y
|
||||||
CONFIG_USB_EHCI_ATMEL=y
|
CONFIG_USB_EHCI_ATMEL=y
|
||||||
CONFIG_USB_STORAGE=y
|
CONFIG_USB_STORAGE=y
|
||||||
|
CONFIG_VIDEO=y
|
||||||
|
CONFIG_DRIVER_VIDEO_ATMEL=y
|
||||||
CONFIG_MCI=y
|
CONFIG_MCI=y
|
||||||
CONFIG_MCI_STARTUP=y
|
CONFIG_MCI_STARTUP=y
|
||||||
CONFIG_MCI_ATMEL=y
|
CONFIG_MCI_ATMEL=y
|
||||||
|
@ -92,3 +96,4 @@ CONFIG_FS_TFTP=y
|
||||||
CONFIG_FS_FAT=y
|
CONFIG_FS_FAT=y
|
||||||
CONFIG_FS_FAT_WRITE=y
|
CONFIG_FS_FAT_WRITE=y
|
||||||
CONFIG_FS_FAT_LFN=y
|
CONFIG_FS_FAT_LFN=y
|
||||||
|
CONFIG_PNG=y
|
||||||
|
|
Loading…
Reference in New Issue