9 #include <linux/device.h>
10 #include <linux/export.h>
18 #include <linux/i2c.h>
24 #include <asm/reboot.h>
39 #if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
40 static struct resource musb_resources[] = {
71 .gpio_vrsel_active = 1,
76 #if defined(CONFIG_USB_MUSB_OTG)
78 #elif defined(CONFIG_USB_MUSB_HDRC_HCD)
80 #elif defined(CONFIG_USB_GADGET_MUSB_HDRC)
83 .config = &musb_config,
86 static u64 musb_dmamask = ~(
u32)0;
89 .
name =
"musb-blackfin",
92 .dma_mask = &musb_dmamask,
93 .coherent_dma_mask = 0xffffffff,
94 .platform_data = &musb_plat,
97 .resource = musb_resources,
101 #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
104 .
name =
"bootloader(nor)",
108 .name =
"linux kernel(nor)",
112 .name =
"file system(nor)",
120 .parts = ezbrd_partitions,
124 static struct resource ezbrd_flash_resource = {
131 .
name =
"physmap-flash",
134 .platform_data = &ezbrd_flash_data,
137 .resource = &ezbrd_flash_resource,
141 #if defined(CONFIG_MTD_NAND_BF5XX) || defined(CONFIG_MTD_NAND_BF5XX_MODULE)
144 .name =
"bootloader(nand)",
148 .name =
"linux kernel(nand)",
150 .size = 4 * 1024 * 1024,
153 .name =
"file system(nand)",
161 .partitions = partition_info,
167 static struct resource bf5xx_nand_resources[] = {
181 .
name =
"bf5xx-nand",
183 .num_resources =
ARRAY_SIZE(bf5xx_nand_resources),
184 .resource = bf5xx_nand_resources,
186 .platform_data = &bf5xx_nand_platform,
191 #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
199 #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
201 static const unsigned short bfin_mac_peripherals[] =
P_RMII0;
212 .phydev_data = bfin_phydev_data,
214 .mac_peripherals = bfin_mac_peripherals,
218 .
name =
"bfin_mii_bus",
220 .platform_data = &bfin_mii_bus_data,
227 .platform_data = &bfin_mii_bus,
232 #if defined(CONFIG_MTD_M25P80) \
233 || defined(CONFIG_MTD_M25P80_MODULE)
236 .
name =
"bootloader(spi)",
241 .name =
"linux kernel(spi)",
249 .parts = bfin_spi_flash_partitions,
250 .nr_parts =
ARRAY_SIZE(bfin_spi_flash_partitions),
251 .type =
"sst25wf040",
260 #if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
266 #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
269 .vref_delay_usecs = 50,
272 .pressure_max = 1000,
274 .stopacq_polarity = 1,
275 .first_conversion_delay = 3,
276 .acquisition_time = 1,
278 .pen_down_acc_interval = 1,
282 #if defined(CONFIG_TOUCHSCREEN_AD7879) || defined(CONFIG_TOUCHSCREEN_AD7879_MODULE)
287 .pressure_max = 10000,
289 .first_conversion_delay = 3,
290 .acquisition_time = 1,
293 .pen_down_acc_interval = 255,
300 #if defined(CONFIG_MTD_M25P80) \
301 || defined(CONFIG_MTD_M25P80_MODULE)
304 .modalias =
"m25p80",
305 .max_speed_hz = 25000000,
308 .platform_data = &bfin_spi_flash_data,
309 .controller_data = &spi_flash_chip_info,
314 #if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
316 .modalias =
"mmc_spi",
317 .max_speed_hz = 25000000,
320 .controller_data = &mmc_spi_chip_info,
324 #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
326 .modalias =
"ad7877",
327 .platform_data = &bfin_ad7877_ts_info,
329 .max_speed_hz = 12500000,
334 #if defined(CONFIG_TOUCHSCREEN_AD7879_SPI) || defined(CONFIG_TOUCHSCREEN_AD7879_SPI_MODULE)
336 .modalias =
"ad7879",
337 .platform_data = &bfin_ad7879_ts_info,
339 .max_speed_hz = 5000000,
345 #if defined(CONFIG_SND_SOC_WM8731) || defined(CONFIG_SND_SOC_WM8731_MODULE) \
346 && defined(CONFIG_SND_SOC_WM8731_SPI)
348 .modalias =
"wm8731",
349 .max_speed_hz = 3125000,
355 #if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE)
357 .modalias =
"spidev",
358 .max_speed_hz = 3125000,
363 #if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
365 .modalias =
"bfin-lq035q1-spi",
366 .max_speed_hz = 20000000,
374 #if defined(CONFIG_SPI_BFIN5XX) || defined(CONFIG_SPI_BFIN5XX_MODULE)
383 static struct resource bfin_spi0_resource[] = {
404 .num_resources =
ARRAY_SIZE(bfin_spi0_resource),
405 .resource = bfin_spi0_resource,
407 .platform_data = &bfin_spi0_info,
412 #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
413 #ifdef CONFIG_SERIAL_BFIN_UART0
414 static struct resource bfin_uart0_resources[] = {
447 static unsigned short bfin_uart0_peripherals[] = {
454 .num_resources =
ARRAY_SIZE(bfin_uart0_resources),
455 .resource = bfin_uart0_resources,
457 .platform_data = &bfin_uart0_peripherals,
461 #ifdef CONFIG_SERIAL_BFIN_UART1
462 static struct resource bfin_uart1_resources[] = {
493 #ifdef CONFIG_BFIN_UART1_CTSRTS
507 static unsigned short bfin_uart1_peripherals[] = {
514 .num_resources =
ARRAY_SIZE(bfin_uart1_resources),
515 .resource = bfin_uart1_resources,
517 .platform_data = &bfin_uart1_peripherals,
523 #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
524 #ifdef CONFIG_BFIN_SIR0
525 static struct resource bfin_sir0_resources[] = {
546 .num_resources =
ARRAY_SIZE(bfin_sir0_resources),
547 .resource = bfin_sir0_resources,
550 #ifdef CONFIG_BFIN_SIR1
551 static struct resource bfin_sir1_resources[] = {
572 .num_resources =
ARRAY_SIZE(bfin_sir1_resources),
573 .resource = bfin_sir1_resources,
578 #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
581 static struct resource bfin_twi0_resource[] = {
595 .
name =
"i2c-bfin-twi",
597 .num_resources =
ARRAY_SIZE(bfin_twi0_resource),
598 .resource = bfin_twi0_resource,
600 .platform_data = &bfin_twi0_pins,
606 #if defined(CONFIG_BFIN_TWI_LCD) || defined(CONFIG_BFIN_TWI_LCD_MODULE)
611 #if defined(CONFIG_INPUT_PCF8574) || defined(CONFIG_INPUT_PCF8574_MODULE)
619 #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
620 #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
621 static struct resource bfin_sport0_uart_resources[] = {
639 static unsigned short bfin_sport0_peripherals[] = {
645 .
name =
"bfin-sport-uart",
647 .num_resources =
ARRAY_SIZE(bfin_sport0_uart_resources),
648 .resource = bfin_sport0_uart_resources,
650 .platform_data = &bfin_sport0_peripherals,
654 #ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
655 static struct resource bfin_sport1_uart_resources[] = {
673 static unsigned short bfin_sport1_peripherals[] = {
679 .
name =
"bfin-sport-uart",
681 .num_resources =
ARRAY_SIZE(bfin_sport1_uart_resources),
682 .resource = bfin_sport1_uart_resources,
684 .platform_data = &bfin_sport1_peripherals,
690 #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
691 #include <linux/input.h>
700 .
buttons = bfin_gpio_keys_table,
707 .platform_data = &bfin_gpio_keys_data,
712 static const unsigned int cclk_vlev_datasheet[] =
722 .tuple_tab = cclk_vlev_datasheet,
724 .vr_settling_time = 25 ,
730 .platform_data = &bfin_dmpc_vreg_data,
734 #if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
744 static struct resource bfin_lq035q1_resources[] = {
753 .
name =
"bfin-lq035q1",
755 .num_resources =
ARRAY_SIZE(bfin_lq035q1_resources),
756 .resource = bfin_lq035q1_resources,
758 .platform_data = &bfin_lq035q1_data,
767 #if defined(CONFIG_MTD_NAND_BF5XX) || defined(CONFIG_MTD_NAND_BF5XX_MODULE)
771 #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
775 #if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
779 #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
784 #if defined(CONFIG_SPI_BFIN5XX) || defined(CONFIG_SPI_BFIN5XX_MODULE)
788 #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
789 #ifdef CONFIG_SERIAL_BFIN_UART0
792 #ifdef CONFIG_SERIAL_BFIN_UART1
797 #if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
798 &bfin_lq035q1_device,
801 #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
802 #ifdef CONFIG_BFIN_SIR0
805 #ifdef CONFIG_BFIN_SIR1
810 #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
811 &i2c_bfin_twi_device,
814 #if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
815 #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
816 &bfin_sport0_uart_device,
818 #ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
819 &bfin_sport1_uart_device,
823 #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
824 &bfin_device_gpiokeys,
827 #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
832 static int __init ezbrd_init(
void)
845 #if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
846 #ifdef CONFIG_SERIAL_BFIN_UART0
849 #ifdef CONFIG_SERIAL_BFIN_UART1
854 #if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
855 #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
856 &bfin_sport0_uart_device,
858 #ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
859 &bfin_sport1_uart_device,
885 ret = otp_read(0xDF, 0x00, &otp_mac);
887 char *otp_mac_p = (
char *)&otp_mac;
888 for (ret = 0; ret < 6; ++
ret)
889 addr[ret] = otp_mac_p[5 - ret];