diff options
Diffstat (limited to 'arch/arm/mach-at91rm9200/board-dk.c')
-rw-r--r-- | arch/arm/mach-at91rm9200/board-dk.c | 45 |
1 files changed, 32 insertions, 13 deletions
diff --git a/arch/arm/mach-at91rm9200/board-dk.c b/arch/arm/mach-at91rm9200/board-dk.c index 65873037e02a..c699f3984d4b 100644 --- a/arch/arm/mach-at91rm9200/board-dk.c +++ b/arch/arm/mach-at91rm9200/board-dk.c | |||
@@ -37,20 +37,11 @@ | |||
37 | #include <asm/mach/map.h> | 37 | #include <asm/mach/map.h> |
38 | #include <asm/mach/irq.h> | 38 | #include <asm/mach/irq.h> |
39 | 39 | ||
40 | #include <asm/hardware.h> | ||
41 | #include <asm/arch/board.h> | 40 | #include <asm/arch/board.h> |
42 | #include <asm/arch/gpio.h> | 41 | #include <asm/arch/gpio.h> |
43 | 42 | ||
44 | #include "generic.h" | 43 | #include "generic.h" |
45 | 44 | ||
46 | static void __init dk_init_irq(void) | ||
47 | { | ||
48 | /* Initialize AIC controller */ | ||
49 | at91rm9200_init_irq(NULL); | ||
50 | |||
51 | /* Set up the GPIO interrupts */ | ||
52 | at91_gpio_irq_setup(BGA_GPIO_BANKS); | ||
53 | } | ||
54 | 45 | ||
55 | /* | 46 | /* |
56 | * Serial port configuration. | 47 | * Serial port configuration. |
@@ -65,10 +56,8 @@ static struct at91_uart_config __initdata dk_uart_config = { | |||
65 | 56 | ||
66 | static void __init dk_map_io(void) | 57 | static void __init dk_map_io(void) |
67 | { | 58 | { |
68 | at91rm9200_map_io(); | 59 | /* Initialize processor: 18.432 MHz crystal */ |
69 | 60 | at91rm9200_initialize(18432000, AT91RM9200_BGA); | |
70 | /* Initialize clocks: 18.432 MHz crystal */ | ||
71 | at91_clock_init(18432000); | ||
72 | 61 | ||
73 | /* Setup the LEDs */ | 62 | /* Setup the LEDs */ |
74 | at91_init_leds(AT91_PIN_PB2, AT91_PIN_PB2); | 63 | at91_init_leds(AT91_PIN_PB2, AT91_PIN_PB2); |
@@ -77,6 +66,11 @@ static void __init dk_map_io(void) | |||
77 | at91_init_serial(&dk_uart_config); | 66 | at91_init_serial(&dk_uart_config); |
78 | } | 67 | } |
79 | 68 | ||
69 | static void __init dk_init_irq(void) | ||
70 | { | ||
71 | at91rm9200_init_interrupts(NULL); | ||
72 | } | ||
73 | |||
80 | static struct at91_eth_data __initdata dk_eth_data = { | 74 | static struct at91_eth_data __initdata dk_eth_data = { |
81 | .phy_irq_pin = AT91_PIN_PC4, | 75 | .phy_irq_pin = AT91_PIN_PC4, |
82 | .is_rmii = 1, | 76 | .is_rmii = 1, |
@@ -128,6 +122,29 @@ static struct spi_board_info dk_spi_devices[] = { | |||
128 | #endif | 122 | #endif |
129 | }; | 123 | }; |
130 | 124 | ||
125 | static struct mtd_partition __initdata dk_nand_partition[] = { | ||
126 | { | ||
127 | .name = "NAND Partition 1", | ||
128 | .offset = 0, | ||
129 | .size = MTDPART_SIZ_FULL, | ||
130 | }, | ||
131 | }; | ||
132 | |||
133 | static struct mtd_partition *nand_partitions(int size, int *num_partitions) | ||
134 | { | ||
135 | *num_partitions = ARRAY_SIZE(dk_nand_partition); | ||
136 | return dk_nand_partition; | ||
137 | } | ||
138 | |||
139 | static struct at91_nand_data __initdata dk_nand_data = { | ||
140 | .ale = 22, | ||
141 | .cle = 21, | ||
142 | .det_pin = AT91_PIN_PB1, | ||
143 | .rdy_pin = AT91_PIN_PC2, | ||
144 | // .enable_pin = ... not there | ||
145 | .partition_info = nand_partitions, | ||
146 | }; | ||
147 | |||
131 | static void __init dk_board_init(void) | 148 | static void __init dk_board_init(void) |
132 | { | 149 | { |
133 | /* Serial */ | 150 | /* Serial */ |
@@ -153,6 +170,8 @@ static void __init dk_board_init(void) | |||
153 | at91_set_gpio_output(AT91_PIN_PB7, 1); /* this MMC card slot can optionally use SPI signaling (CS3). */ | 170 | at91_set_gpio_output(AT91_PIN_PB7, 1); /* this MMC card slot can optionally use SPI signaling (CS3). */ |
154 | at91_add_device_mmc(&dk_mmc_data); | 171 | at91_add_device_mmc(&dk_mmc_data); |
155 | #endif | 172 | #endif |
173 | /* NAND */ | ||
174 | at91_add_device_nand(&dk_nand_data); | ||
156 | /* VGA */ | 175 | /* VGA */ |
157 | // dk_add_device_video(); | 176 | // dk_add_device_video(); |
158 | } | 177 | } |