diff options
Diffstat (limited to 'arch/blackfin/mach-bf561/boards/ezkit.c')
-rw-r--r-- | arch/blackfin/mach-bf561/boards/ezkit.c | 70 |
1 files changed, 58 insertions, 12 deletions
diff --git a/arch/blackfin/mach-bf561/boards/ezkit.c b/arch/blackfin/mach-bf561/boards/ezkit.c index ffd3e6a80d1a..9b93e2f95791 100644 --- a/arch/blackfin/mach-bf561/boards/ezkit.c +++ b/arch/blackfin/mach-bf561/boards/ezkit.c | |||
@@ -160,21 +160,50 @@ static struct platform_device smc91x_device = { | |||
160 | #endif | 160 | #endif |
161 | 161 | ||
162 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | 162 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) |
163 | static struct resource bfin_uart_resources[] = { | 163 | #ifdef CONFIG_SERIAL_BFIN_UART0 |
164 | static struct resource bfin_uart0_resources[] = { | ||
164 | { | 165 | { |
165 | .start = 0xFFC00400, | 166 | .start = BFIN_UART_THR, |
166 | .end = 0xFFC004FF, | 167 | .end = BFIN_UART_GCTL+2, |
167 | .flags = IORESOURCE_MEM, | 168 | .flags = IORESOURCE_MEM, |
168 | }, | 169 | }, |
170 | { | ||
171 | .start = IRQ_UART_RX, | ||
172 | .end = IRQ_UART_RX+1, | ||
173 | .flags = IORESOURCE_IRQ, | ||
174 | }, | ||
175 | { | ||
176 | .start = IRQ_UART_ERROR, | ||
177 | .end = IRQ_UART_ERROR, | ||
178 | .flags = IORESOURCE_IRQ, | ||
179 | }, | ||
180 | { | ||
181 | .start = CH_UART_TX, | ||
182 | .end = CH_UART_TX, | ||
183 | .flags = IORESOURCE_DMA, | ||
184 | }, | ||
185 | { | ||
186 | .start = CH_UART_RX, | ||
187 | .end = CH_UART_RX, | ||
188 | .flags = IORESOURCE_DMA, | ||
189 | }, | ||
169 | }; | 190 | }; |
170 | 191 | ||
171 | static struct platform_device bfin_uart_device = { | 192 | unsigned short bfin_uart0_peripherals[] = { |
193 | P_UART0_TX, P_UART0_RX, 0 | ||
194 | }; | ||
195 | |||
196 | static struct platform_device bfin_uart0_device = { | ||
172 | .name = "bfin-uart", | 197 | .name = "bfin-uart", |
173 | .id = 1, | 198 | .id = 0, |
174 | .num_resources = ARRAY_SIZE(bfin_uart_resources), | 199 | .num_resources = ARRAY_SIZE(bfin_uart0_resources), |
175 | .resource = bfin_uart_resources, | 200 | .resource = bfin_uart0_resources, |
201 | .dev = { | ||
202 | .platform_data = &bfin_uart0_peripherals, /* Passed to driver */ | ||
203 | }, | ||
176 | }; | 204 | }; |
177 | #endif | 205 | #endif |
206 | #endif | ||
178 | 207 | ||
179 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | 208 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) |
180 | #ifdef CONFIG_BFIN_SIR0 | 209 | #ifdef CONFIG_BFIN_SIR0 |
@@ -245,8 +274,8 @@ static struct platform_device ezkit_flash_device = { | |||
245 | }; | 274 | }; |
246 | #endif | 275 | #endif |
247 | 276 | ||
248 | #if defined(CONFIG_SND_BLACKFIN_AD1836) \ | 277 | #if defined(CONFIG_SND_BLACKFIN_AD183X) \ |
249 | || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) | 278 | || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE) |
250 | static struct bfin5xx_spi_chip ad1836_spi_chip_info = { | 279 | static struct bfin5xx_spi_chip ad1836_spi_chip_info = { |
251 | .enable_dma = 0, | 280 | .enable_dma = 0, |
252 | .bits_per_word = 16, | 281 | .bits_per_word = 16, |
@@ -299,8 +328,8 @@ static struct platform_device bfin_spi0_device = { | |||
299 | #endif | 328 | #endif |
300 | 329 | ||
301 | static struct spi_board_info bfin_spi_board_info[] __initdata = { | 330 | static struct spi_board_info bfin_spi_board_info[] __initdata = { |
302 | #if defined(CONFIG_SND_BLACKFIN_AD1836) \ | 331 | #if defined(CONFIG_SND_BLACKFIN_AD183X) \ |
303 | || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) | 332 | || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE) |
304 | { | 333 | { |
305 | .modalias = "ad1836", | 334 | .modalias = "ad1836", |
306 | .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ | 335 | .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ |
@@ -412,7 +441,9 @@ static struct platform_device *ezkit_devices[] __initdata = { | |||
412 | #endif | 441 | #endif |
413 | 442 | ||
414 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | 443 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) |
415 | &bfin_uart_device, | 444 | #ifdef CONFIG_SERIAL_BFIN_UART0 |
445 | &bfin_uart0_device, | ||
446 | #endif | ||
416 | #endif | 447 | #endif |
417 | 448 | ||
418 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | 449 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) |
@@ -458,3 +489,18 @@ static int __init ezkit_init(void) | |||
458 | } | 489 | } |
459 | 490 | ||
460 | arch_initcall(ezkit_init); | 491 | arch_initcall(ezkit_init); |
492 | |||
493 | static struct platform_device *ezkit_early_devices[] __initdata = { | ||
494 | #if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK) | ||
495 | #ifdef CONFIG_SERIAL_BFIN_UART0 | ||
496 | &bfin_uart0_device, | ||
497 | #endif | ||
498 | #endif | ||
499 | }; | ||
500 | |||
501 | void __init native_machine_early_platform_add_devices(void) | ||
502 | { | ||
503 | printk(KERN_INFO "register early platform devices\n"); | ||
504 | early_platform_add_devices(ezkit_early_devices, | ||
505 | ARRAY_SIZE(ezkit_early_devices)); | ||
506 | } | ||