This commit was manufactured by cvs2svn to create branch 'vserver'.
[linux-2.6.git] / arch / avr32 / boards / atstk1000 / setup.c
diff --git a/arch/avr32/boards/atstk1000/setup.c b/arch/avr32/boards/atstk1000/setup.c
new file mode 100644 (file)
index 0000000..272c011
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * ATSTK1000 board-specific setup code.
+ *
+ * Copyright (C) 2005-2006 Atmel Corporation
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+#include <linux/bootmem.h>
+#include <linux/init.h>
+#include <linux/types.h>
+#include <linux/linkage.h>
+
+#include <asm/setup.h>
+
+#include <asm/arch/board.h>
+
+/* Initialized by bootloader-specific startup code. */
+struct tag *bootloader_tags __initdata;
+
+struct lcdc_platform_data __initdata atstk1000_fb0_data;
+
+void __init board_setup_fbmem(unsigned long fbmem_start,
+                             unsigned long fbmem_size)
+{
+       if (!fbmem_size)
+               return;
+
+       if (!fbmem_start) {
+               void *fbmem;
+
+               fbmem = alloc_bootmem_low_pages(fbmem_size);
+               fbmem_start = __pa(fbmem);
+       } else {
+               pg_data_t *pgdat;
+
+               for_each_online_pgdat(pgdat) {
+                       if (fbmem_start >= pgdat->bdata->node_boot_start
+                           && fbmem_start <= pgdat->bdata->node_low_pfn)
+                               reserve_bootmem_node(pgdat, fbmem_start,
+                                                    fbmem_size);
+               }
+       }
+
+       printk("%luKiB framebuffer memory at address 0x%08lx\n",
+              fbmem_size >> 10, fbmem_start);
+       atstk1000_fb0_data.fbmem_start = fbmem_start;
+       atstk1000_fb0_data.fbmem_size = fbmem_size;
+}