diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2013-02-04 15:48:43 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-02-04 15:48:43 +0100 |
commit | 1b575024f67f43a3b325c1d3f021ac482b6fad81 (patch) | |
tree | fb36c110a86fd4d7517e107048b6c337aef7760d /arch/arm/boards/at91sam9m10g45ek | |
parent | ec2bfe6953c14a477eef546858ab139012c7c695 (diff) | |
parent | ab5418b570b24f5be1ac12c3804f6bf04ec48ad2 (diff) | |
download | barebox-1b575024f67f43a3b325c1d3f021ac482b6fad81.tar.gz barebox-1b575024f67f43a3b325c1d3f021ac482b6fad81.tar.xz |
Merge branch 'for-next/at91'
Conflicts:
arch/arm/boards/at91rm9200ek/init.c
arch/arm/boards/pm9263/init.c
arch/arm/configs/at91sam9n12ek_defconfig
arch/arm/mach-at91/Kconfig
Diffstat (limited to 'arch/arm/boards/at91sam9m10g45ek')
-rw-r--r-- | arch/arm/boards/at91sam9m10g45ek/env/bin/boot_board | 7 | ||||
-rw-r--r-- | arch/arm/boards/at91sam9m10g45ek/init.c | 67 |
2 files changed, 72 insertions, 2 deletions
diff --git a/arch/arm/boards/at91sam9m10g45ek/env/bin/boot_board b/arch/arm/boards/at91sam9m10g45ek/env/bin/boot_board index 3d7426f527..73daecc001 100644 --- a/arch/arm/boards/at91sam9m10g45ek/env/bin/boot_board +++ b/arch/arm/boards/at91sam9m10g45ek/env/bin/boot_board @@ -5,6 +5,13 @@ export PATH . /env/config +splash=/env/splash.png + +if [ -f ${splash} -a -e /dev/fb0 ]; then + splash -o ${splash} + fb0.enable=1 +fi + menu -r -m boot menu -a -m boot -d "\e[1;36mWelcome on Barebox Boot Sequence\e[0m" menu -e -a -m boot -c 'menu_boot' -d "boot (default) " diff --git a/arch/arm/boards/at91sam9m10g45ek/init.c b/arch/arm/boards/at91sam9m10g45ek/init.c index 053c85b433..5b5e31b554 100644 --- a/arch/arm/boards/at91sam9m10g45ek/init.c +++ b/arch/arm/boards/at91sam9m10g45ek/init.c @@ -106,7 +106,7 @@ static void ek_add_device_nand(void) } static struct at91_ether_platform_data macb_pdata = { - .is_rmii = 1, + .phy_interface = PHY_INTERFACE_MODE_RMII, .phy_addr = 0, }; @@ -208,21 +208,84 @@ static void ek_device_add_keyboard(void) static void ek_device_add_keyboard(void) {} #endif +#if defined(CONFIG_USB_OHCI) || defined(CONFIG_USB_EHCI) +/* + * USB HS Host port (common to OHCI & EHCI) + */ +static struct at91_usbh_data ek_usbh_hs_data = { + .ports = 2, + .vbus_pin = {AT91_PIN_PD1, AT91_PIN_PD3}, + .vbus_pin_active_low = {1, 1}, +}; + +static void ek_add_device_usb(void) +{ + at91_add_device_usbh_ohci(&ek_usbh_hs_data); + at91_add_device_usbh_ehci(&ek_usbh_hs_data); +} +#else +static void ek_add_device_usb(void) {} +#endif + static int at91sam9m10g45ek_mem_init(void) { - at91_add_device_sdram(128 * 1024 * 1024); + at91_add_device_sdram(0); return 0; } mem_initcall(at91sam9m10g45ek_mem_init); +#if defined(CONFIG_DRIVER_VIDEO_ATMEL) +static struct fb_videomode at91_tft_vga_modes[] = { + { + .name = "LG", + .refresh = 60, + .xres = 480, .yres = 272, + .pixclock = KHZ2PICOS(9000), + + .left_margin = 1, .right_margin = 1, + .upper_margin = 40, .lower_margin = 1, + .hsync_len = 45, .vsync_len = 1, + + .sync = 0, + .vmode = FB_VMODE_NONINTERLACED, + }, +}; + +#define AT91SAM9G45_DEFAULT_LCDCON2 (ATMEL_LCDC_MEMOR_LITTLE \ + | ATMEL_LCDC_DISTYPE_TFT \ + | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE) + +/* Driver datas */ +static struct atmel_lcdfb_platform_data ek_lcdc_data = { + .lcdcon_is_backlight = true, + .default_bpp = 32, + .default_dmacon = ATMEL_LCDC_DMAEN, + .default_lcdcon2 = AT91SAM9G45_DEFAULT_LCDCON2, + .guard_time = 9, + .lcd_wiring_mode = ATMEL_LCDC_WIRING_RGB, + .mode_list = at91_tft_vga_modes, + .num_modes = ARRAY_SIZE(at91_tft_vga_modes), +}; +static void ek_add_device_lcdc(void) +{ + at91_add_device_lcdc(&ek_lcdc_data); +} + +#else +static void ek_add_device_lcdc(void) {} +#endif + + static int at91sam9m10g45ek_devices_init(void) { ek_add_device_nand(); at91_add_device_eth(0, &macb_pdata); ek_add_device_mci(); + ek_add_device_usb(); ek_device_add_leds(); ek_device_add_keyboard(); + ek_add_device_lcdc(); devfs_add_partition("nand0", 0x00000, SZ_128K, DEVFS_PARTITION_FIXED, "at91bootstrap_raw"); dev_add_bb_dev("at91bootstrap_raw", "at91bootstrap"); |