10 #include <linux/device.h>
11 #include <linux/export.h>
18 #include <linux/i2c.h>
23 #include <linux/input.h>
26 #include <asm/reboot.h>
31 #if defined(CONFIG_TOUCHSCREEN_AD7879) \
32 || defined(CONFIG_TOUCHSCREEN_AD7879_MODULE)
34 #define LCD_BACKLIGHT_GPIO 0x40
48 #if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
49 static struct resource musb_resources[] = {
78 .gpio_vrsel_active = 1,
82 #if defined(CONFIG_USB_MUSB_OTG)
84 #elif defined(CONFIG_USB_MUSB_HDRC_HCD)
86 #elif defined(CONFIG_USB_GADGET_MUSB_HDRC)
89 .config = &musb_config,
92 static u64 musb_dmamask = ~(
u32)0;
95 .
name =
"musb-blackfin",
98 .dma_mask = &musb_dmamask,
99 .coherent_dma_mask = 0xffffffff,
100 .platform_data = &musb_plat,
103 .resource = musb_resources,
107 #if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
114 .gpio_bl = LCD_BACKLIGHT_GPIO,
117 static struct resource bfin_lq035q1_resources[] = {
126 .
name =
"bfin-lq035q1",
128 .num_resources =
ARRAY_SIZE(bfin_lq035q1_resources),
129 .resource = bfin_lq035q1_resources,
131 .platform_data = &bfin_lq035q1_data,
136 #if defined(CONFIG_MTD_GPIO_ADDR) || defined(CONFIG_MTD_GPIO_ADDR_MODULE)
139 .
name =
"bootloader(nor)",
143 .name =
"linux kernel(nor)",
147 .name =
"file system(nor)",
155 .parts = tll6527m_partitions,
161 static struct resource tll6527m_flash_resource[] = {
168 .start = (
unsigned long)tll6527m_flash_gpios,
175 .
name =
"gpio-addr-flash",
178 .platform_data = &tll6527m_flash_data,
180 .num_resources =
ARRAY_SIZE(tll6527m_flash_resource),
181 .resource = tll6527m_flash_resource,
185 #if defined(CONFIG_GPIO_DECODER) || defined(CONFIG_GPIO_DECODER_MODULE)
191 #include <linux/gpio-decoder.h>
192 #define EXP_GPIO_SPISEL_BASE 0x64
193 static unsigned gpio_addr_inputs[] = {
197 static struct gpio_decoder_platform_data spi_decoded_cs = {
199 .input_addrs = gpio_addr_inputs,
200 .nr_input_addrs =
ARRAY_SIZE(gpio_addr_inputs),
206 .
name =
"gpio-decoder",
209 .platform_data = &spi_decoded_cs,
214 #define EXP_GPIO_SPISEL_BASE 0x0
218 #if defined(CONFIG_INPUT_ADXL34X) || defined(CONFIG_INPUT_ADXL34X_MODULE)
224 .tap_threshold = 0x31,
225 .tap_duration = 0x10,
229 .act_axis_control = 0xFF,
230 .activity_threshold = 5,
231 .inactivity_threshold = 2,
232 .inactivity_time = 2,
233 .free_fall_threshold = 0x7,
234 .free_fall_time = 0x20,
246 .ev_code_act_inactivity =
KEY_A,
253 #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
260 #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
262 static const unsigned short bfin_mac_peripherals[] =
P_RMII0;
273 .phydev_data = bfin_phydev_data,
275 .mac_peripherals = bfin_mac_peripherals,
279 .
name =
"bfin_mii_bus",
281 .platform_data = &bfin_mii_bus_data,
288 .platform_data = &bfin_mii_bus,
293 #if defined(CONFIG_MTD_M25P80) \
294 || defined(CONFIG_MTD_M25P80_MODULE)
297 .
name =
"bootloader(spi)",
302 .name =
"linux kernel(spi)",
310 .parts = bfin_spi_flash_partitions,
311 .nr_parts =
ARRAY_SIZE(bfin_spi_flash_partitions),
321 #if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
327 #if defined(CONFIG_TOUCHSCREEN_AD7879) \
328 || defined(CONFIG_TOUCHSCREEN_AD7879_MODULE)
332 .pressure_max = 10000,
334 .first_conversion_delay = 3,
336 .acquisition_time = 1,
340 .pen_down_acc_interval = 255,
342 .gpio_base = LCD_BACKLIGHT_GPIO,
346 #if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
349 .id = CONFIG_SND_BF5XX_SPORT_NUM,
354 #if defined(CONFIG_GPIO_MCP23S08) || defined(CONFIG_GPIO_MCP23S08_MODULE)
357 .
chip[0].is_present =
true,
361 .
chip[2].is_present =
true,
367 #if defined(CONFIG_MTD_M25P80) \
368 || defined(CONFIG_MTD_M25P80_MODULE)
371 .modalias =
"m25p80",
372 .max_speed_hz = 25000000,
378 .platform_data = &bfin_spi_flash_data,
379 .controller_data = &spi_flash_chip_info,
384 #if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
386 .modalias =
"mmc_spi",
391 .max_speed_hz = 10000000,
395 .controller_data = &mmc_spi_chip_info,
399 #if defined(CONFIG_TOUCHSCREEN_AD7879_SPI) \
400 || defined(CONFIG_TOUCHSCREEN_AD7879_SPI_MODULE)
402 .modalias =
"ad7879",
403 .platform_data = &bfin_ad7879_ts_info,
405 .max_speed_hz = 5000000,
412 #if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE)
414 .modalias =
"spidev",
415 .max_speed_hz = 10000000,
422 #if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
424 .modalias =
"bfin-lq035q1-spi",
425 .max_speed_hz = 20000000,
431 #if defined(CONFIG_GPIO_MCP23S08) || defined(CONFIG_GPIO_MCP23S08_MODULE)
433 .modalias =
"mcp23s08",
434 .platform_data = &bfin_mcp23s08_sys_gpio_info,
435 .max_speed_hz = 5000000,
441 .modalias =
"mcp23s08",
442 .platform_data = &bfin_mcp23s08_usr_gpio_info,
443 .max_speed_hz = 5000000,
451 #if defined(CONFIG_SPI_BFIN5XX) || defined(CONFIG_SPI_BFIN5XX_MODULE)
461 static struct resource bfin_spi0_resource[] = {
482 .num_resources =
ARRAY_SIZE(bfin_spi0_resource),
483 .resource = bfin_spi0_resource,
485 .platform_data = &bfin_spi0_info,
490 #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
491 #ifdef CONFIG_SERIAL_BFIN_UART0
492 static struct resource bfin_uart0_resources[] = {
525 static unsigned short bfin_uart0_peripherals[] = {
532 .num_resources =
ARRAY_SIZE(bfin_uart0_resources),
533 .resource = bfin_uart0_resources,
535 .platform_data = &bfin_uart0_peripherals,
540 #ifdef CONFIG_SERIAL_BFIN_UART1
541 static struct resource bfin_uart1_resources[] = {
572 #ifdef CONFIG_BFIN_UART1_CTSRTS
586 static unsigned short bfin_uart1_peripherals[] = {
593 .num_resources =
ARRAY_SIZE(bfin_uart1_resources),
594 .resource = bfin_uart1_resources,
596 .platform_data = &bfin_uart1_peripherals,
603 #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
604 #ifdef CONFIG_BFIN_SIR0
605 static struct resource bfin_sir0_resources[] = {
626 .num_resources =
ARRAY_SIZE(bfin_sir0_resources),
627 .resource = bfin_sir0_resources,
630 #ifdef CONFIG_BFIN_SIR1
631 static struct resource bfin_sir1_resources[] = {
652 .num_resources =
ARRAY_SIZE(bfin_sir1_resources),
653 .resource = bfin_sir1_resources,
658 #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
661 static struct resource bfin_twi0_resource[] = {
675 .
name =
"i2c-bfin-twi",
677 .num_resources =
ARRAY_SIZE(bfin_twi0_resource),
678 .resource = bfin_twi0_resource,
680 .platform_data = &bfin_twi0_pins,
686 #if defined(CONFIG_BFIN_TWI_LCD) || defined(CONFIG_BFIN_TWI_LCD_MODULE)
692 #if defined(CONFIG_FB_BFIN_7393) || defined(CONFIG_FB_BFIN_7393_MODULE)
697 #if defined(CONFIG_TOUCHSCREEN_AD7879_I2C) \
698 || defined(CONFIG_TOUCHSCREEN_AD7879_I2C_MODULE)
702 .platform_data = (
void *)&bfin_ad7879_ts_info,
705 #
if defined(CONFIG_SND_SOC_SSM2602) || defined(CONFIG_SND_SOC_SSM2602_MODULE)
717 #if defined(CONFIG_INPUT_ADXL34X_I2C) \
718 || defined(CONFIG_INPUT_ADXL34X_I2C_MODULE)
722 .platform_data = (
void *)&adxl345_info,
727 #if defined(CONFIG_SERIAL_BFIN_SPORT) \
728 || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
729 #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
730 static struct resource bfin_sport0_uart_resources[] = {
748 static unsigned short bfin_sport0_peripherals[] = {
754 .
name =
"bfin-sport-uart",
756 .num_resources =
ARRAY_SIZE(bfin_sport0_uart_resources),
757 .resource = bfin_sport0_uart_resources,
759 .platform_data = &bfin_sport0_peripherals,
764 #ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
765 static struct resource bfin_sport1_uart_resources[] = {
783 static unsigned short bfin_sport1_peripherals[] = {
789 .
name =
"bfin-sport-uart",
791 .num_resources =
ARRAY_SIZE(bfin_sport1_uart_resources),
792 .resource = bfin_sport1_uart_resources,
794 .platform_data = &bfin_sport1_peripherals,
801 static const unsigned int cclk_vlev_datasheet[] = {
810 .tuple_tab = cclk_vlev_datasheet,
812 .vr_settling_time = 25 ,
818 .platform_data = &bfin_dmpc_vreg_data,
826 #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
830 #if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
834 #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
839 #if defined(CONFIG_SPI_BFIN5XX) || defined(CONFIG_SPI_BFIN5XX_MODULE)
843 #if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
844 &bfin_lq035q1_device,
847 #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
848 #ifdef CONFIG_SERIAL_BFIN_UART0
851 #ifdef CONFIG_SERIAL_BFIN_UART1
856 #if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
857 #ifdef CONFIG_BFIN_SIR0
860 #ifdef CONFIG_BFIN_SIR1
865 #if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
866 &i2c_bfin_twi_device,
869 #if defined(CONFIG_SERIAL_BFIN_SPORT) \
870 || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
871 #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
872 &bfin_sport0_uart_device,
874 #ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
875 &bfin_sport1_uart_device,
879 #if defined(CONFIG_MTD_GPIO_ADDR) || defined(CONFIG_MTD_GPIO_ADDR_MODULE)
880 &tll6527m_flash_device,
883 #if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
887 #if defined(CONFIG_GPIO_DECODER) || defined(CONFIG_GPIO_DECODER_MODULE)
892 static int __init tll6527m_init(
void)
906 #if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
907 #ifdef CONFIG_SERIAL_BFIN_UART0
910 #ifdef CONFIG_SERIAL_BFIN_UART1
915 #if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
916 #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
917 &bfin_sport0_uart_device,
919 #ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
920 &bfin_sport1_uart_device,
945 u64 *page_content) = (
void *)0xEF00001A;
947 ret = otp_read(0xDF, 0x00, &otp_mac);
949 char *otp_mac_p = (
char *)&otp_mac;
950 for (ret = 0; ret < 6; ++
ret)
951 addr[ret] = otp_mac_p[5 - ret];