diff options
Diffstat (limited to 'arch/arm/mach-s3c2440/mach-anubis.c')
| -rw-r--r-- | arch/arm/mach-s3c2440/mach-anubis.c | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/arch/arm/mach-s3c2440/mach-anubis.c b/arch/arm/mach-s3c2440/mach-anubis.c index 68f3870991bf..62a4c3eba97f 100644 --- a/arch/arm/mach-s3c2440/mach-anubis.c +++ b/arch/arm/mach-s3c2440/mach-anubis.c | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* linux/arch/arm/mach-s3c2440/mach-anubis.c | 1 | /* linux/arch/arm/mach-s3c2440/mach-anubis.c |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 2003-2005,2008 Simtec Electronics | 3 | * Copyright 2003-2009 Simtec Electronics |
| 4 | * http://armlinux.simtec.co.uk/ | 4 | * http://armlinux.simtec.co.uk/ |
| 5 | * Ben Dooks <ben@simtec.co.uk> | 5 | * Ben Dooks <ben@simtec.co.uk> |
| 6 | * | 6 | * |
| @@ -53,8 +53,9 @@ | |||
| 53 | #include <plat/clock.h> | 53 | #include <plat/clock.h> |
| 54 | #include <plat/devs.h> | 54 | #include <plat/devs.h> |
| 55 | #include <plat/cpu.h> | 55 | #include <plat/cpu.h> |
| 56 | #include <plat/audio-simtec.h> | ||
| 56 | 57 | ||
| 57 | #define COPYRIGHT ", (c) 2005 Simtec Electronics" | 58 | #define COPYRIGHT ", Copyright 2005-2009 Simtec Electronics" |
| 58 | 59 | ||
| 59 | static struct map_desc anubis_iodesc[] __initdata = { | 60 | static struct map_desc anubis_iodesc[] __initdata = { |
| 60 | /* ISA IO areas */ | 61 | /* ISA IO areas */ |
| @@ -138,7 +139,7 @@ static int external_map[] = { 2 }; | |||
| 138 | static int chip0_map[] = { 0 }; | 139 | static int chip0_map[] = { 0 }; |
| 139 | static int chip1_map[] = { 1 }; | 140 | static int chip1_map[] = { 1 }; |
| 140 | 141 | ||
| 141 | static struct mtd_partition anubis_default_nand_part[] = { | 142 | static struct mtd_partition __initdata anubis_default_nand_part[] = { |
| 142 | [0] = { | 143 | [0] = { |
| 143 | .name = "Boot Agent", | 144 | .name = "Boot Agent", |
| 144 | .size = SZ_16K, | 145 | .size = SZ_16K, |
| @@ -161,7 +162,7 @@ static struct mtd_partition anubis_default_nand_part[] = { | |||
| 161 | } | 162 | } |
| 162 | }; | 163 | }; |
| 163 | 164 | ||
| 164 | static struct mtd_partition anubis_default_nand_part_large[] = { | 165 | static struct mtd_partition __initdata anubis_default_nand_part_large[] = { |
| 165 | [0] = { | 166 | [0] = { |
| 166 | .name = "Boot Agent", | 167 | .name = "Boot Agent", |
| 167 | .size = SZ_128K, | 168 | .size = SZ_128K, |
| @@ -191,7 +192,7 @@ static struct mtd_partition anubis_default_nand_part_large[] = { | |||
| 191 | * socket. | 192 | * socket. |
| 192 | */ | 193 | */ |
| 193 | 194 | ||
| 194 | static struct s3c2410_nand_set anubis_nand_sets[] = { | 195 | static struct s3c2410_nand_set __initdata anubis_nand_sets[] = { |
| 195 | [1] = { | 196 | [1] = { |
| 196 | .name = "External", | 197 | .name = "External", |
| 197 | .nr_chips = 1, | 198 | .nr_chips = 1, |
| @@ -233,7 +234,7 @@ static void anubis_nand_select(struct s3c2410_nand_set *set, int slot) | |||
| 233 | __raw_writeb(tmp, ANUBIS_VA_CTRL1); | 234 | __raw_writeb(tmp, ANUBIS_VA_CTRL1); |
| 234 | } | 235 | } |
| 235 | 236 | ||
| 236 | static struct s3c2410_platform_nand anubis_nand_info = { | 237 | static struct s3c2410_platform_nand __initdata anubis_nand_info = { |
| 237 | .tacls = 25, | 238 | .tacls = 25, |
| 238 | .twrph0 = 55, | 239 | .twrph0 = 55, |
| 239 | .twrph1 = 40, | 240 | .twrph1 = 40, |
| @@ -437,6 +438,17 @@ static struct i2c_board_info anubis_i2c_devs[] __initdata = { | |||
| 437 | } | 438 | } |
| 438 | }; | 439 | }; |
| 439 | 440 | ||
| 441 | /* Audio setup */ | ||
| 442 | static struct s3c24xx_audio_simtec_pdata __initdata anubis_audio = { | ||
| 443 | .have_mic = 1, | ||
| 444 | .have_lout = 1, | ||
| 445 | .output_cdclk = 1, | ||
| 446 | .use_mpllin = 1, | ||
| 447 | .amp_gpio = S3C2410_GPB(2), | ||
| 448 | .amp_gain[0] = S3C2410_GPD(10), | ||
| 449 | .amp_gain[1] = S3C2410_GPD(11), | ||
| 450 | }; | ||
| 451 | |||
| 440 | static void __init anubis_map_io(void) | 452 | static void __init anubis_map_io(void) |
| 441 | { | 453 | { |
| 442 | /* initialise the clocks */ | 454 | /* initialise the clocks */ |
| @@ -454,8 +466,6 @@ static void __init anubis_map_io(void) | |||
| 454 | 466 | ||
| 455 | s3c24xx_register_clocks(anubis_clocks, ARRAY_SIZE(anubis_clocks)); | 467 | s3c24xx_register_clocks(anubis_clocks, ARRAY_SIZE(anubis_clocks)); |
| 456 | 468 | ||
| 457 | s3c_device_nand.dev.platform_data = &anubis_nand_info; | ||
| 458 | |||
| 459 | s3c24xx_init_io(anubis_iodesc, ARRAY_SIZE(anubis_iodesc)); | 469 | s3c24xx_init_io(anubis_iodesc, ARRAY_SIZE(anubis_iodesc)); |
| 460 | s3c24xx_init_clocks(0); | 470 | s3c24xx_init_clocks(0); |
| 461 | s3c24xx_init_uarts(anubis_uartcfgs, ARRAY_SIZE(anubis_uartcfgs)); | 471 | s3c24xx_init_uarts(anubis_uartcfgs, ARRAY_SIZE(anubis_uartcfgs)); |
| @@ -476,6 +486,9 @@ static void __init anubis_map_io(void) | |||
| 476 | static void __init anubis_init(void) | 486 | static void __init anubis_init(void) |
| 477 | { | 487 | { |
| 478 | s3c_i2c0_set_platdata(NULL); | 488 | s3c_i2c0_set_platdata(NULL); |
| 489 | s3c_nand_set_platdata(&anubis_nand_info); | ||
| 490 | simtec_audio_add(NULL, false, &anubis_audio); | ||
| 491 | |||
| 479 | platform_add_devices(anubis_devices, ARRAY_SIZE(anubis_devices)); | 492 | platform_add_devices(anubis_devices, ARRAY_SIZE(anubis_devices)); |
| 480 | 493 | ||
| 481 | i2c_register_board_info(0, anubis_i2c_devs, | 494 | i2c_register_board_info(0, anubis_i2c_devs, |
