12 #include <linux/kernel.h>
13 #include <linux/types.h>
15 #include <linux/list.h>
19 #include <linux/serial_core.h>
22 #include <linux/i2c.h>
35 #include <mach/hardware.h>
40 #include <mach/regs-gpio.h>
41 #include <mach/regs-mem.h>
42 #include <mach/regs-lcd.h>
53 #include <plat/clock.h>
61 #define COPYRIGHT ", Copyright 2005-2009 Simtec Electronics"
98 #define UCON S3C2410_UCON_DEFAULT | S3C2410_UCON_UCLK
99 #define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB
100 #define UFCON S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE
123 static int external_map[] = { 2 };
124 static int chip0_map[] = { 0 };
125 static int chip1_map[] = { 1 };
127 static struct mtd_partition __initdata anubis_default_nand_part[] = {
129 .name =
"Boot Agent",
150 static struct mtd_partition __initdata anubis_default_nand_part_large[] = {
152 .name =
"Boot Agent",
184 .nr_map = external_map,
185 .nr_partitions =
ARRAY_SIZE(anubis_default_nand_part),
186 .partitions = anubis_default_nand_part,
192 .nr_partitions =
ARRAY_SIZE(anubis_default_nand_part),
193 .partitions = anubis_default_nand_part,
199 .nr_partitions =
ARRAY_SIZE(anubis_default_nand_part),
200 .partitions = anubis_default_nand_part,
208 slot =
set->nr_map[
slot] & 3;
210 pr_debug(
"anubis_nand: selecting slot %d (set %p,%p)\n",
211 slot,
set,
set->nr_map);
217 pr_debug(
"anubis_nand: ctrl1 now %02x\n", tmp);
227 .sets = anubis_nand_sets,
228 .select_chip = anubis_nand_select,
237 static struct resource anubis_ide0_resource[] = {
244 .name =
"pata_platform",
246 .num_resources =
ARRAY_SIZE(anubis_ide0_resource),
247 .resource = anubis_ide0_resource,
249 .platform_data = &anubis_ide_platdata,
250 .coherent_dma_mask = ~0,
254 static struct resource anubis_ide1_resource[] = {
261 .name =
"pata_platform",
263 .num_resources =
ARRAY_SIZE(anubis_ide1_resource),
264 .resource = anubis_ide1_resource,
266 .platform_data = &anubis_ide_platdata,
267 .coherent_dma_mask = ~0,
280 static struct resource anubis_asix_resource[] = {
288 .num_resources =
ARRAY_SIZE(anubis_asix_resource),
289 .resource = anubis_asix_resource,
291 .platform_data = &anubis_asix_platdata,
297 static struct resource anubis_sm501_resource[] = {
338 .init = &anubis_sm501_initdata,
340 .gpio_i2c = anubis_sm501_gpio_i2c,
341 .gpio_i2c_nr =
ARRAY_SIZE(anubis_sm501_gpio_i2c),
347 .num_resources =
ARRAY_SIZE(anubis_sm501_resource),
348 .resource = anubis_sm501_resource,
350 .platform_data = &anubis_sm501_platdata,
366 &anubis_device_sm501,
369 static struct clk *anubis_clocks[] __initdata = {
397 static void __init anubis_map_io(
void)
423 anubis_nand_sets[0].
partitions = anubis_default_nand_part_large;
432 static void __init anubis_init(
void)
447 .atag_offset = 0x100,
448 .map_io = anubis_map_io,
449 .init_machine = anubis_init,