10 #include <linux/device.h>
11 #include <linux/export.h>
19 #include <linux/i2c.h>
25 #include <asm/reboot.h>
40 #if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
42 static struct resource bfin_isp1760_resources[] = {
45 .end = 0x203C0000 + 0x000fffff,
60 .dack_polarity_high = 0,
61 .dreq_polarity_high = 0,
68 .platform_data = &isp1760_priv,
70 .num_resources =
ARRAY_SIZE(bfin_isp1760_resources),
71 .resource = bfin_isp1760_resources,
75 #if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
76 static struct resource musb_resources[] = {
107 .gpio_vrsel_active = 1,
112 #if defined(CONFIG_USB_MUSB_OTG)
114 #elif defined(CONFIG_USB_MUSB_HDRC_HCD)
116 #elif defined(CONFIG_USB_GADGET_MUSB_HDRC)
119 .config = &musb_config,
122 static u64 musb_dmamask = ~(
u32)0;
125 .
name =
"musb-blackfin",
128 .dma_mask = &musb_dmamask,
129 .coherent_dma_mask = 0xffffffff,
130 .platform_data = &musb_plat,
133 .resource = musb_resources,
137 #if defined(CONFIG_MTD_NAND_BF5XX) || defined(CONFIG_MTD_NAND_BF5XX_MODULE)
140 .name =
"linux kernel(nand)",
142 .size = 4 * 1024 * 1024,
145 .name =
"file system(nand)",
153 .partitions = partition_info,
159 static struct resource bf5xx_nand_resources[] = {
173 .
name =
"bf5xx-nand",
175 .num_resources =
ARRAY_SIZE(bf5xx_nand_resources),
176 .resource = bf5xx_nand_resources,
178 .platform_data = &bf5xx_nand_platform,
183 #if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE)
184 static struct resource bfin_pcmcia_cf_resources[] = {
205 .
name =
"bfin_cf_pcmcia",
207 .num_resources =
ARRAY_SIZE(bfin_pcmcia_cf_resources),
208 .resource = bfin_pcmcia_cf_resources,
212 #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
219 #if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
228 static struct resource smc91x_resources[] = {
230 .
name =
"smc91x-regs",
232 .end = 0x20300300 + 16,
244 .num_resources =
ARRAY_SIZE(smc91x_resources),
245 .resource = smc91x_resources,
247 .platform_data = &smc91x_info,
252 #if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
253 static struct resource dm9000_resources[] = {
256 .end = 0x203FB800 + 1,
261 .end = 0x203FB804 + 1,
274 .num_resources =
ARRAY_SIZE(dm9000_resources),
275 .resource = dm9000_resources,
279 #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
281 static const unsigned short bfin_mac_peripherals[] =
P_RMII0;
292 .phydev_data = bfin_phydev_data,
294 .mac_peripherals = bfin_mac_peripherals,
298 .
name =
"bfin_mii_bus",
300 .platform_data = &bfin_mii_bus_data,
307 .platform_data = &bfin_mii_bus,
312 #if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
313 static struct resource net2272_bfin_resources[] = {
316 .end = 0x20300000 + 0x100,
328 .num_resources =
ARRAY_SIZE(net2272_bfin_resources),
329 .resource = net2272_bfin_resources,
333 #if defined(CONFIG_MTD_M25P80) \
334 || defined(CONFIG_MTD_M25P80_MODULE)
337 .
name =
"bootloader(spi)",
342 .name =
"linux kernel(spi)",
350 .parts = bfin_spi_flash_partitions,
351 .nr_parts =
ARRAY_SIZE(bfin_spi_flash_partitions),
361 #if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
367 #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
370 .vref_delay_usecs = 50,
373 .pressure_max = 1000,
375 .stopacq_polarity = 1,
376 .first_conversion_delay = 3,
377 .acquisition_time = 1,
379 .pen_down_acc_interval = 1,
384 #if defined(CONFIG_MTD_M25P80) \
385 || defined(CONFIG_MTD_M25P80_MODULE)
388 .modalias =
"m25p80",
389 .max_speed_hz = 25000000,
392 .platform_data = &bfin_spi_flash_data,
393 .controller_data = &spi_flash_chip_info,
398 #if defined(CONFIG_SND_BF5XX_SOC_AD183X) \
399 || defined(CONFIG_SND_BF5XX_SOC_AD183X_MODULE)
401 .modalias =
"ad183x",
402 .max_speed_hz = 3125000,
407 #if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
409 .modalias =
"mmc_spi",
410 .max_speed_hz = 20000000,
413 .controller_data = &mmc_spi_chip_info,
417 #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
419 .modalias =
"ad7877",
420 .platform_data = &bfin_ad7877_ts_info,
422 .max_speed_hz = 12500000,
427 #if defined(CONFIG_SND_SOC_WM8731) || defined(CONFIG_SND_SOC_WM8731_MODULE) \
428 && defined(CONFIG_SND_SOC_WM8731_SPI)
430 .modalias =
"wm8731",
431 .max_speed_hz = 3125000,
437 #if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE)
439 .modalias =
"spidev",
440 .max_speed_hz = 3125000,
447 #if defined(CONFIG_SPI_BFIN5XX) || defined(CONFIG_SPI_BFIN5XX_MODULE)
456 static struct resource bfin_spi0_resource[] = {
477 .num_resources =
ARRAY_SIZE(bfin_spi0_resource),
478 .resource = bfin_spi0_resource,
480 .platform_data = &bfin_spi0_info,
485 #if defined(CONFIG_MTD_GPIO_ADDR) || defined(CONFIG_MTD_GPIO_ADDR_MODULE)
488 .
name =
"bootloader(nor)",
492 .name =
"linux kernel(nor)",
496 .name =
"file system(nor)",
504 .parts = cm_partitions,
510 static struct resource cm_flash_resource[] = {
517 .start = (
unsigned long)cm_flash_gpios,
524 .
name =
"gpio-addr-flash",
527 .platform_data = &cm_flash_data,
529 .num_resources =
ARRAY_SIZE(cm_flash_resource),
530 .resource = cm_flash_resource,
534 #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
535 #ifdef CONFIG_SERIAL_BFIN_UART0
536 static struct resource bfin_uart0_resources[] = {
569 static unsigned short bfin_uart0_peripherals[] = {
576 .num_resources =
ARRAY_SIZE(bfin_uart0_resources),
577 .resource = bfin_uart0_resources,
579 .platform_data = &bfin_uart0_peripherals,
583 #ifdef CONFIG_SERIAL_BFIN_UART1
584 static struct resource bfin_uart1_resources[] = {
615 #ifdef CONFIG_BFIN_UART1_CTSRTS
629 static unsigned short bfin_uart1_peripherals[] = {
636 .num_resources =
ARRAY_SIZE(bfin_uart1_resources),
637 .resource = bfin_uart1_resources,
639 .platform_data = &bfin_uart1_peripherals,
645 #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
646 #ifdef CONFIG_BFIN_SIR0
647 static struct resource bfin_sir0_resources[] = {
668 .num_resources =
ARRAY_SIZE(bfin_sir0_resources),
669 .resource = bfin_sir0_resources,
672 #ifdef CONFIG_BFIN_SIR1
673 static struct resource bfin_sir1_resources[] = {
694 .num_resources =
ARRAY_SIZE(bfin_sir1_resources),
695 .resource = bfin_sir1_resources,
700 #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
703 static struct resource bfin_twi0_resource[] = {
717 .
name =
"i2c-bfin-twi",
719 .num_resources =
ARRAY_SIZE(bfin_twi0_resource),
720 .resource = bfin_twi0_resource,
722 .platform_data = &bfin_twi0_pins,
728 #if defined(CONFIG_BFIN_TWI_LCD) || defined(CONFIG_BFIN_TWI_LCD_MODULE)
733 #if defined(CONFIG_INPUT_PCF8574) || defined(CONFIG_INPUT_PCF8574_MODULE)
739 #if defined(CONFIG_FB_BFIN_7393) || defined(CONFIG_FB_BFIN_7393_MODULE)
746 #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
747 #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
748 static struct resource bfin_sport0_uart_resources[] = {
766 static unsigned short bfin_sport0_peripherals[] = {
772 .
name =
"bfin-sport-uart",
774 .num_resources =
ARRAY_SIZE(bfin_sport0_uart_resources),
775 .resource = bfin_sport0_uart_resources,
777 .platform_data = &bfin_sport0_peripherals,
781 #ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
782 static struct resource bfin_sport1_uart_resources[] = {
800 static unsigned short bfin_sport1_peripherals[] = {
806 .
name =
"bfin-sport-uart",
808 .num_resources =
ARRAY_SIZE(bfin_sport1_uart_resources),
809 .resource = bfin_sport1_uart_resources,
811 .platform_data = &bfin_sport1_peripherals,
817 #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
818 #include <linux/input.h>
826 .
buttons = bfin_gpio_keys_table,
833 .platform_data = &bfin_gpio_keys_data,
838 static const unsigned int cclk_vlev_datasheet[] =
848 .tuple_tab = cclk_vlev_datasheet,
850 .vr_settling_time = 25 ,
856 .platform_data = &bfin_dmpc_vreg_data,
864 #if defined(CONFIG_MTD_NAND_BF5XX) || defined(CONFIG_MTD_NAND_BF5XX_MODULE)
868 #if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE)
869 &bfin_pcmcia_cf_device,
872 #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
876 #if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
877 &bfin_isp1760_device,
880 #if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
884 #if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
888 #if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
892 #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
897 #if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
898 &net2272_bfin_device,
901 #if defined(CONFIG_SPI_BFIN5XX) || defined(CONFIG_SPI_BFIN5XX_MODULE)
905 #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
906 #ifdef CONFIG_SERIAL_BFIN_UART0
909 #ifdef CONFIG_SERIAL_BFIN_UART1
914 #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
915 #ifdef CONFIG_BFIN_SIR0
918 #ifdef CONFIG_BFIN_SIR1
923 #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
924 &i2c_bfin_twi_device,
927 #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
928 #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
929 &bfin_sport0_uart_device,
931 #ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
932 &bfin_sport1_uart_device,
936 #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
937 &bfin_device_gpiokeys,
940 #if defined(CONFIG_MTD_GPIO_ADDR) || defined(CONFIG_MTD_GPIO_ADDR_MODULE)
945 static int __init cm_init(
void)
958 #if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
959 #ifdef CONFIG_SERIAL_BFIN_UART0
962 #ifdef CONFIG_SERIAL_BFIN_UART1
967 #if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
968 #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
969 &bfin_sport0_uart_device,
971 #ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
972 &bfin_sport1_uart_device,