diff options
Diffstat (limited to 'arch/blackfin/mach-bf527/boards')
-rw-r--r-- | arch/blackfin/mach-bf527/boards/Kconfig | 5 | ||||
-rw-r--r-- | arch/blackfin/mach-bf527/boards/Makefile | 1 | ||||
-rw-r--r-- | arch/blackfin/mach-bf527/boards/cm_bf527.c | 245 | ||||
-rw-r--r-- | arch/blackfin/mach-bf527/boards/ezbrd.c | 199 | ||||
-rw-r--r-- | arch/blackfin/mach-bf527/boards/ezkit.c | 431 |
5 files changed, 720 insertions, 161 deletions
diff --git a/arch/blackfin/mach-bf527/boards/Kconfig b/arch/blackfin/mach-bf527/boards/Kconfig index df224d04e16..b14c28810a4 100644 --- a/arch/blackfin/mach-bf527/boards/Kconfig +++ b/arch/blackfin/mach-bf527/boards/Kconfig | |||
@@ -9,6 +9,11 @@ config BFIN527_EZKIT | |||
9 | help | 9 | help |
10 | BF527-EZKIT-LITE board support. | 10 | BF527-EZKIT-LITE board support. |
11 | 11 | ||
12 | config BFIN527_EZKIT_V2 | ||
13 | bool "BF527-EZKIT-V2" | ||
14 | help | ||
15 | BF527-EZKIT-LITE V2.1+ board support. | ||
16 | |||
12 | config BFIN527_BLUETECHNIX_CM | 17 | config BFIN527_BLUETECHNIX_CM |
13 | bool "Bluetechnix CM-BF527" | 18 | bool "Bluetechnix CM-BF527" |
14 | help | 19 | help |
diff --git a/arch/blackfin/mach-bf527/boards/Makefile b/arch/blackfin/mach-bf527/boards/Makefile index eb6ed3362f9..51a5817c4a9 100644 --- a/arch/blackfin/mach-bf527/boards/Makefile +++ b/arch/blackfin/mach-bf527/boards/Makefile | |||
@@ -3,5 +3,6 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | obj-$(CONFIG_BFIN527_EZKIT) += ezkit.o | 5 | obj-$(CONFIG_BFIN527_EZKIT) += ezkit.o |
6 | obj-$(CONFIG_BFIN527_EZKIT_V2) += ezkit.o | ||
6 | obj-$(CONFIG_BFIN527_BLUETECHNIX_CM) += cm_bf527.o | 7 | obj-$(CONFIG_BFIN527_BLUETECHNIX_CM) += cm_bf527.o |
7 | obj-$(CONFIG_BFIN526_EZBRD) += ezbrd.o | 8 | obj-$(CONFIG_BFIN526_EZBRD) += ezbrd.o |
diff --git a/arch/blackfin/mach-bf527/boards/cm_bf527.c b/arch/blackfin/mach-bf527/boards/cm_bf527.c index 7ab0800e291..ebe76d1e874 100644 --- a/arch/blackfin/mach-bf527/boards/cm_bf527.c +++ b/arch/blackfin/mach-bf527/boards/cm_bf527.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <linux/i2c.h> | 18 | #include <linux/i2c.h> |
19 | #include <linux/irq.h> | 19 | #include <linux/irq.h> |
20 | #include <linux/interrupt.h> | 20 | #include <linux/interrupt.h> |
21 | #include <linux/usb/sl811.h> | ||
22 | #include <linux/usb/musb.h> | 21 | #include <linux/usb/musb.h> |
23 | #include <asm/dma.h> | 22 | #include <asm/dma.h> |
24 | #include <asm/bfin5xx_spi.h> | 23 | #include <asm/bfin5xx_spi.h> |
@@ -270,50 +269,6 @@ static struct platform_device dm9000_device = { | |||
270 | }; | 269 | }; |
271 | #endif | 270 | #endif |
272 | 271 | ||
273 | #if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE) | ||
274 | static struct resource sl811_hcd_resources[] = { | ||
275 | { | ||
276 | .start = 0x20340000, | ||
277 | .end = 0x20340000, | ||
278 | .flags = IORESOURCE_MEM, | ||
279 | }, { | ||
280 | .start = 0x20340004, | ||
281 | .end = 0x20340004, | ||
282 | .flags = IORESOURCE_MEM, | ||
283 | }, { | ||
284 | .start = CONFIG_USB_SL811_BFIN_IRQ, | ||
285 | .end = CONFIG_USB_SL811_BFIN_IRQ, | ||
286 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, | ||
287 | }, | ||
288 | }; | ||
289 | |||
290 | #if defined(CONFIG_USB_SL811_BFIN_USE_VBUS) | ||
291 | void sl811_port_power(struct device *dev, int is_on) | ||
292 | { | ||
293 | gpio_request(CONFIG_USB_SL811_BFIN_GPIO_VBUS, "usb:SL811_VBUS"); | ||
294 | gpio_direction_output(CONFIG_USB_SL811_BFIN_GPIO_VBUS, is_on); | ||
295 | } | ||
296 | #endif | ||
297 | |||
298 | static struct sl811_platform_data sl811_priv = { | ||
299 | .potpg = 10, | ||
300 | .power = 250, /* == 500mA */ | ||
301 | #if defined(CONFIG_USB_SL811_BFIN_USE_VBUS) | ||
302 | .port_power = &sl811_port_power, | ||
303 | #endif | ||
304 | }; | ||
305 | |||
306 | static struct platform_device sl811_hcd_device = { | ||
307 | .name = "sl811-hcd", | ||
308 | .id = 0, | ||
309 | .dev = { | ||
310 | .platform_data = &sl811_priv, | ||
311 | }, | ||
312 | .num_resources = ARRAY_SIZE(sl811_hcd_resources), | ||
313 | .resource = sl811_hcd_resources, | ||
314 | }; | ||
315 | #endif | ||
316 | |||
317 | #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) | 272 | #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) |
318 | static struct platform_device bfin_mii_bus = { | 273 | static struct platform_device bfin_mii_bus = { |
319 | .name = "bfin_mii_bus", | 274 | .name = "bfin_mii_bus", |
@@ -384,8 +339,8 @@ static struct bfin5xx_spi_chip spi_adc_chip_info = { | |||
384 | }; | 339 | }; |
385 | #endif | 340 | #endif |
386 | 341 | ||
387 | #if defined(CONFIG_SND_BLACKFIN_AD1836) \ | 342 | #if defined(CONFIG_SND_BLACKFIN_AD183X) \ |
388 | || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) | 343 | || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE) |
389 | static struct bfin5xx_spi_chip ad1836_spi_chip_info = { | 344 | static struct bfin5xx_spi_chip ad1836_spi_chip_info = { |
390 | .enable_dma = 0, | 345 | .enable_dma = 0, |
391 | .bits_per_word = 16, | 346 | .bits_per_word = 16, |
@@ -462,8 +417,8 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = { | |||
462 | }, | 417 | }, |
463 | #endif | 418 | #endif |
464 | 419 | ||
465 | #if defined(CONFIG_SND_BLACKFIN_AD1836) \ | 420 | #if defined(CONFIG_SND_BLACKFIN_AD183X) \ |
466 | || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) | 421 | || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE) |
467 | { | 422 | { |
468 | .modalias = "ad1836", | 423 | .modalias = "ad1836", |
469 | .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ | 424 | .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ |
@@ -603,30 +558,105 @@ static struct platform_device cm_flash_device = { | |||
603 | #endif | 558 | #endif |
604 | 559 | ||
605 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | 560 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) |
606 | static struct resource bfin_uart_resources[] = { | ||
607 | #ifdef CONFIG_SERIAL_BFIN_UART0 | 561 | #ifdef CONFIG_SERIAL_BFIN_UART0 |
562 | static struct resource bfin_uart0_resources[] = { | ||
608 | { | 563 | { |
609 | .start = 0xFFC00400, | 564 | .start = UART0_THR, |
610 | .end = 0xFFC004FF, | 565 | .end = UART0_GCTL+2, |
611 | .flags = IORESOURCE_MEM, | 566 | .flags = IORESOURCE_MEM, |
612 | }, | 567 | }, |
568 | { | ||
569 | .start = IRQ_UART0_RX, | ||
570 | .end = IRQ_UART0_RX+1, | ||
571 | .flags = IORESOURCE_IRQ, | ||
572 | }, | ||
573 | { | ||
574 | .start = IRQ_UART0_ERROR, | ||
575 | .end = IRQ_UART0_ERROR, | ||
576 | .flags = IORESOURCE_IRQ, | ||
577 | }, | ||
578 | { | ||
579 | .start = CH_UART0_TX, | ||
580 | .end = CH_UART0_TX, | ||
581 | .flags = IORESOURCE_DMA, | ||
582 | }, | ||
583 | { | ||
584 | .start = CH_UART0_RX, | ||
585 | .end = CH_UART0_RX, | ||
586 | .flags = IORESOURCE_DMA, | ||
587 | }, | ||
588 | }; | ||
589 | |||
590 | unsigned short bfin_uart0_peripherals[] = { | ||
591 | P_UART0_TX, P_UART0_RX, 0 | ||
592 | }; | ||
593 | |||
594 | static struct platform_device bfin_uart0_device = { | ||
595 | .name = "bfin-uart", | ||
596 | .id = 0, | ||
597 | .num_resources = ARRAY_SIZE(bfin_uart0_resources), | ||
598 | .resource = bfin_uart0_resources, | ||
599 | .dev = { | ||
600 | .platform_data = &bfin_uart0_peripherals, /* Passed to driver */ | ||
601 | }, | ||
602 | }; | ||
613 | #endif | 603 | #endif |
614 | #ifdef CONFIG_SERIAL_BFIN_UART1 | 604 | #ifdef CONFIG_SERIAL_BFIN_UART1 |
605 | static struct resource bfin_uart1_resources[] = { | ||
615 | { | 606 | { |
616 | .start = 0xFFC02000, | 607 | .start = UART1_THR, |
617 | .end = 0xFFC020FF, | 608 | .end = UART1_GCTL+2, |
618 | .flags = IORESOURCE_MEM, | 609 | .flags = IORESOURCE_MEM, |
619 | }, | 610 | }, |
611 | { | ||
612 | .start = IRQ_UART1_RX, | ||
613 | .end = IRQ_UART1_RX+1, | ||
614 | .flags = IORESOURCE_IRQ, | ||
615 | }, | ||
616 | { | ||
617 | .start = IRQ_UART1_ERROR, | ||
618 | .end = IRQ_UART1_ERROR, | ||
619 | .flags = IORESOURCE_IRQ, | ||
620 | }, | ||
621 | { | ||
622 | .start = CH_UART1_TX, | ||
623 | .end = CH_UART1_TX, | ||
624 | .flags = IORESOURCE_DMA, | ||
625 | }, | ||
626 | { | ||
627 | .start = CH_UART1_RX, | ||
628 | .end = CH_UART1_RX, | ||
629 | .flags = IORESOURCE_DMA, | ||
630 | }, | ||
631 | #ifdef CONFIG_BFIN_UART1_CTSRTS | ||
632 | { /* CTS pin */ | ||
633 | .start = GPIO_PF9, | ||
634 | .end = GPIO_PF9, | ||
635 | .flags = IORESOURCE_IO, | ||
636 | }, | ||
637 | { /* RTS pin */ | ||
638 | .start = GPIO_PF10, | ||
639 | .end = GPIO_PF10, | ||
640 | .flags = IORESOURCE_IO, | ||
641 | }, | ||
620 | #endif | 642 | #endif |
621 | }; | 643 | }; |
622 | 644 | ||
623 | static struct platform_device bfin_uart_device = { | 645 | unsigned short bfin_uart1_peripherals[] = { |
646 | P_UART1_TX, P_UART1_RX, 0 | ||
647 | }; | ||
648 | |||
649 | static struct platform_device bfin_uart1_device = { | ||
624 | .name = "bfin-uart", | 650 | .name = "bfin-uart", |
625 | .id = 1, | 651 | .id = 1, |
626 | .num_resources = ARRAY_SIZE(bfin_uart_resources), | 652 | .num_resources = ARRAY_SIZE(bfin_uart1_resources), |
627 | .resource = bfin_uart_resources, | 653 | .resource = bfin_uart1_resources, |
654 | .dev = { | ||
655 | .platform_data = &bfin_uart1_peripherals, /* Passed to driver */ | ||
656 | }, | ||
628 | }; | 657 | }; |
629 | #endif | 658 | #endif |
659 | #endif | ||
630 | 660 | ||
631 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | 661 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) |
632 | #ifdef CONFIG_BFIN_SIR0 | 662 | #ifdef CONFIG_BFIN_SIR0 |
@@ -725,16 +755,75 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = { | |||
725 | }; | 755 | }; |
726 | 756 | ||
727 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) | 757 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) |
758 | #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART | ||
759 | static struct resource bfin_sport0_uart_resources[] = { | ||
760 | { | ||
761 | .start = SPORT0_TCR1, | ||
762 | .end = SPORT0_MRCS3+4, | ||
763 | .flags = IORESOURCE_MEM, | ||
764 | }, | ||
765 | { | ||
766 | .start = IRQ_SPORT0_RX, | ||
767 | .end = IRQ_SPORT0_RX+1, | ||
768 | .flags = IORESOURCE_IRQ, | ||
769 | }, | ||
770 | { | ||
771 | .start = IRQ_SPORT0_ERROR, | ||
772 | .end = IRQ_SPORT0_ERROR, | ||
773 | .flags = IORESOURCE_IRQ, | ||
774 | }, | ||
775 | }; | ||
776 | |||
777 | unsigned short bfin_sport0_peripherals[] = { | ||
778 | P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS, | ||
779 | P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0 | ||
780 | }; | ||
781 | |||
728 | static struct platform_device bfin_sport0_uart_device = { | 782 | static struct platform_device bfin_sport0_uart_device = { |
729 | .name = "bfin-sport-uart", | 783 | .name = "bfin-sport-uart", |
730 | .id = 0, | 784 | .id = 0, |
785 | .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources), | ||
786 | .resource = bfin_sport0_uart_resources, | ||
787 | .dev = { | ||
788 | .platform_data = &bfin_sport0_peripherals, /* Passed to driver */ | ||
789 | }, | ||
790 | }; | ||
791 | #endif | ||
792 | #ifdef CONFIG_SERIAL_BFIN_SPORT1_UART | ||
793 | static struct resource bfin_sport1_uart_resources[] = { | ||
794 | { | ||
795 | .start = SPORT1_TCR1, | ||
796 | .end = SPORT1_MRCS3+4, | ||
797 | .flags = IORESOURCE_MEM, | ||
798 | }, | ||
799 | { | ||
800 | .start = IRQ_SPORT1_RX, | ||
801 | .end = IRQ_SPORT1_RX+1, | ||
802 | .flags = IORESOURCE_IRQ, | ||
803 | }, | ||
804 | { | ||
805 | .start = IRQ_SPORT1_ERROR, | ||
806 | .end = IRQ_SPORT1_ERROR, | ||
807 | .flags = IORESOURCE_IRQ, | ||
808 | }, | ||
809 | }; | ||
810 | |||
811 | unsigned short bfin_sport1_peripherals[] = { | ||
812 | P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS, | ||
813 | P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0 | ||
731 | }; | 814 | }; |
732 | 815 | ||
733 | static struct platform_device bfin_sport1_uart_device = { | 816 | static struct platform_device bfin_sport1_uart_device = { |
734 | .name = "bfin-sport-uart", | 817 | .name = "bfin-sport-uart", |
735 | .id = 1, | 818 | .id = 1, |
819 | .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources), | ||
820 | .resource = bfin_sport1_uart_resources, | ||
821 | .dev = { | ||
822 | .platform_data = &bfin_sport1_peripherals, /* Passed to driver */ | ||
823 | }, | ||
736 | }; | 824 | }; |
737 | #endif | 825 | #endif |
826 | #endif | ||
738 | 827 | ||
739 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) | 828 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) |
740 | #include <linux/input.h> | 829 | #include <linux/input.h> |
@@ -795,10 +884,6 @@ static struct platform_device *cmbf527_devices[] __initdata = { | |||
795 | &rtc_device, | 884 | &rtc_device, |
796 | #endif | 885 | #endif |
797 | 886 | ||
798 | #if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE) | ||
799 | &sl811_hcd_device, | ||
800 | #endif | ||
801 | |||
802 | #if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) | 887 | #if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) |
803 | &bfin_isp1760_device, | 888 | &bfin_isp1760_device, |
804 | #endif | 889 | #endif |
@@ -829,7 +914,12 @@ static struct platform_device *cmbf527_devices[] __initdata = { | |||
829 | #endif | 914 | #endif |
830 | 915 | ||
831 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | 916 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) |
832 | &bfin_uart_device, | 917 | #ifdef CONFIG_SERIAL_BFIN_UART0 |
918 | &bfin_uart0_device, | ||
919 | #endif | ||
920 | #ifdef CONFIG_SERIAL_BFIN_UART1 | ||
921 | &bfin_uart1_device, | ||
922 | #endif | ||
833 | #endif | 923 | #endif |
834 | 924 | ||
835 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | 925 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) |
@@ -846,9 +936,13 @@ static struct platform_device *cmbf527_devices[] __initdata = { | |||
846 | #endif | 936 | #endif |
847 | 937 | ||
848 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) | 938 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) |
939 | #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART | ||
849 | &bfin_sport0_uart_device, | 940 | &bfin_sport0_uart_device, |
941 | #endif | ||
942 | #ifdef CONFIG_SERIAL_BFIN_SPORT1_UART | ||
850 | &bfin_sport1_uart_device, | 943 | &bfin_sport1_uart_device, |
851 | #endif | 944 | #endif |
945 | #endif | ||
852 | 946 | ||
853 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) | 947 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) |
854 | &bfin_device_gpiokeys, | 948 | &bfin_device_gpiokeys, |
@@ -871,6 +965,33 @@ static int __init cm_init(void) | |||
871 | 965 | ||
872 | arch_initcall(cm_init); | 966 | arch_initcall(cm_init); |
873 | 967 | ||
968 | static struct platform_device *cmbf527_early_devices[] __initdata = { | ||
969 | #if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK) | ||
970 | #ifdef CONFIG_SERIAL_BFIN_UART0 | ||
971 | &bfin_uart0_device, | ||
972 | #endif | ||
973 | #ifdef CONFIG_SERIAL_BFIN_UART1 | ||
974 | &bfin_uart1_device, | ||
975 | #endif | ||
976 | #endif | ||
977 | |||
978 | #if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE) | ||
979 | #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART | ||
980 | &bfin_sport0_uart_device, | ||
981 | #endif | ||
982 | #ifdef CONFIG_SERIAL_BFIN_SPORT1_UART | ||
983 | &bfin_sport1_uart_device, | ||
984 | #endif | ||
985 | #endif | ||
986 | }; | ||
987 | |||
988 | void __init native_machine_early_platform_add_devices(void) | ||
989 | { | ||
990 | printk(KERN_INFO "register early platform devices\n"); | ||
991 | early_platform_add_devices(cmbf527_early_devices, | ||
992 | ARRAY_SIZE(cmbf527_early_devices)); | ||
993 | } | ||
994 | |||
874 | void native_machine_restart(char *cmd) | 995 | void native_machine_restart(char *cmd) |
875 | { | 996 | { |
876 | /* workaround reboot hang when booting from SPI */ | 997 | /* workaround reboot hang when booting from SPI */ |
diff --git a/arch/blackfin/mach-bf527/boards/ezbrd.c b/arch/blackfin/mach-bf527/boards/ezbrd.c index cad23b15d83..55069af4f67 100644 --- a/arch/blackfin/mach-bf527/boards/ezbrd.c +++ b/arch/blackfin/mach-bf527/boards/ezbrd.c | |||
@@ -274,8 +274,8 @@ static const struct ad7879_platform_data bfin_ad7879_ts_info = { | |||
274 | .median = 2, /* do 8 measurements */ | 274 | .median = 2, /* do 8 measurements */ |
275 | .averaging = 1, /* take the average of 4 middle samples */ | 275 | .averaging = 1, /* take the average of 4 middle samples */ |
276 | .pen_down_acc_interval = 255, /* 9.4 ms */ | 276 | .pen_down_acc_interval = 255, /* 9.4 ms */ |
277 | .gpio_output = 1, /* configure AUX/VBAT/GPIO as GPIO output */ | 277 | .gpio_export = 1, /* Export GPIO to gpiolib */ |
278 | .gpio_default = 1, /* During initialization set GPIO = HIGH */ | 278 | .gpio_base = -1, /* Dynamic allocation */ |
279 | }; | 279 | }; |
280 | #endif | 280 | #endif |
281 | 281 | ||
@@ -439,30 +439,105 @@ static struct platform_device bfin_spi0_device = { | |||
439 | #endif /* spi master and devices */ | 439 | #endif /* spi master and devices */ |
440 | 440 | ||
441 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | 441 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) |
442 | static struct resource bfin_uart_resources[] = { | ||
443 | #ifdef CONFIG_SERIAL_BFIN_UART0 | 442 | #ifdef CONFIG_SERIAL_BFIN_UART0 |
443 | static struct resource bfin_uart0_resources[] = { | ||
444 | { | 444 | { |
445 | .start = 0xFFC00400, | 445 | .start = UART0_THR, |
446 | .end = 0xFFC004FF, | 446 | .end = UART0_GCTL+2, |
447 | .flags = IORESOURCE_MEM, | 447 | .flags = IORESOURCE_MEM, |
448 | }, | 448 | }, |
449 | { | ||
450 | .start = IRQ_UART0_RX, | ||
451 | .end = IRQ_UART0_RX+1, | ||
452 | .flags = IORESOURCE_IRQ, | ||
453 | }, | ||
454 | { | ||
455 | .start = IRQ_UART0_ERROR, | ||
456 | .end = IRQ_UART0_ERROR, | ||
457 | .flags = IORESOURCE_IRQ, | ||
458 | }, | ||
459 | { | ||
460 | .start = CH_UART0_TX, | ||
461 | .end = CH_UART0_TX, | ||
462 | .flags = IORESOURCE_DMA, | ||
463 | }, | ||
464 | { | ||
465 | .start = CH_UART0_RX, | ||
466 | .end = CH_UART0_RX, | ||
467 | .flags = IORESOURCE_DMA, | ||
468 | }, | ||
469 | }; | ||
470 | |||
471 | unsigned short bfin_uart0_peripherals[] = { | ||
472 | P_UART0_TX, P_UART0_RX, 0 | ||
473 | }; | ||
474 | |||
475 | static struct platform_device bfin_uart0_device = { | ||
476 | .name = "bfin-uart", | ||
477 | .id = 0, | ||
478 | .num_resources = ARRAY_SIZE(bfin_uart0_resources), | ||
479 | .resource = bfin_uart0_resources, | ||
480 | .dev = { | ||
481 | .platform_data = &bfin_uart0_peripherals, /* Passed to driver */ | ||
482 | }, | ||
483 | }; | ||
449 | #endif | 484 | #endif |
450 | #ifdef CONFIG_SERIAL_BFIN_UART1 | 485 | #ifdef CONFIG_SERIAL_BFIN_UART1 |
486 | static struct resource bfin_uart1_resources[] = { | ||
451 | { | 487 | { |
452 | .start = 0xFFC02000, | 488 | .start = UART1_THR, |
453 | .end = 0xFFC020FF, | 489 | .end = UART1_GCTL+2, |
454 | .flags = IORESOURCE_MEM, | 490 | .flags = IORESOURCE_MEM, |
455 | }, | 491 | }, |
492 | { | ||
493 | .start = IRQ_UART1_RX, | ||
494 | .end = IRQ_UART1_RX+1, | ||
495 | .flags = IORESOURCE_IRQ, | ||
496 | }, | ||
497 | { | ||
498 | .start = IRQ_UART1_ERROR, | ||
499 | .end = IRQ_UART1_ERROR, | ||
500 | .flags = IORESOURCE_IRQ, | ||
501 | }, | ||
502 | { | ||
503 | .start = CH_UART1_TX, | ||
504 | .end = CH_UART1_TX, | ||
505 | .flags = IORESOURCE_DMA, | ||
506 | }, | ||
507 | { | ||
508 | .start = CH_UART1_RX, | ||
509 | .end = CH_UART1_RX, | ||
510 | .flags = IORESOURCE_DMA, | ||
511 | }, | ||
512 | #ifdef CONFIG_BFIN_UART1_CTSRTS | ||
513 | { /* CTS pin */ | ||
514 | .start = GPIO_PG0, | ||
515 | .end = GPIO_PG0, | ||
516 | .flags = IORESOURCE_IO, | ||
517 | }, | ||
518 | { /* RTS pin */ | ||
519 | .start = GPIO_PF10, | ||
520 | .end = GPIO_PF10, | ||
521 | .flags = IORESOURCE_IO, | ||
522 | }, | ||
456 | #endif | 523 | #endif |
457 | }; | 524 | }; |
458 | 525 | ||
459 | static struct platform_device bfin_uart_device = { | 526 | unsigned short bfin_uart1_peripherals[] = { |
527 | P_UART1_TX, P_UART1_RX, 0 | ||
528 | }; | ||
529 | |||
530 | static struct platform_device bfin_uart1_device = { | ||
460 | .name = "bfin-uart", | 531 | .name = "bfin-uart", |
461 | .id = 1, | 532 | .id = 1, |
462 | .num_resources = ARRAY_SIZE(bfin_uart_resources), | 533 | .num_resources = ARRAY_SIZE(bfin_uart1_resources), |
463 | .resource = bfin_uart_resources, | 534 | .resource = bfin_uart1_resources, |
535 | .dev = { | ||
536 | .platform_data = &bfin_uart1_peripherals, /* Passed to driver */ | ||
537 | }, | ||
464 | }; | 538 | }; |
465 | #endif | 539 | #endif |
540 | #endif | ||
466 | 541 | ||
467 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | 542 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) |
468 | #ifdef CONFIG_BFIN_SIR0 | 543 | #ifdef CONFIG_BFIN_SIR0 |
@@ -556,16 +631,75 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = { | |||
556 | }; | 631 | }; |
557 | 632 | ||
558 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) | 633 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) |
634 | #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART | ||
635 | static struct resource bfin_sport0_uart_resources[] = { | ||
636 | { | ||
637 | .start = SPORT0_TCR1, | ||
638 | .end = SPORT0_MRCS3+4, | ||
639 | .flags = IORESOURCE_MEM, | ||
640 | }, | ||
641 | { | ||
642 | .start = IRQ_SPORT0_RX, | ||
643 | .end = IRQ_SPORT0_RX+1, | ||
644 | .flags = IORESOURCE_IRQ, | ||
645 | }, | ||
646 | { | ||
647 | .start = IRQ_SPORT0_ERROR, | ||
648 | .end = IRQ_SPORT0_ERROR, | ||
649 | .flags = IORESOURCE_IRQ, | ||
650 | }, | ||
651 | }; | ||
652 | |||
653 | unsigned short bfin_sport0_peripherals[] = { | ||
654 | P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS, | ||
655 | P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0 | ||
656 | }; | ||
657 | |||
559 | static struct platform_device bfin_sport0_uart_device = { | 658 | static struct platform_device bfin_sport0_uart_device = { |
560 | .name = "bfin-sport-uart", | 659 | .name = "bfin-sport-uart", |
561 | .id = 0, | 660 | .id = 0, |
661 | .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources), | ||
662 | .resource = bfin_sport0_uart_resources, | ||
663 | .dev = { | ||
664 | .platform_data = &bfin_sport0_peripherals, /* Passed to driver */ | ||
665 | }, | ||
666 | }; | ||
667 | #endif | ||
668 | #ifdef CONFIG_SERIAL_BFIN_SPORT1_UART | ||
669 | static struct resource bfin_sport1_uart_resources[] = { | ||
670 | { | ||
671 | .start = SPORT1_TCR1, | ||
672 | .end = SPORT1_MRCS3+4, | ||
673 | .flags = IORESOURCE_MEM, | ||
674 | }, | ||
675 | { | ||
676 | .start = IRQ_SPORT1_RX, | ||
677 | .end = IRQ_SPORT1_RX+1, | ||
678 | .flags = IORESOURCE_IRQ, | ||
679 | }, | ||
680 | { | ||
681 | .start = IRQ_SPORT1_ERROR, | ||
682 | .end = IRQ_SPORT1_ERROR, | ||
683 | .flags = IORESOURCE_IRQ, | ||
684 | }, | ||
685 | }; | ||
686 | |||
687 | unsigned short bfin_sport1_peripherals[] = { | ||
688 | P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS, | ||
689 | P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0 | ||
562 | }; | 690 | }; |
563 | 691 | ||
564 | static struct platform_device bfin_sport1_uart_device = { | 692 | static struct platform_device bfin_sport1_uart_device = { |
565 | .name = "bfin-sport-uart", | 693 | .name = "bfin-sport-uart", |
566 | .id = 1, | 694 | .id = 1, |
695 | .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources), | ||
696 | .resource = bfin_sport1_uart_resources, | ||
697 | .dev = { | ||
698 | .platform_data = &bfin_sport1_peripherals, /* Passed to driver */ | ||
699 | }, | ||
567 | }; | 700 | }; |
568 | #endif | 701 | #endif |
702 | #endif | ||
569 | 703 | ||
570 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) | 704 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) |
571 | #include <linux/input.h> | 705 | #include <linux/input.h> |
@@ -615,9 +749,10 @@ static struct platform_device bfin_dpmc = { | |||
615 | #include <asm/bfin-lq035q1.h> | 749 | #include <asm/bfin-lq035q1.h> |
616 | 750 | ||
617 | static struct bfin_lq035q1fb_disp_info bfin_lq035q1_data = { | 751 | static struct bfin_lq035q1fb_disp_info bfin_lq035q1_data = { |
618 | .mode = LQ035_NORM | LQ035_RGB | LQ035_RL | LQ035_TB, | 752 | .mode = LQ035_NORM | LQ035_RGB | LQ035_RL | LQ035_TB, |
619 | .use_bl = 1, | 753 | .ppi_mode = USE_RGB565_16_BIT_PPI, |
620 | .gpio_bl = GPIO_PG12, | 754 | .use_bl = 1, |
755 | .gpio_bl = GPIO_PG12, | ||
621 | }; | 756 | }; |
622 | 757 | ||
623 | static struct resource bfin_lq035q1_resources[] = { | 758 | static struct resource bfin_lq035q1_resources[] = { |
@@ -665,7 +800,12 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
665 | #endif | 800 | #endif |
666 | 801 | ||
667 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | 802 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) |
668 | &bfin_uart_device, | 803 | #ifdef CONFIG_SERIAL_BFIN_UART0 |
804 | &bfin_uart0_device, | ||
805 | #endif | ||
806 | #ifdef CONFIG_SERIAL_BFIN_UART1 | ||
807 | &bfin_uart1_device, | ||
808 | #endif | ||
669 | #endif | 809 | #endif |
670 | 810 | ||
671 | #if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE) | 811 | #if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE) |
@@ -686,9 +826,13 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
686 | #endif | 826 | #endif |
687 | 827 | ||
688 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) | 828 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) |
829 | #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART | ||
689 | &bfin_sport0_uart_device, | 830 | &bfin_sport0_uart_device, |
831 | #endif | ||
832 | #ifdef CONFIG_SERIAL_BFIN_SPORT1_UART | ||
690 | &bfin_sport1_uart_device, | 833 | &bfin_sport1_uart_device, |
691 | #endif | 834 | #endif |
835 | #endif | ||
692 | 836 | ||
693 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) | 837 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) |
694 | &bfin_device_gpiokeys, | 838 | &bfin_device_gpiokeys, |
@@ -711,6 +855,33 @@ static int __init ezbrd_init(void) | |||
711 | 855 | ||
712 | arch_initcall(ezbrd_init); | 856 | arch_initcall(ezbrd_init); |
713 | 857 | ||
858 | static struct platform_device *ezbrd_early_devices[] __initdata = { | ||
859 | #if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK) | ||
860 | #ifdef CONFIG_SERIAL_BFIN_UART0 | ||
861 | &bfin_uart0_device, | ||
862 | #endif | ||
863 | #ifdef CONFIG_SERIAL_BFIN_UART1 | ||
864 | &bfin_uart1_device, | ||
865 | #endif | ||
866 | #endif | ||
867 | |||
868 | #if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE) | ||
869 | #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART | ||
870 | &bfin_sport0_uart_device, | ||
871 | #endif | ||
872 | #ifdef CONFIG_SERIAL_BFIN_SPORT1_UART | ||
873 | &bfin_sport1_uart_device, | ||
874 | #endif | ||
875 | #endif | ||
876 | }; | ||
877 | |||
878 | void __init native_machine_early_platform_add_devices(void) | ||
879 | { | ||
880 | printk(KERN_INFO "register early platform devices\n"); | ||
881 | early_platform_add_devices(ezbrd_early_devices, | ||
882 | ARRAY_SIZE(ezbrd_early_devices)); | ||
883 | } | ||
884 | |||
714 | void native_machine_restart(char *cmd) | 885 | void native_machine_restart(char *cmd) |
715 | { | 886 | { |
716 | /* workaround reboot hang when booting from SPI */ | 887 | /* workaround reboot hang when booting from SPI */ |
diff --git a/arch/blackfin/mach-bf527/boards/ezkit.c b/arch/blackfin/mach-bf527/boards/ezkit.c index 5294fdd2073..923383386aa 100644 --- a/arch/blackfin/mach-bf527/boards/ezkit.c +++ b/arch/blackfin/mach-bf527/boards/ezkit.c | |||
@@ -16,8 +16,9 @@ | |||
16 | #include <linux/i2c.h> | 16 | #include <linux/i2c.h> |
17 | #include <linux/irq.h> | 17 | #include <linux/irq.h> |
18 | #include <linux/interrupt.h> | 18 | #include <linux/interrupt.h> |
19 | #include <linux/usb/sl811.h> | ||
20 | #include <linux/usb/musb.h> | 19 | #include <linux/usb/musb.h> |
20 | #include <linux/leds.h> | ||
21 | #include <linux/input.h> | ||
21 | #include <asm/dma.h> | 22 | #include <asm/dma.h> |
22 | #include <asm/bfin5xx_spi.h> | 23 | #include <asm/bfin5xx_spi.h> |
23 | #include <asm/reboot.h> | 24 | #include <asm/reboot.h> |
@@ -29,7 +30,11 @@ | |||
29 | /* | 30 | /* |
30 | * Name the Board for the /proc/cpuinfo | 31 | * Name the Board for the /proc/cpuinfo |
31 | */ | 32 | */ |
33 | #ifdef CONFIG_BFIN527_EZKIT_V2 | ||
34 | const char bfin_board_name[] = "ADI BF527-EZKIT V2"; | ||
35 | #else | ||
32 | const char bfin_board_name[] = "ADI BF527-EZKIT"; | 36 | const char bfin_board_name[] = "ADI BF527-EZKIT"; |
37 | #endif | ||
33 | 38 | ||
34 | /* | 39 | /* |
35 | * Driver needs to know address, irq and flag pin. | 40 | * Driver needs to know address, irq and flag pin. |
@@ -143,6 +148,33 @@ static struct platform_device bf52x_t350mcqb_device = { | |||
143 | }; | 148 | }; |
144 | #endif | 149 | #endif |
145 | 150 | ||
151 | #if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE) | ||
152 | #include <asm/bfin-lq035q1.h> | ||
153 | |||
154 | static struct bfin_lq035q1fb_disp_info bfin_lq035q1_data = { | ||
155 | .mode = LQ035_NORM | LQ035_RGB | LQ035_RL | LQ035_TB, | ||
156 | .ppi_mode = USE_RGB565_8_BIT_PPI, | ||
157 | }; | ||
158 | |||
159 | static struct resource bfin_lq035q1_resources[] = { | ||
160 | { | ||
161 | .start = IRQ_PPI_ERROR, | ||
162 | .end = IRQ_PPI_ERROR, | ||
163 | .flags = IORESOURCE_IRQ, | ||
164 | }, | ||
165 | }; | ||
166 | |||
167 | static struct platform_device bfin_lq035q1_device = { | ||
168 | .name = "bfin-lq035q1", | ||
169 | .id = -1, | ||
170 | .num_resources = ARRAY_SIZE(bfin_lq035q1_resources), | ||
171 | .resource = bfin_lq035q1_resources, | ||
172 | .dev = { | ||
173 | .platform_data = &bfin_lq035q1_data, | ||
174 | }, | ||
175 | }; | ||
176 | #endif | ||
177 | |||
146 | #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) | 178 | #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) |
147 | static struct mtd_partition ezkit_partitions[] = { | 179 | static struct mtd_partition ezkit_partitions[] = { |
148 | { | 180 | { |
@@ -326,50 +358,6 @@ static struct platform_device dm9000_device = { | |||
326 | }; | 358 | }; |
327 | #endif | 359 | #endif |
328 | 360 | ||
329 | #if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE) | ||
330 | static struct resource sl811_hcd_resources[] = { | ||
331 | { | ||
332 | .start = 0x20340000, | ||
333 | .end = 0x20340000, | ||
334 | .flags = IORESOURCE_MEM, | ||
335 | }, { | ||
336 | .start = 0x20340004, | ||
337 | .end = 0x20340004, | ||
338 | .flags = IORESOURCE_MEM, | ||
339 | }, { | ||
340 | .start = CONFIG_USB_SL811_BFIN_IRQ, | ||
341 | .end = CONFIG_USB_SL811_BFIN_IRQ, | ||
342 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, | ||
343 | }, | ||
344 | }; | ||
345 | |||
346 | #if defined(CONFIG_USB_SL811_BFIN_USE_VBUS) | ||
347 | void sl811_port_power(struct device *dev, int is_on) | ||
348 | { | ||
349 | gpio_request(CONFIG_USB_SL811_BFIN_GPIO_VBUS, "usb:SL811_VBUS"); | ||
350 | gpio_direction_output(CONFIG_USB_SL811_BFIN_GPIO_VBUS, is_on); | ||
351 | } | ||
352 | #endif | ||
353 | |||
354 | static struct sl811_platform_data sl811_priv = { | ||
355 | .potpg = 10, | ||
356 | .power = 250, /* == 500mA */ | ||
357 | #if defined(CONFIG_USB_SL811_BFIN_USE_VBUS) | ||
358 | .port_power = &sl811_port_power, | ||
359 | #endif | ||
360 | }; | ||
361 | |||
362 | static struct platform_device sl811_hcd_device = { | ||
363 | .name = "sl811-hcd", | ||
364 | .id = 0, | ||
365 | .dev = { | ||
366 | .platform_data = &sl811_priv, | ||
367 | }, | ||
368 | .num_resources = ARRAY_SIZE(sl811_hcd_resources), | ||
369 | .resource = sl811_hcd_resources, | ||
370 | }; | ||
371 | #endif | ||
372 | |||
373 | #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) | 361 | #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) |
374 | static struct platform_device bfin_mii_bus = { | 362 | static struct platform_device bfin_mii_bus = { |
375 | .name = "bfin_mii_bus", | 363 | .name = "bfin_mii_bus", |
@@ -440,8 +428,8 @@ static struct bfin5xx_spi_chip spi_adc_chip_info = { | |||
440 | }; | 428 | }; |
441 | #endif | 429 | #endif |
442 | 430 | ||
443 | #if defined(CONFIG_SND_BLACKFIN_AD1836) \ | 431 | #if defined(CONFIG_SND_BLACKFIN_AD183X) \ |
444 | || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) | 432 | || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE) |
445 | static struct bfin5xx_spi_chip ad1836_spi_chip_info = { | 433 | static struct bfin5xx_spi_chip ad1836_spi_chip_info = { |
446 | .enable_dma = 0, | 434 | .enable_dma = 0, |
447 | .bits_per_word = 16, | 435 | .bits_per_word = 16, |
@@ -488,8 +476,7 @@ static const struct ad7879_platform_data bfin_ad7879_ts_info = { | |||
488 | .median = 2, /* do 8 measurements */ | 476 | .median = 2, /* do 8 measurements */ |
489 | .averaging = 1, /* take the average of 4 middle samples */ | 477 | .averaging = 1, /* take the average of 4 middle samples */ |
490 | .pen_down_acc_interval = 255, /* 9.4 ms */ | 478 | .pen_down_acc_interval = 255, /* 9.4 ms */ |
491 | .gpio_output = 1, /* configure AUX/VBAT/GPIO as GPIO output */ | 479 | .gpio_export = 0, /* Export GPIO to gpiolib */ |
492 | .gpio_default = 1, /* During initialization set GPIO = HIGH */ | ||
493 | }; | 480 | }; |
494 | #endif | 481 | #endif |
495 | 482 | ||
@@ -500,14 +487,6 @@ static struct bfin5xx_spi_chip spi_ad7879_chip_info = { | |||
500 | }; | 487 | }; |
501 | #endif | 488 | #endif |
502 | 489 | ||
503 | #if defined(CONFIG_SND_SOC_WM8731) || defined(CONFIG_SND_SOC_WM8731_MODULE) \ | ||
504 | && defined(CONFIG_SND_SOC_WM8731_SPI) | ||
505 | static struct bfin5xx_spi_chip spi_wm8731_chip_info = { | ||
506 | .enable_dma = 0, | ||
507 | .bits_per_word = 16, | ||
508 | }; | ||
509 | #endif | ||
510 | |||
511 | #if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE) | 490 | #if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE) |
512 | static struct bfin5xx_spi_chip spidev_chip_info = { | 491 | static struct bfin5xx_spi_chip spidev_chip_info = { |
513 | .enable_dma = 0, | 492 | .enable_dma = 0, |
@@ -515,6 +494,29 @@ static struct bfin5xx_spi_chip spidev_chip_info = { | |||
515 | }; | 494 | }; |
516 | #endif | 495 | #endif |
517 | 496 | ||
497 | #if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE) | ||
498 | static struct platform_device bfin_i2s = { | ||
499 | .name = "bfin-i2s", | ||
500 | .id = CONFIG_SND_BF5XX_SPORT_NUM, | ||
501 | /* TODO: add platform data here */ | ||
502 | }; | ||
503 | #endif | ||
504 | |||
505 | #if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE) | ||
506 | static struct platform_device bfin_tdm = { | ||
507 | .name = "bfin-tdm", | ||
508 | .id = CONFIG_SND_BF5XX_SPORT_NUM, | ||
509 | /* TODO: add platform data here */ | ||
510 | }; | ||
511 | #endif | ||
512 | |||
513 | #if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE) | ||
514 | static struct bfin5xx_spi_chip lq035q1_spi_chip_info = { | ||
515 | .enable_dma = 0, | ||
516 | .bits_per_word = 8, | ||
517 | }; | ||
518 | #endif | ||
519 | |||
518 | static struct spi_board_info bfin_spi_board_info[] __initdata = { | 520 | static struct spi_board_info bfin_spi_board_info[] __initdata = { |
519 | #if defined(CONFIG_MTD_M25P80) \ | 521 | #if defined(CONFIG_MTD_M25P80) \ |
520 | || defined(CONFIG_MTD_M25P80_MODULE) | 522 | || defined(CONFIG_MTD_M25P80_MODULE) |
@@ -542,8 +544,8 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = { | |||
542 | }, | 544 | }, |
543 | #endif | 545 | #endif |
544 | 546 | ||
545 | #if defined(CONFIG_SND_BLACKFIN_AD1836) \ | 547 | #if defined(CONFIG_SND_BLACKFIN_AD183X) \ |
546 | || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) | 548 | || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE) |
547 | { | 549 | { |
548 | .modalias = "ad1836", | 550 | .modalias = "ad1836", |
549 | .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ | 551 | .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ |
@@ -586,17 +588,6 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = { | |||
586 | .mode = SPI_CPHA | SPI_CPOL, | 588 | .mode = SPI_CPHA | SPI_CPOL, |
587 | }, | 589 | }, |
588 | #endif | 590 | #endif |
589 | #if defined(CONFIG_SND_SOC_WM8731) || defined(CONFIG_SND_SOC_WM8731_MODULE) \ | ||
590 | && defined(CONFIG_SND_SOC_WM8731_SPI) | ||
591 | { | ||
592 | .modalias = "wm8731", | ||
593 | .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ | ||
594 | .bus_num = 0, | ||
595 | .chip_select = 5, | ||
596 | .controller_data = &spi_wm8731_chip_info, | ||
597 | .mode = SPI_MODE_0, | ||
598 | }, | ||
599 | #endif | ||
600 | #if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE) | 591 | #if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE) |
601 | { | 592 | { |
602 | .modalias = "spidev", | 593 | .modalias = "spidev", |
@@ -606,6 +597,16 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = { | |||
606 | .controller_data = &spidev_chip_info, | 597 | .controller_data = &spidev_chip_info, |
607 | }, | 598 | }, |
608 | #endif | 599 | #endif |
600 | #if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE) | ||
601 | { | ||
602 | .modalias = "bfin-lq035q1-spi", | ||
603 | .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */ | ||
604 | .bus_num = 0, | ||
605 | .chip_select = 7, | ||
606 | .controller_data = &lq035q1_spi_chip_info, | ||
607 | .mode = SPI_CPHA | SPI_CPOL, | ||
608 | }, | ||
609 | #endif | ||
609 | }; | 610 | }; |
610 | 611 | ||
611 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 612 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
@@ -647,30 +648,105 @@ static struct platform_device bfin_spi0_device = { | |||
647 | #endif /* spi master and devices */ | 648 | #endif /* spi master and devices */ |
648 | 649 | ||
649 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | 650 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) |
650 | static struct resource bfin_uart_resources[] = { | ||
651 | #ifdef CONFIG_SERIAL_BFIN_UART0 | 651 | #ifdef CONFIG_SERIAL_BFIN_UART0 |
652 | static struct resource bfin_uart0_resources[] = { | ||
652 | { | 653 | { |
653 | .start = 0xFFC00400, | 654 | .start = UART0_THR, |
654 | .end = 0xFFC004FF, | 655 | .end = UART0_GCTL+2, |
655 | .flags = IORESOURCE_MEM, | 656 | .flags = IORESOURCE_MEM, |
656 | }, | 657 | }, |
658 | { | ||
659 | .start = IRQ_UART0_RX, | ||
660 | .end = IRQ_UART0_RX+1, | ||
661 | .flags = IORESOURCE_IRQ, | ||
662 | }, | ||
663 | { | ||
664 | .start = IRQ_UART0_ERROR, | ||
665 | .end = IRQ_UART0_ERROR, | ||
666 | .flags = IORESOURCE_IRQ, | ||
667 | }, | ||
668 | { | ||
669 | .start = CH_UART0_TX, | ||
670 | .end = CH_UART0_TX, | ||
671 | .flags = IORESOURCE_DMA, | ||
672 | }, | ||
673 | { | ||
674 | .start = CH_UART0_RX, | ||
675 | .end = CH_UART0_RX, | ||
676 | .flags = IORESOURCE_DMA, | ||
677 | }, | ||
678 | }; | ||
679 | |||
680 | unsigned short bfin_uart0_peripherals[] = { | ||
681 | P_UART0_TX, P_UART0_RX, 0 | ||
682 | }; | ||
683 | |||
684 | static struct platform_device bfin_uart0_device = { | ||
685 | .name = "bfin-uart", | ||
686 | .id = 0, | ||
687 | .num_resources = ARRAY_SIZE(bfin_uart0_resources), | ||
688 | .resource = bfin_uart0_resources, | ||
689 | .dev = { | ||
690 | .platform_data = &bfin_uart0_peripherals, /* Passed to driver */ | ||
691 | }, | ||
692 | }; | ||
657 | #endif | 693 | #endif |
658 | #ifdef CONFIG_SERIAL_BFIN_UART1 | 694 | #ifdef CONFIG_SERIAL_BFIN_UART1 |
695 | static struct resource bfin_uart1_resources[] = { | ||
659 | { | 696 | { |
660 | .start = 0xFFC02000, | 697 | .start = UART1_THR, |
661 | .end = 0xFFC020FF, | 698 | .end = UART1_GCTL+2, |
662 | .flags = IORESOURCE_MEM, | 699 | .flags = IORESOURCE_MEM, |
663 | }, | 700 | }, |
701 | { | ||
702 | .start = IRQ_UART1_RX, | ||
703 | .end = IRQ_UART1_RX+1, | ||
704 | .flags = IORESOURCE_IRQ, | ||
705 | }, | ||
706 | { | ||
707 | .start = IRQ_UART1_ERROR, | ||
708 | .end = IRQ_UART1_ERROR, | ||
709 | .flags = IORESOURCE_IRQ, | ||
710 | }, | ||
711 | { | ||
712 | .start = CH_UART1_TX, | ||
713 | .end = CH_UART1_TX, | ||
714 | .flags = IORESOURCE_DMA, | ||
715 | }, | ||
716 | { | ||
717 | .start = CH_UART1_RX, | ||
718 | .end = CH_UART1_RX, | ||
719 | .flags = IORESOURCE_DMA, | ||
720 | }, | ||
721 | #ifdef CONFIG_BFIN_UART1_CTSRTS | ||
722 | { /* CTS pin */ | ||
723 | .start = GPIO_PF9, | ||
724 | .end = GPIO_PF9, | ||
725 | .flags = IORESOURCE_IO, | ||
726 | }, | ||
727 | { /* RTS pin */ | ||
728 | .start = GPIO_PF10, | ||
729 | .end = GPIO_PF10, | ||
730 | .flags = IORESOURCE_IO, | ||
731 | }, | ||
664 | #endif | 732 | #endif |
665 | }; | 733 | }; |
666 | 734 | ||
667 | static struct platform_device bfin_uart_device = { | 735 | unsigned short bfin_uart1_peripherals[] = { |
736 | P_UART1_TX, P_UART1_RX, 0 | ||
737 | }; | ||
738 | |||
739 | static struct platform_device bfin_uart1_device = { | ||
668 | .name = "bfin-uart", | 740 | .name = "bfin-uart", |
669 | .id = 1, | 741 | .id = 1, |
670 | .num_resources = ARRAY_SIZE(bfin_uart_resources), | 742 | .num_resources = ARRAY_SIZE(bfin_uart1_resources), |
671 | .resource = bfin_uart_resources, | 743 | .resource = bfin_uart1_resources, |
744 | .dev = { | ||
745 | .platform_data = &bfin_uart1_peripherals, /* Passed to driver */ | ||
746 | }, | ||
672 | }; | 747 | }; |
673 | #endif | 748 | #endif |
749 | #endif | ||
674 | 750 | ||
675 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | 751 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) |
676 | #ifdef CONFIG_BFIN_SIR0 | 752 | #ifdef CONFIG_BFIN_SIR0 |
@@ -749,6 +825,71 @@ static struct platform_device i2c_bfin_twi_device = { | |||
749 | }; | 825 | }; |
750 | #endif | 826 | #endif |
751 | 827 | ||
828 | #if defined(CONFIG_PMIC_ADP5520) || defined(CONFIG_PMIC_ADP5520_MODULE) | ||
829 | #include <linux/mfd/adp5520.h> | ||
830 | |||
831 | /* | ||
832 | * ADP5520/5501 LEDs Data | ||
833 | */ | ||
834 | |||
835 | static struct led_info adp5520_leds[] = { | ||
836 | { | ||
837 | .name = "adp5520-led1", | ||
838 | .default_trigger = "none", | ||
839 | .flags = FLAG_ID_ADP5520_LED1_ADP5501_LED0 | ADP5520_LED_OFFT_600ms, | ||
840 | }, | ||
841 | }; | ||
842 | |||
843 | static struct adp5520_leds_platform_data adp5520_leds_data = { | ||
844 | .num_leds = ARRAY_SIZE(adp5520_leds), | ||
845 | .leds = adp5520_leds, | ||
846 | .fade_in = ADP5520_FADE_T_600ms, | ||
847 | .fade_out = ADP5520_FADE_T_600ms, | ||
848 | .led_on_time = ADP5520_LED_ONT_600ms, | ||
849 | }; | ||
850 | |||
851 | /* | ||
852 | * ADP5520 Keypad Data | ||
853 | */ | ||
854 | |||
855 | static const unsigned short adp5520_keymap[ADP5520_KEYMAPSIZE] = { | ||
856 | [ADP5520_KEY(3, 3)] = KEY_1, | ||
857 | [ADP5520_KEY(2, 3)] = KEY_2, | ||
858 | [ADP5520_KEY(1, 3)] = KEY_3, | ||
859 | [ADP5520_KEY(0, 3)] = KEY_UP, | ||
860 | [ADP5520_KEY(3, 2)] = KEY_4, | ||
861 | [ADP5520_KEY(2, 2)] = KEY_5, | ||
862 | [ADP5520_KEY(1, 2)] = KEY_6, | ||
863 | [ADP5520_KEY(0, 2)] = KEY_DOWN, | ||
864 | [ADP5520_KEY(3, 1)] = KEY_7, | ||
865 | [ADP5520_KEY(2, 1)] = KEY_8, | ||
866 | [ADP5520_KEY(1, 1)] = KEY_9, | ||
867 | [ADP5520_KEY(0, 1)] = KEY_DOT, | ||
868 | [ADP5520_KEY(3, 0)] = KEY_BACKSPACE, | ||
869 | [ADP5520_KEY(2, 0)] = KEY_0, | ||
870 | [ADP5520_KEY(1, 0)] = KEY_HELP, | ||
871 | [ADP5520_KEY(0, 0)] = KEY_ENTER, | ||
872 | }; | ||
873 | |||
874 | static struct adp5520_keys_platform_data adp5520_keys_data = { | ||
875 | .rows_en_mask = ADP5520_ROW_R3 | ADP5520_ROW_R2 | ADP5520_ROW_R1 | ADP5520_ROW_R0, | ||
876 | .cols_en_mask = ADP5520_COL_C3 | ADP5520_COL_C2 | ADP5520_COL_C1 | ADP5520_COL_C0, | ||
877 | .keymap = adp5520_keymap, | ||
878 | .keymapsize = ARRAY_SIZE(adp5520_keymap), | ||
879 | .repeat = 0, | ||
880 | }; | ||
881 | |||
882 | /* | ||
883 | * ADP5520/5501 Multifuction Device Init Data | ||
884 | */ | ||
885 | |||
886 | static struct adp5520_platform_data adp5520_pdev_data = { | ||
887 | .leds = &adp5520_leds_data, | ||
888 | .keys = &adp5520_keys_data, | ||
889 | }; | ||
890 | |||
891 | #endif | ||
892 | |||
752 | static struct i2c_board_info __initdata bfin_i2c_board_info[] = { | 893 | static struct i2c_board_info __initdata bfin_i2c_board_info[] = { |
753 | #if defined(CONFIG_BFIN_TWI_LCD) || defined(CONFIG_BFIN_TWI_LCD_MODULE) | 894 | #if defined(CONFIG_BFIN_TWI_LCD) || defined(CONFIG_BFIN_TWI_LCD_MODULE) |
754 | { | 895 | { |
@@ -766,22 +907,99 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = { | |||
766 | I2C_BOARD_INFO("bfin-adv7393", 0x2B), | 907 | I2C_BOARD_INFO("bfin-adv7393", 0x2B), |
767 | }, | 908 | }, |
768 | #endif | 909 | #endif |
910 | #if defined(CONFIG_TOUCHSCREEN_AD7879_I2C) || defined(CONFIG_TOUCHSCREEN_AD7879_I2C_MODULE) | ||
911 | { | ||
912 | I2C_BOARD_INFO("ad7879", 0x2C), | ||
913 | .irq = IRQ_PF8, | ||
914 | .platform_data = (void *)&bfin_ad7879_ts_info, | ||
915 | }, | ||
916 | #endif | ||
917 | #if defined(CONFIG_PMIC_ADP5520) || defined(CONFIG_PMIC_ADP5520_MODULE) | ||
918 | { | ||
919 | I2C_BOARD_INFO("pmic-adp5520", 0x32), | ||
920 | .irq = IRQ_PF9, | ||
921 | .platform_data = (void *)&adp5520_pdev_data, | ||
922 | }, | ||
923 | #endif | ||
924 | #if defined(CONFIG_SND_SOC_SSM2602) || defined(CONFIG_SND_SOC_SSM2602_MODULE) | ||
925 | { | ||
926 | I2C_BOARD_INFO("ssm2602", 0x1b), | ||
927 | }, | ||
928 | #endif | ||
769 | }; | 929 | }; |
770 | 930 | ||
771 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) | 931 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) |
932 | #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART | ||
933 | static struct resource bfin_sport0_uart_resources[] = { | ||
934 | { | ||
935 | .start = SPORT0_TCR1, | ||
936 | .end = SPORT0_MRCS3+4, | ||
937 | .flags = IORESOURCE_MEM, | ||
938 | }, | ||
939 | { | ||
940 | .start = IRQ_SPORT0_RX, | ||
941 | .end = IRQ_SPORT0_RX+1, | ||
942 | .flags = IORESOURCE_IRQ, | ||
943 | }, | ||
944 | { | ||
945 | .start = IRQ_SPORT0_ERROR, | ||
946 | .end = IRQ_SPORT0_ERROR, | ||
947 | .flags = IORESOURCE_IRQ, | ||
948 | }, | ||
949 | }; | ||
950 | |||
951 | unsigned short bfin_sport0_peripherals[] = { | ||
952 | P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS, | ||
953 | P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0 | ||
954 | }; | ||
955 | |||
772 | static struct platform_device bfin_sport0_uart_device = { | 956 | static struct platform_device bfin_sport0_uart_device = { |
773 | .name = "bfin-sport-uart", | 957 | .name = "bfin-sport-uart", |
774 | .id = 0, | 958 | .id = 0, |
959 | .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources), | ||
960 | .resource = bfin_sport0_uart_resources, | ||
961 | .dev = { | ||
962 | .platform_data = &bfin_sport0_peripherals, /* Passed to driver */ | ||
963 | }, | ||
964 | }; | ||
965 | #endif | ||
966 | #ifdef CONFIG_SERIAL_BFIN_SPORT1_UART | ||
967 | static struct resource bfin_sport1_uart_resources[] = { | ||
968 | { | ||
969 | .start = SPORT1_TCR1, | ||
970 | .end = SPORT1_MRCS3+4, | ||
971 | .flags = IORESOURCE_MEM, | ||
972 | }, | ||
973 | { | ||
974 | .start = IRQ_SPORT1_RX, | ||
975 | .end = IRQ_SPORT1_RX+1, | ||
976 | .flags = IORESOURCE_IRQ, | ||
977 | }, | ||
978 | { | ||
979 | .start = IRQ_SPORT1_ERROR, | ||
980 | .end = IRQ_SPORT1_ERROR, | ||
981 | .flags = IORESOURCE_IRQ, | ||
982 | }, | ||
983 | }; | ||
984 | |||
985 | unsigned short bfin_sport1_peripherals[] = { | ||
986 | P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS, | ||
987 | P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0 | ||
775 | }; | 988 | }; |
776 | 989 | ||
777 | static struct platform_device bfin_sport1_uart_device = { | 990 | static struct platform_device bfin_sport1_uart_device = { |
778 | .name = "bfin-sport-uart", | 991 | .name = "bfin-sport-uart", |
779 | .id = 1, | 992 | .id = 1, |
993 | .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources), | ||
994 | .resource = bfin_sport1_uart_resources, | ||
995 | .dev = { | ||
996 | .platform_data = &bfin_sport1_peripherals, /* Passed to driver */ | ||
997 | }, | ||
780 | }; | 998 | }; |
781 | #endif | 999 | #endif |
1000 | #endif | ||
782 | 1001 | ||
783 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) | 1002 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) |
784 | #include <linux/input.h> | ||
785 | #include <linux/gpio_keys.h> | 1003 | #include <linux/gpio_keys.h> |
786 | 1004 | ||
787 | static struct gpio_keys_button bfin_gpio_keys_table[] = { | 1005 | static struct gpio_keys_button bfin_gpio_keys_table[] = { |
@@ -803,7 +1021,6 @@ static struct platform_device bfin_device_gpiokeys = { | |||
803 | #endif | 1021 | #endif |
804 | 1022 | ||
805 | #if defined(CONFIG_INPUT_BFIN_ROTARY) || defined(CONFIG_INPUT_BFIN_ROTARY_MODULE) | 1023 | #if defined(CONFIG_INPUT_BFIN_ROTARY) || defined(CONFIG_INPUT_BFIN_ROTARY_MODULE) |
806 | #include <linux/input.h> | ||
807 | #include <asm/bfin_rotary.h> | 1024 | #include <asm/bfin_rotary.h> |
808 | 1025 | ||
809 | static struct bfin_rotary_platform_data bfin_rotary_data = { | 1026 | static struct bfin_rotary_platform_data bfin_rotary_data = { |
@@ -872,10 +1089,6 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
872 | &rtc_device, | 1089 | &rtc_device, |
873 | #endif | 1090 | #endif |
874 | 1091 | ||
875 | #if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE) | ||
876 | &sl811_hcd_device, | ||
877 | #endif | ||
878 | |||
879 | #if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) | 1092 | #if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) |
880 | &bfin_isp1760_device, | 1093 | &bfin_isp1760_device, |
881 | #endif | 1094 | #endif |
@@ -909,8 +1122,17 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
909 | &bf52x_t350mcqb_device, | 1122 | &bf52x_t350mcqb_device, |
910 | #endif | 1123 | #endif |
911 | 1124 | ||
1125 | #if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE) | ||
1126 | &bfin_lq035q1_device, | ||
1127 | #endif | ||
1128 | |||
912 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | 1129 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) |
913 | &bfin_uart_device, | 1130 | #ifdef CONFIG_SERIAL_BFIN_UART0 |
1131 | &bfin_uart0_device, | ||
1132 | #endif | ||
1133 | #ifdef CONFIG_SERIAL_BFIN_UART1 | ||
1134 | &bfin_uart1_device, | ||
1135 | #endif | ||
914 | #endif | 1136 | #endif |
915 | 1137 | ||
916 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) | 1138 | #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) |
@@ -927,9 +1149,13 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
927 | #endif | 1149 | #endif |
928 | 1150 | ||
929 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) | 1151 | #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) |
1152 | #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART | ||
930 | &bfin_sport0_uart_device, | 1153 | &bfin_sport0_uart_device, |
1154 | #endif | ||
1155 | #ifdef CONFIG_SERIAL_BFIN_SPORT1_UART | ||
931 | &bfin_sport1_uart_device, | 1156 | &bfin_sport1_uart_device, |
932 | #endif | 1157 | #endif |
1158 | #endif | ||
933 | 1159 | ||
934 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) | 1160 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) |
935 | &bfin_device_gpiokeys, | 1161 | &bfin_device_gpiokeys, |
@@ -942,6 +1168,14 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
942 | #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) | 1168 | #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) |
943 | &ezkit_flash_device, | 1169 | &ezkit_flash_device, |
944 | #endif | 1170 | #endif |
1171 | |||
1172 | #if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE) | ||
1173 | &bfin_i2s, | ||
1174 | #endif | ||
1175 | |||
1176 | #if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE) | ||
1177 | &bfin_tdm, | ||
1178 | #endif | ||
945 | }; | 1179 | }; |
946 | 1180 | ||
947 | static int __init ezkit_init(void) | 1181 | static int __init ezkit_init(void) |
@@ -956,6 +1190,33 @@ static int __init ezkit_init(void) | |||
956 | 1190 | ||
957 | arch_initcall(ezkit_init); | 1191 | arch_initcall(ezkit_init); |
958 | 1192 | ||
1193 | static struct platform_device *ezkit_early_devices[] __initdata = { | ||
1194 | #if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK) | ||
1195 | #ifdef CONFIG_SERIAL_BFIN_UART0 | ||
1196 | &bfin_uart0_device, | ||
1197 | #endif | ||
1198 | #ifdef CONFIG_SERIAL_BFIN_UART1 | ||
1199 | &bfin_uart1_device, | ||
1200 | #endif | ||
1201 | #endif | ||
1202 | |||
1203 | #if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE) | ||
1204 | #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART | ||
1205 | &bfin_sport0_uart_device, | ||
1206 | #endif | ||
1207 | #ifdef CONFIG_SERIAL_BFIN_SPORT1_UART | ||
1208 | &bfin_sport1_uart_device, | ||
1209 | #endif | ||
1210 | #endif | ||
1211 | }; | ||
1212 | |||
1213 | void __init native_machine_early_platform_add_devices(void) | ||
1214 | { | ||
1215 | printk(KERN_INFO "register early platform devices\n"); | ||
1216 | early_platform_add_devices(ezkit_early_devices, | ||
1217 | ARRAY_SIZE(ezkit_early_devices)); | ||
1218 | } | ||
1219 | |||
959 | void native_machine_restart(char *cmd) | 1220 | void native_machine_restart(char *cmd) |
960 | { | 1221 | { |
961 | /* workaround reboot hang when booting from SPI */ | 1222 | /* workaround reboot hang when booting from SPI */ |