summaryrefslogtreecommitdiffstats
path: root/arch/arm/boards/at91sam9m10g45ek
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-02-04 15:48:43 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2013-02-04 15:48:43 +0100
commit1b575024f67f43a3b325c1d3f021ac482b6fad81 (patch)
treefb36c110a86fd4d7517e107048b6c337aef7760d /arch/arm/boards/at91sam9m10g45ek
parentec2bfe6953c14a477eef546858ab139012c7c695 (diff)
parentab5418b570b24f5be1ac12c3804f6bf04ec48ad2 (diff)
downloadbarebox-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_board7
-rw-r--r--arch/arm/boards/at91sam9m10g45ek/init.c67
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");