stamp.c revision b3dec4a4ff495248170358cb3b8254a814e5b096
11394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* 21394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * File: arch/blackfin/mach-bf537/boards/stamp.c 31394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Based on: arch/blackfin/mach-bf533/boards/ezkit.c 41394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Author: Aidan Williams <aidan@nicta.com.au> 51394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * 61394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Created: 71394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Description: 81394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * 91394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Modified: 101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Copyright 2005 National ICT Australia (NICTA) 111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Copyright 2004-2006 Analog Devices Inc. 121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * 131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Bugs: Enter bugs at http://blackfin.uclinux.org/ 141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * 151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * This program is free software; you can redistribute it and/or modify 161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * it under the terms of the GNU General Public License as published by 171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * the Free Software Foundation; either version 2 of the License, or 181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * (at your option) any later version. 191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * 201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * This program is distributed in the hope that it will be useful, 211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * but WITHOUT ANY WARRANTY; without even the implied warranty of 221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * GNU General Public License for more details. 241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * 251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * You should have received a copy of the GNU General Public License 261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * along with this program; if not, see the file COPYING, or write 271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * to the Free Software Foundation, Inc., 281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */ 301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/device.h> 32fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#include <linux/kernel.h> 331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/platform_device.h> 341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/mtd/mtd.h> 35fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#include <linux/mtd/nand.h> 361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/mtd/partitions.h> 37fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#include <linux/mtd/plat-ram.h> 38de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger#include <linux/mtd/physmap.h> 391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/spi/spi.h> 401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/spi/flash.h> 411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 42f02bcec5986870b3ddae26f6be1cde0703abfd8aMike Frysinger#include <linux/usb/isp1362.h> 431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 440a87e3e92b299e0f1a69b36664ecde2fc296c40aJeff Garzik#include <linux/ata_platform.h> 451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/irq.h> 461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/interrupt.h> 4781d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu#include <linux/i2c.h> 4827f5d75afaa1b65e4cc1e4ac8a2a5095d24f1576David Brownell#include <linux/usb/sl811.h> 49f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#include <linux/spi/mmc_spi.h> 50c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#include <asm/dma.h> 511f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger#include <asm/bfin5xx_spi.h> 52c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#include <asm/reboot.h> 535d448dd50712ae42f8176b5bb8db4703bef6f0f5Bryan Wu#include <asm/portmux.h> 5414b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich#include <asm/dpmc.h> 551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* 571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Name the Board for the /proc/cpuinfo 581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */ 59fe85cad25e56aad5e020ea5cab50a100892f645bMike Frysingerconst char bfin_board_name[] = "ADI BF537-STAMP"; 601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* 621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Driver needs to know address, irq and flag pin. 631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */ 641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) 663f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich#include <linux/usb/isp1760.h> 673f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerichstatic struct resource bfin_isp1760_resources[] = { 681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu [0] = { 693f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich .start = 0x203C0000, 703f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich .end = 0x203C0000 + 0x000fffff, 711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu [1] = { 743f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich .start = IRQ_PF7, 753f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich .end = IRQ_PF7, 766a6be3d1882743a382f18da9821a410bb29964a2Michael Hennerich .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, 771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 803f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerichstatic struct isp1760_platform_data isp1760_priv = { 813f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich .is_isp1761 = 0, 823f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich .bus_width_16 = 1, 833f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich .port1_otg = 0, 843f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich .analog_oc = 0, 853f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich .dack_polarity_high = 0, 863f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich .dreq_polarity_high = 0, 871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 893f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerichstatic struct platform_device bfin_isp1760_device = { 903f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich .name = "isp1760-hcd", 913f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich .id = 0, 923f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich .dev = { 933f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich .platform_data = &isp1760_priv, 943f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich }, 953f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich .num_resources = ARRAY_SIZE(bfin_isp1760_resources), 963f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich .resource = bfin_isp1760_resources, 971394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1002463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) 1012463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich#include <linux/input.h> 1022463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich#include <linux/gpio_keys.h> 1032463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich 1042463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerichstatic struct gpio_keys_button bfin_gpio_keys_table[] = { 1052463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich {BTN_0, GPIO_PF2, 1, "gpio-keys: BTN0"}, 1062463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich {BTN_1, GPIO_PF3, 1, "gpio-keys: BTN1"}, 1072463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich {BTN_2, GPIO_PF4, 1, "gpio-keys: BTN2"}, 1082463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich {BTN_3, GPIO_PF5, 1, "gpio-keys: BTN3"}, 1092463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich}; 1102463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich 1112463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerichstatic struct gpio_keys_platform_data bfin_gpio_keys_data = { 1122463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich .buttons = bfin_gpio_keys_table, 1132463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich .nbuttons = ARRAY_SIZE(bfin_gpio_keys_table), 1142463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich}; 1152463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich 1162463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerichstatic struct platform_device bfin_device_gpiokeys = { 1172463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich .name = "gpio-keys", 1182463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich .dev = { 1192463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich .platform_data = &bfin_gpio_keys_data, 1202463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich }, 1212463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich}; 1222463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich#endif 1232463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich 124cad2ab65dd1c7d65153ffccd71c90db028fd62f0Mike Frysingerstatic struct resource bfin_gpios_resources = { 125cad2ab65dd1c7d65153ffccd71c90db028fd62f0Mike Frysinger .start = 0, 126cad2ab65dd1c7d65153ffccd71c90db028fd62f0Mike Frysinger .end = MAX_BLACKFIN_GPIOS - 1, 127cad2ab65dd1c7d65153ffccd71c90db028fd62f0Mike Frysinger .flags = IORESOURCE_IRQ, 128cad2ab65dd1c7d65153ffccd71c90db028fd62f0Mike Frysinger}; 129cad2ab65dd1c7d65153ffccd71c90db028fd62f0Mike Frysinger 130cad2ab65dd1c7d65153ffccd71c90db028fd62f0Mike Frysingerstatic struct platform_device bfin_gpios_device = { 131cad2ab65dd1c7d65153ffccd71c90db028fd62f0Mike Frysinger .name = "simple-gpio", 132cad2ab65dd1c7d65153ffccd71c90db028fd62f0Mike Frysinger .id = -1, 133cad2ab65dd1c7d65153ffccd71c90db028fd62f0Mike Frysinger .num_resources = 1, 134cad2ab65dd1c7d65153ffccd71c90db028fd62f0Mike Frysinger .resource = &bfin_gpios_resources, 135cad2ab65dd1c7d65153ffccd71c90db028fd62f0Mike Frysinger}; 136cad2ab65dd1c7d65153ffccd71c90db028fd62f0Mike Frysinger 1371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) 1381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource bfin_pcmcia_cf_resources[] = { 1391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 1401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0x20310000, /* IO PORT */ 1411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0x20312000, 1421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 1431f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 144d2d50aa97d695d83ccb2341488d977e8cfe36555Simon Arlott .start = 0x20311000, /* Attribute Memory */ 1451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0x20311FFF, 1461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 1471f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 1481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = IRQ_PF4, 1491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = IRQ_PF4, 1501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, 1511f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 1521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 6, /* Card Detect PF6 */ 1531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 6, 1541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_IRQ, 1551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 1561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 1571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_pcmcia_cf_device = { 1591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "bfin_cf_pcmcia", 1601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = -1, 1611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .num_resources = ARRAY_SIZE(bfin_pcmcia_cf_resources), 1621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .resource = bfin_pcmcia_cf_resources, 1631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 1641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 1651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) 1671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device rtc_device = { 1681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "rtc-bfin", 1691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = -1, 1701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 1711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 1721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) 17461f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich#include <linux/smc91x.h> 17561f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich 17661f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerichstatic struct smc91x_platdata smc91x_info = { 17761f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT, 17861f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich .leda = RPC_LED_100_10, 17961f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich .ledb = RPC_LED_TX_RX, 18061f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich}; 18161f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich 1821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource smc91x_resources[] = { 1831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 1841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "smc91x-regs", 1851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0x20300300, 1861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0x20300300 + 16, 1871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 1881f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 1891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = IRQ_PF7, 1911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = IRQ_PF7, 1921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, 1931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 1941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 1951394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device smc91x_device = { 1961394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "smc91x", 1971394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 0, 1981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .num_resources = ARRAY_SIZE(smc91x_resources), 1991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .resource = smc91x_resources, 20061f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich .dev = { 20161f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich .platform_data = &smc91x_info, 20261f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich }, 2031394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 2041394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 2051394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 206f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE) 207f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landaustatic struct resource dm9000_resources[] = { 208f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau [0] = { 209f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau .start = 0x203FB800, 210b3dec4a4ff495248170358cb3b8254a814e5b096Barry Song .end = 0x203FB800 + 1, 211f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau .flags = IORESOURCE_MEM, 212f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau }, 213f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau [1] = { 214b3dec4a4ff495248170358cb3b8254a814e5b096Barry Song .start = 0x203FB804, 215b3dec4a4ff495248170358cb3b8254a814e5b096Barry Song .end = 0x203FB804 + 1, 216b3dec4a4ff495248170358cb3b8254a814e5b096Barry Song .flags = IORESOURCE_MEM, 217b3dec4a4ff495248170358cb3b8254a814e5b096Barry Song }, 218b3dec4a4ff495248170358cb3b8254a814e5b096Barry Song [2] = { 219f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau .start = IRQ_PF9, 220f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau .end = IRQ_PF9, 221f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau .flags = (IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE), 222f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau }, 223f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau}; 224f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau 225f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landaustatic struct platform_device dm9000_device = { 226f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau .name = "dm9000", 227f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau .id = -1, 228f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau .num_resources = ARRAY_SIZE(dm9000_resources), 229f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau .resource = dm9000_resources, 230f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau}; 231f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau#endif 232f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau 233561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich#if defined(CONFIG_AX88180) || defined(CONFIG_AX88180_MODULE) 234561cc18b8696fd41367544f45542c096fa08d878Michael Hennerichstatic struct resource ax88180_resources[] = { 235561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich [0] = { 236561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich .start = 0x20300000, 237561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich .end = 0x20300000 + 0x8000, 238561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich .flags = IORESOURCE_MEM, 239561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich }, 240561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich [1] = { 241561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich .start = IRQ_PF7, 242561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich .end = IRQ_PF7, 243561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich .flags = (IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL), 244561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich }, 245561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich}; 246561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich 247561cc18b8696fd41367544f45542c096fa08d878Michael Hennerichstatic struct platform_device ax88180_device = { 248561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich .name = "ax88180", 249561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich .id = -1, 250561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich .num_resources = ARRAY_SIZE(ax88180_resources), 251561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich .resource = ax88180_resources, 252561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich}; 253561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich#endif 254561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich 2551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE) 2561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource sl811_hcd_resources[] = { 2571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 2581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0x20340000, 2591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0x20340000, 2601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 2611f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 2621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0x20340004, 2631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0x20340004, 2641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 2651f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 2661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = CONFIG_USB_SL811_BFIN_IRQ, 2671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = CONFIG_USB_SL811_BFIN_IRQ, 2681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, 2691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 2701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 2711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS) 2731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wuvoid sl811_port_power(struct device *dev, int is_on) 2741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu{ 275c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu gpio_request(CONFIG_USB_SL811_BFIN_GPIO_VBUS, "usb:SL811_VBUS"); 276acbcd2631975cf6f0be5cd294cbfd12226cd9958Michael Hennerich gpio_direction_output(CONFIG_USB_SL811_BFIN_GPIO_VBUS, is_on); 2771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu} 2781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 2791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct sl811_platform_data sl811_priv = { 2811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .potpg = 10, 2821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .power = 250, /* == 500mA */ 2831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS) 2841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .port_power = &sl811_port_power, 2851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 2861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 2871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device sl811_hcd_device = { 2891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "sl811-hcd", 2901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 0, 2911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .dev = { 2921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .platform_data = &sl811_priv, 2931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 2941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .num_resources = ARRAY_SIZE(sl811_hcd_resources), 2951394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .resource = sl811_hcd_resources, 2961394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 2971394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 2981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 3001394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource isp1362_hcd_resources[] = { 3011394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 3021394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0x20360000, 3031394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0x20360000, 3041394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 3051f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 3061394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0x20360004, 3071394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0x20360004, 3081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 3091f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 3101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = CONFIG_USB_ISP1362_BFIN_GPIO_IRQ, 3111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = CONFIG_USB_ISP1362_BFIN_GPIO_IRQ, 3121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, 3131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 3141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 3151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct isp1362_platform_data isp1362_priv = { 3171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .sel15Kres = 1, 3181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .clknotstop = 0, 3191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .oc_enable = 0, 3201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .int_act_high = 0, 3211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .int_edge_triggered = 0, 3221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .remote_wakeup_connected = 0, 3231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .no_power_switching = 1, 3241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .power_switching_mode = 0, 3251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 3261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device isp1362_hcd_device = { 3281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "isp1362-hcd", 3291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 0, 3301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .dev = { 3311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .platform_data = &isp1362_priv, 3321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 3331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .num_resources = ARRAY_SIZE(isp1362_hcd_resources), 3341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .resource = isp1362_hcd_resources, 3351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 3361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 3371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 33965319628db2c7a630daadfeec4d371aaca788482Graf Yangstatic struct platform_device bfin_mii_bus = { 34065319628db2c7a630daadfeec4d371aaca788482Graf Yang .name = "bfin_mii_bus", 34165319628db2c7a630daadfeec4d371aaca788482Graf Yang}; 34265319628db2c7a630daadfeec4d371aaca788482Graf Yang 3431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_mac_device = { 3441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "bfin_mac", 34565319628db2c7a630daadfeec4d371aaca788482Graf Yang .dev.platform_data = &bfin_mii_bus, 3461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 3471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 3481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE) 3501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource net2272_bfin_resources[] = { 3511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 3521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0x20300000, 3531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0x20300000 + 0x100, 3541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 3551f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 3561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = IRQ_PF7, 3571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = IRQ_PF7, 3581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, 3591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 3601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 3611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device net2272_bfin_device = { 3631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "net2272", 3641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = -1, 3651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .num_resources = ARRAY_SIZE(net2272_bfin_resources), 3661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .resource = net2272_bfin_resources, 3671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 3681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 3691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 370fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#if defined(CONFIG_MTD_NAND_PLATFORM) || defined(CONFIG_MTD_NAND_PLATFORM_MODULE) 371fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#ifdef CONFIG_MTD_PARTITIONS 372fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerconst char *part_probes[] = { "cmdlinepart", "RedBoot", NULL }; 373fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger 374fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic struct mtd_partition bfin_plat_nand_partitions[] = { 375fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger { 376aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz .name = "linux kernel(nand)", 377fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .size = 0x400000, 378fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .offset = 0, 379fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger }, { 380aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz .name = "file system(nand)", 381fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .size = MTDPART_SIZ_FULL, 382fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .offset = MTDPART_OFS_APPEND, 383fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger }, 384fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger}; 385fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#endif 386fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger 387fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#define BFIN_NAND_PLAT_CLE 2 388fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#define BFIN_NAND_PLAT_ALE 1 389fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic void bfin_plat_nand_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl) 390fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger{ 391fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger struct nand_chip *this = mtd->priv; 392fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger 393fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger if (cmd == NAND_CMD_NONE) 394fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger return; 395fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger 396fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger if (ctrl & NAND_CLE) 397fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger writeb(cmd, this->IO_ADDR_W + (1 << BFIN_NAND_PLAT_CLE)); 398fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger else 399fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger writeb(cmd, this->IO_ADDR_W + (1 << BFIN_NAND_PLAT_ALE)); 400fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger} 401fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger 402fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#define BFIN_NAND_PLAT_READY GPIO_PF3 403fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic int bfin_plat_nand_dev_ready(struct mtd_info *mtd) 404fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger{ 405fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger return gpio_get_value(BFIN_NAND_PLAT_READY); 406fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger} 407fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger 408fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic struct platform_nand_data bfin_plat_nand_data = { 409fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .chip = { 410fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .chip_delay = 30, 411fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#ifdef CONFIG_MTD_PARTITIONS 412fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .part_probe_types = part_probes, 413fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .partitions = bfin_plat_nand_partitions, 414fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .nr_partitions = ARRAY_SIZE(bfin_plat_nand_partitions), 415fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#endif 416fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger }, 417fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .ctrl = { 418fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .cmd_ctrl = bfin_plat_nand_cmd_ctrl, 419fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .dev_ready = bfin_plat_nand_dev_ready, 420fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger }, 421fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger}; 422fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger 423fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#define MAX(x, y) (x > y ? x : y) 424fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic struct resource bfin_plat_nand_resources = { 425fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .start = 0x20212000, 426fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .end = 0x20212000 + (1 << MAX(BFIN_NAND_PLAT_CLE, BFIN_NAND_PLAT_ALE)), 427fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .flags = IORESOURCE_IO, 428fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger}; 429fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger 430fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic struct platform_device bfin_async_nand_device = { 431fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .name = "gen_nand", 432fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .id = -1, 433fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .num_resources = 1, 434fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .resource = &bfin_plat_nand_resources, 435fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .dev = { 436fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger .platform_data = &bfin_plat_nand_data, 437fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger }, 438fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger}; 439fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger 440fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic void bfin_plat_nand_init(void) 441fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger{ 442fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger gpio_request(BFIN_NAND_PLAT_READY, "bfin_nand_plat"); 443fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger} 444fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#else 445fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic void bfin_plat_nand_init(void) {} 446fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#endif 447fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger 448793dc27b51b2ffff95b72408e2ef44e0995c185bMike Frysinger#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) 449de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysingerstatic struct mtd_partition stamp_partitions[] = { 450de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger { 451aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz .name = "bootloader(nor)", 452edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger .size = 0x40000, 453de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger .offset = 0, 454de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger }, { 455aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz .name = "linux kernel(nor)", 4566ecb5b6dbc01b958fdce7008f297a5c7ba2d8105Grace Pan .size = 0x180000, 457de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger .offset = MTDPART_OFS_APPEND, 458de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger }, { 459aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz .name = "file system(nor)", 4606ecb5b6dbc01b958fdce7008f297a5c7ba2d8105Grace Pan .size = 0x400000 - 0x40000 - 0x180000 - 0x10000, 461de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger .offset = MTDPART_OFS_APPEND, 462de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger }, { 463aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz .name = "MAC Address(nor)", 464de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger .size = MTDPART_SIZ_FULL, 465de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger .offset = 0x3F0000, 466de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger .mask_flags = MTD_WRITEABLE, 467de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger } 468de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger}; 469de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger 470de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysingerstatic struct physmap_flash_data stamp_flash_data = { 471de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger .width = 2, 472de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger .parts = stamp_partitions, 473de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger .nr_parts = ARRAY_SIZE(stamp_partitions), 474de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger}; 475de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger 476de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysingerstatic struct resource stamp_flash_resource = { 477de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger .start = 0x20000000, 478de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger .end = 0x203fffff, 479de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger .flags = IORESOURCE_MEM, 480de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger}; 481de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger 482de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysingerstatic struct platform_device stamp_flash_device = { 483de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger .name = "physmap-flash", 484de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger .id = 0, 485de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger .dev = { 486de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger .platform_data = &stamp_flash_data, 487de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger }, 488de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger .num_resources = 1, 489de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger .resource = &stamp_flash_resource, 490de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger}; 491793dc27b51b2ffff95b72408e2ef44e0995c185bMike Frysinger#endif 492de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger 4931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_MTD_M25P80) \ 4941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu || defined(CONFIG_MTD_M25P80_MODULE) 4951394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct mtd_partition bfin_spi_flash_partitions[] = { 4961394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 497aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz .name = "bootloader(spi)", 498edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger .size = 0x00040000, 4991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .offset = 0, 5001394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .mask_flags = MTD_CAP_ROM 5011f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 502aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz .name = "linux kernel(spi)", 5036ecb5b6dbc01b958fdce7008f297a5c7ba2d8105Grace Pan .size = 0x180000, 504edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger .offset = MTDPART_OFS_APPEND, 5051f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 506aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz .name = "file system(spi)", 507edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger .size = MTDPART_SIZ_FULL, 508edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger .offset = MTDPART_OFS_APPEND, 5091394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu } 5101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 5111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 5121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct flash_platform_data bfin_spi_flash_data = { 5131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "m25p80", 5141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .parts = bfin_spi_flash_partitions, 5151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .nr_parts = ARRAY_SIZE(bfin_spi_flash_partitions), 51688a8078b3b31349e9cbf09215eab6891fb1aed0fMichael Hennerich /* .type = "m25p64", */ 5171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 5181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 5191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* SPI flash chip (m25p64) */ 5201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip spi_flash_chip_info = { 5211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .enable_dma = 0, /* use dma transfer with this chip*/ 5221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .bits_per_word = 8, 5231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 5241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 5251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 526a261eec0009b6093727fb7a59b12a10c6c981714Mike Frysinger#if defined(CONFIG_BFIN_SPI_ADC) \ 527a261eec0009b6093727fb7a59b12a10c6c981714Mike Frysinger || defined(CONFIG_BFIN_SPI_ADC_MODULE) 5281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* SPI ADC chip */ 5291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip spi_adc_chip_info = { 5301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .enable_dma = 1, /* use dma transfer with this chip*/ 5311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .bits_per_word = 16, 5321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 5331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 5341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 5351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SND_BLACKFIN_AD1836) \ 5361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 5371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip ad1836_spi_chip_info = { 5381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .enable_dma = 0, 5391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .bits_per_word = 16, 5401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 5411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 5421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 543d4b834c13940b5433d16ae3605794b3d74804348Barry Song#if defined(CONFIG_SND_BF5XX_SOC_AD1938) \ 544d4b834c13940b5433d16ae3605794b3d74804348Barry Song || defined(CONFIG_SND_BF5XX_SOC_AD1938_MODULE) 545d4b834c13940b5433d16ae3605794b3d74804348Barry Songstatic struct bfin5xx_spi_chip ad1938_spi_chip_info = { 546d4b834c13940b5433d16ae3605794b3d74804348Barry Song .enable_dma = 0, 547d4b834c13940b5433d16ae3605794b3d74804348Barry Song .bits_per_word = 8, 548d4b834c13940b5433d16ae3605794b3d74804348Barry Song .cs_gpio = GPIO_PF5, 549d4b834c13940b5433d16ae3605794b3d74804348Barry Song}; 550d4b834c13940b5433d16ae3605794b3d74804348Barry Song#endif 551d4b834c13940b5433d16ae3605794b3d74804348Barry Song 5521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_AD9960) || defined(CONFIG_AD9960_MODULE) 5531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip ad9960_spi_chip_info = { 5541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .enable_dma = 0, 5551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .bits_per_word = 16, 5561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 5571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 5581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 559427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#if defined(CONFIG_INPUT_EVAL_AD7147EBZ) 560427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#include <linux/input.h> 561427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#include <linux/input/ad714x.h> 562427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Songstatic struct bfin5xx_spi_chip ad7147_spi_chip_info = { 563427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .enable_dma = 0, 564427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .bits_per_word = 16, 565427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song}; 566427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song 567427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Songstatic struct ad714x_slider_plat slider_plat[] = { 568427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song { 569427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .start_stage = 0, 570427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .end_stage = 7, 571427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .max_coord = 128, 572427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song }, 573427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song}; 574427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song 575427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Songstatic struct ad714x_button_plat button_plat[] = { 576427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song { 577427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .keycode = BTN_FORWARD, 578427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .l_mask = 0, 579427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .h_mask = 0x600, 580427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song }, 581427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song { 582427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .keycode = BTN_LEFT, 583427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .l_mask = 0, 584427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .h_mask = 0x500, 585427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song }, 586427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song { 587427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .keycode = BTN_MIDDLE, 588427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .l_mask = 0, 589427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .h_mask = 0x800, 590427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song }, 591427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song { 592427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .keycode = BTN_RIGHT, 593427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .l_mask = 0x100, 594427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .h_mask = 0x400, 595427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song }, 596427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song { 597427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .keycode = BTN_BACK, 598427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .l_mask = 0x200, 599427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .h_mask = 0x400, 600427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song }, 601427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song}; 602427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Songstatic struct ad714x_platform_data ad7147_platfrom_data = { 603427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .slider_num = 1, 604427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .button_num = 5, 605427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .slider = slider_plat, 606427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .button = button_plat, 607427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .stage_cfg_reg = { 608427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFBFF, 0x1FFF, 0, 0x2626, 1600, 1600, 1600, 1600}, 609427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xEFFF, 0x1FFF, 0, 0x2626, 1650, 1650, 1650, 1650}, 610427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFFFF, 0x1FFE, 0, 0x2626, 1650, 1650, 1650, 1650}, 611427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFFFF, 0x1FFB, 0, 0x2626, 1650, 1650, 1650, 1650}, 612427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFFFF, 0x1FEF, 0, 0x2626, 1650, 1650, 1650, 1650}, 613427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFFFF, 0x1FBF, 0, 0x2626, 1650, 1650, 1650, 1650}, 614427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFFFF, 0x1EFF, 0, 0x2626, 1650, 1650, 1650, 1650}, 615427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFFFF, 0x1BFF, 0, 0x2626, 1600, 1600, 1600, 1600}, 616427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFF7B, 0x3FFF, 0x506, 0x2626, 1100, 1100, 1150, 1150}, 617427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFDFE, 0x3FFF, 0x606, 0x2626, 1100, 1100, 1150, 1150}, 618427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFEBA, 0x1FFF, 0x1400, 0x2626, 1200, 1200, 1300, 1300}, 619427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFFEF, 0x1FFF, 0x0, 0x2626, 1100, 1100, 1150, 1150}, 620427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song }, 621427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .sys_cfg_reg = {0x2B2, 0x0, 0x3233, 0x819, 0x832, 0xCFF, 0xCFF, 0x0}, 622427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song}; 623427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#endif 624427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song 625427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#if defined(CONFIG_INPUT_EVAL_AD7142EB) 626427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#include <linux/input.h> 627427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#include <linux/input/ad714x.h> 628427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Songstatic struct ad714x_button_plat button_plat[] = { 629427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song { 630427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .keycode = BTN_1, 631427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .l_mask = 0, 632427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .h_mask = 0x1, 633427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song }, 634427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song { 635427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .keycode = BTN_2, 636427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .l_mask = 0, 637427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .h_mask = 0x2, 638427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song }, 639427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song { 640427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .keycode = BTN_3, 641427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .l_mask = 0, 642427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .h_mask = 0x4, 643427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song }, 644427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song { 645427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .keycode = BTN_4, 646427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .l_mask = 0x0, 647427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .h_mask = 0x8, 648427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song }, 649427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song}; 650427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Songstatic struct ad714x_platform_data ad7142_platfrom_data = { 651427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .button_num = 4, 652427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .button = button_plat, 653427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .stage_cfg_reg = { 654427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song /* fixme: figure out right setting for all comoponent according 655427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song * to hardware feature of EVAL-AD7142EB board */ 656427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xE7FF, 0x3FFF, 0x0005, 0x2626, 0x01F4, 0x01F4, 0x028A, 0x028A}, 657427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFDBF, 0x3FFF, 0x0001, 0x2626, 0x01F4, 0x01F4, 0x028A, 0x028A}, 658427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFFFF, 0x2DFF, 0x0001, 0x2626, 0x01F4, 0x01F4, 0x028A, 0x028A}, 659427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFFFF, 0x37BF, 0x0001, 0x2626, 0x01F4, 0x01F4, 0x028A, 0x028A}, 660427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320}, 661427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320}, 662427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320}, 663427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320}, 664427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320}, 665427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320}, 666427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320}, 667427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song {0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320}, 668427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song }, 669427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .sys_cfg_reg = {0x0B2, 0x0, 0x690, 0x664, 0x290F, 0xF, 0xF, 0x0}, 670427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song}; 671427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#endif 672427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song 673f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) 674f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#define MMC_SPI_CARD_DETECT_INT IRQ_PF5 675f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li 676f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Listatic int bfin_mmc_spi_init(struct device *dev, 677f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li irqreturn_t (*detect_int)(int, void *), void *data) 678f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li{ 679f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li return request_irq(MMC_SPI_CARD_DETECT_INT, detect_int, 680f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li IRQF_TRIGGER_FALLING, "mmc-spi-detect", data); 681f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li} 682f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li 683f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Listatic void bfin_mmc_spi_exit(struct device *dev, void *data) 684f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li{ 685f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li free_irq(MMC_SPI_CARD_DETECT_INT, data); 686f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li} 687f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li 688f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Listatic struct mmc_spi_platform_data bfin_mmc_spi_pdata = { 689f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li .init = bfin_mmc_spi_init, 690f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li .exit = bfin_mmc_spi_exit, 691f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li .detect_delay = 100, /* msecs */ 692f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li}; 693f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li 694f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Listatic struct bfin5xx_spi_chip mmc_spi_chip_info = { 695f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li .enable_dma = 0, 696f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li .bits_per_word = 8, 697e68d1ebc30e033612bb69f949da654d72beae57dYi Li .pio_interrupt = 0, 698f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li}; 699f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#endif 700f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li 7011394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_PBX) 7021394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip spi_si3xxx_chip_info = { 7031394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .ctl_reg = 0x4, /* send zero */ 7041394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .enable_dma = 0, 7051394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .bits_per_word = 8, 7061394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .cs_change_per_word = 1, 7071394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 7081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 7091394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 7101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) 71146aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#include <linux/spi/ad7877.h> 7121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip spi_ad7877_chip_info = { 7131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .enable_dma = 0, 7141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .bits_per_word = 16, 7151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 7161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 7171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic const struct ad7877_platform_data bfin_ad7877_ts_info = { 7181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .model = 7877, 7191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .vref_delay_usecs = 50, /* internal, no capacitor */ 7201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .x_plate_ohms = 419, 7211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .y_plate_ohms = 486, 7221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .pressure_max = 1000, 7231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .pressure_min = 0, 7241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .stopacq_polarity = 1, 7251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .first_conversion_delay = 3, 7261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .acquisition_time = 1, 7271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .averaging = 1, 7281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .pen_down_acc_interval = 1, 7291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 7301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 7311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 73246aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_AD7879) || defined(CONFIG_TOUCHSCREEN_AD7879_MODULE) 73346aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#include <linux/spi/ad7879.h> 73446aa04f9b678d1d6f3558429109326775ca87715Michael Hennerichstatic const struct ad7879_platform_data bfin_ad7879_ts_info = { 73546aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .model = 7879, /* Model = AD7879 */ 73646aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .x_plate_ohms = 620, /* 620 Ohm from the touch datasheet */ 73746aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .pressure_max = 10000, 73846aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .pressure_min = 0, 73946aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .first_conversion_delay = 3, /* wait 512us before do a first conversion */ 74046aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .acquisition_time = 1, /* 4us acquisition time per sample */ 74146aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .median = 2, /* do 8 measurements */ 74246aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .averaging = 1, /* take the average of 4 middle samples */ 74346aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .pen_down_acc_interval = 255, /* 9.4 ms */ 74446aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .gpio_output = 1, /* configure AUX/VBAT/GPIO as GPIO output */ 74546aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .gpio_default = 1, /* During initialization set GPIO = HIGH */ 74646aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich}; 74746aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#endif 74846aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich 749ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich#if defined(CONFIG_INPUT_ADXL34X) || defined(CONFIG_INPUT_ADXL34X_MODULE) 750ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich#include <linux/input.h> 751ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich#include <linux/spi/adxl34x.h> 752ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerichstatic const struct adxl34x_platform_data adxl34x_info = { 753ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .x_axis_offset = 0, 754ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .y_axis_offset = 0, 755ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .z_axis_offset = 0, 756ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .tap_threshold = 0x31, 757ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .tap_duration = 0x10, 758ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .tap_latency = 0x60, 759ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .tap_window = 0xF0, 760ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .tap_axis_control = ADXL_TAP_X_EN | ADXL_TAP_Y_EN | ADXL_TAP_Z_EN, 761ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .act_axis_control = 0xFF, 762ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .activity_threshold = 5, 763ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .inactivity_threshold = 3, 764ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .inactivity_time = 4, 765ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .free_fall_threshold = 0x7, 766ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .free_fall_time = 0x20, 767ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .data_rate = 0x8, 768ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .data_range = ADXL_FULL_RES, 769ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich 770ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .ev_type = EV_ABS, 771ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .ev_code_x = ABS_X, /* EV_REL */ 772ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .ev_code_y = ABS_Y, /* EV_REL */ 773ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .ev_code_z = ABS_Z, /* EV_REL */ 774ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich 775ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .ev_code_tap_x = BTN_TOUCH, /* EV_KEY */ 776ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .ev_code_tap_y = BTN_TOUCH, /* EV_KEY */ 777ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .ev_code_tap_z = BTN_TOUCH, /* EV_KEY */ 778ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich 779ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich/* .ev_code_ff = KEY_F,*/ /* EV_KEY */ 780ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich/* .ev_code_act_inactivity = KEY_A,*/ /* EV_KEY */ 781ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .power_mode = ADXL_AUTO_SLEEP | ADXL_LINK, 782ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .fifo_mode = ADXL_FIFO_STREAM, 783ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich}; 784ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich#endif 785ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich 786f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_AD7879_SPI) || defined(CONFIG_TOUCHSCREEN_AD7879_SPI_MODULE) 787f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerichstatic struct bfin5xx_spi_chip spi_ad7879_chip_info = { 788f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich .enable_dma = 0, 789f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich .bits_per_word = 16, 790f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich}; 791f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich#endif 792f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich 7936e668936db12550ab5a6a758f236140101e5a644Michael Hennerich#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE) 7946e668936db12550ab5a6a758f236140101e5a644Michael Hennerichstatic struct bfin5xx_spi_chip spidev_chip_info = { 7956e668936db12550ab5a6a758f236140101e5a644Michael Hennerich .enable_dma = 0, 7966e668936db12550ab5a6a758f236140101e5a644Michael Hennerich .bits_per_word = 8, 7976e668936db12550ab5a6a758f236140101e5a644Michael Hennerich}; 7986e668936db12550ab5a6a758f236140101e5a644Michael Hennerich#endif 7996e668936db12550ab5a6a758f236140101e5a644Michael Hennerich 8002043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE) 8012043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerichstatic struct bfin5xx_spi_chip lq035q1_spi_chip_info = { 8022043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich .enable_dma = 0, 8032043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich .bits_per_word = 8, 8042043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich}; 8052043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#endif 8062043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich 80785a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich#if defined(CONFIG_ENC28J60) || defined(CONFIG_ENC28J60_MODULE) 80885a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerichstatic struct bfin5xx_spi_chip enc28j60_spi_chip_info = { 80985a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich .enable_dma = 1, 81085a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich .bits_per_word = 8, 81185a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich .cs_gpio = GPIO_PF10, 81285a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich}; 81385a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich#endif 81485a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich 8158e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich#if defined(CONFIG_MTD_DATAFLASH) \ 8168e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich || defined(CONFIG_MTD_DATAFLASH_MODULE) 817ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich 818ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerichstatic struct mtd_partition bfin_spi_dataflash_partitions[] = { 819ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich { 820ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich .name = "bootloader(spi)", 821ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich .size = 0x00040000, 822ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich .offset = 0, 823ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich .mask_flags = MTD_CAP_ROM 824ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich }, { 825ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich .name = "linux kernel(spi)", 8266ecb5b6dbc01b958fdce7008f297a5c7ba2d8105Grace Pan .size = 0x180000, 827ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich .offset = MTDPART_OFS_APPEND, 828ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich }, { 829ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich .name = "file system(spi)", 830ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich .size = MTDPART_SIZ_FULL, 831ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich .offset = MTDPART_OFS_APPEND, 832ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich } 833ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich}; 834ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich 835ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerichstatic struct flash_platform_data bfin_spi_dataflash_data = { 836ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich .name = "SPI Dataflash", 837ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich .parts = bfin_spi_dataflash_partitions, 838ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich .nr_parts = ARRAY_SIZE(bfin_spi_dataflash_partitions), 839ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich}; 840ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich 8418e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich/* DataFlash chip */ 8428e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerichstatic struct bfin5xx_spi_chip data_flash_chip_info = { 8438e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich .enable_dma = 0, /* use dma transfer with this chip*/ 8448e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich .bits_per_word = 8, 8458e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich}; 8468e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich#endif 8478e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich 8481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct spi_board_info bfin_spi_board_info[] __initdata = { 8491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_MTD_M25P80) \ 8501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu || defined(CONFIG_MTD_M25P80_MODULE) 8511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 8521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu /* the modalias must be the same as spi device driver name */ 8531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .modalias = "m25p80", /* Name of spi_driver for this device */ 8541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ 855c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .bus_num = 0, /* Framework bus number */ 8561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .chip_select = 1, /* Framework chip select. On STAMP537 it is SPISSEL1*/ 8571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .platform_data = &bfin_spi_flash_data, 8581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .controller_data = &spi_flash_chip_info, 8591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .mode = SPI_MODE_3, 8601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 8611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 8628e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich#if defined(CONFIG_MTD_DATAFLASH) \ 8638e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich || defined(CONFIG_MTD_DATAFLASH_MODULE) 8648e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich { /* DataFlash chip */ 8658e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich .modalias = "mtd_dataflash", 866ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich .max_speed_hz = 33250000, /* max spi clock (SCK) speed in HZ */ 8678e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich .bus_num = 0, /* Framework bus number */ 8688e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich .chip_select = 1, /* Framework chip select. On STAMP537 it is SPISSEL1*/ 869ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich .platform_data = &bfin_spi_dataflash_data, 8708e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich .controller_data = &data_flash_chip_info, 8718e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich .mode = SPI_MODE_3, 8728e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich }, 8738e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich#endif 874a261eec0009b6093727fb7a59b12a10c6c981714Mike Frysinger#if defined(CONFIG_BFIN_SPI_ADC) \ 875a261eec0009b6093727fb7a59b12a10c6c981714Mike Frysinger || defined(CONFIG_BFIN_SPI_ADC_MODULE) 8761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 8771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .modalias = "bfin_spi_adc", /* Name of spi_driver for this device */ 8781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .max_speed_hz = 6250000, /* max spi clock (SCK) speed in HZ */ 879c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .bus_num = 0, /* Framework bus number */ 8801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .chip_select = 1, /* Framework chip select. */ 8811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .platform_data = NULL, /* No spi_driver specific config */ 8821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .controller_data = &spi_adc_chip_info, 8831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 8841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 8851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 8861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SND_BLACKFIN_AD1836) \ 8871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 8881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 8891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .modalias = "ad1836-spi", 8901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ 891c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .bus_num = 0, 8921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .chip_select = CONFIG_SND_BLACKFIN_SPI_PFBIT, 8931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .controller_data = &ad1836_spi_chip_info, 8941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 8951394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 896d4b834c13940b5433d16ae3605794b3d74804348Barry Song 897d4b834c13940b5433d16ae3605794b3d74804348Barry Song#if defined(CONFIG_SND_BF5XX_SOC_AD1938) || defined(CONFIG_SND_BF5XX_SOC_AD1938_MODULE) 898d4b834c13940b5433d16ae3605794b3d74804348Barry Song { 899d4b834c13940b5433d16ae3605794b3d74804348Barry Song .modalias = "ad1938-spi", 900d4b834c13940b5433d16ae3605794b3d74804348Barry Song .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ 901d4b834c13940b5433d16ae3605794b3d74804348Barry Song .bus_num = 0, 902d4b834c13940b5433d16ae3605794b3d74804348Barry Song .chip_select = 0,/* CONFIG_SND_BLACKFIN_SPI_PFBIT */ 903d4b834c13940b5433d16ae3605794b3d74804348Barry Song .controller_data = &ad1938_spi_chip_info, 904d4b834c13940b5433d16ae3605794b3d74804348Barry Song .mode = SPI_MODE_3, 905d4b834c13940b5433d16ae3605794b3d74804348Barry Song }, 906d4b834c13940b5433d16ae3605794b3d74804348Barry Song#endif 907d4b834c13940b5433d16ae3605794b3d74804348Barry Song 9081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_AD9960) || defined(CONFIG_AD9960_MODULE) 9091394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 9101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .modalias = "ad9960-spi", 9111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .max_speed_hz = 10000000, /* max spi clock (SCK) speed in HZ */ 912c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .bus_num = 0, 9131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .chip_select = 1, 9141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .controller_data = &ad9960_spi_chip_info, 9151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 9161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 917427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song 918427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#if defined(CONFIG_INPUT_EVAL_AD7147EBZ) 919427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song { 920427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .modalias = "ad714x_captouch", 921427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .max_speed_hz = 1000000, /* max spi clock (SCK) speed in HZ */ 922427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .irq = IRQ_PF4, 923427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .bus_num = 0, 924427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .chip_select = 5, 925427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .mode = SPI_MODE_3, 926427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .platform_data = &ad7147_platfrom_data, 927427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .controller_data = &ad7147_spi_chip_info, 928427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song }, 929427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#endif 930427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song 931f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) 932f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li { 933f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li .modalias = "mmc_spi", 934f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */ 935f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li .bus_num = 0, 936f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li .chip_select = 4, 937f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li .platform_data = &bfin_mmc_spi_pdata, 938f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li .controller_data = &mmc_spi_chip_info, 939f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li .mode = SPI_MODE_3, 940f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li }, 941f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#endif 9421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_PBX) 9431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 9441f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger .modalias = "fxs-spi", 9451f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */ 946c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .bus_num = 0, 947c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .chip_select = 8 - CONFIG_J11_JUMPER, 9481f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger .controller_data = &spi_si3xxx_chip_info, 9491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .mode = SPI_MODE_3, 9501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 9511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 9521f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger .modalias = "fxo-spi", 9531f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */ 954c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .bus_num = 0, 955c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .chip_select = 8 - CONFIG_J19_JUMPER, 9561f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger .controller_data = &spi_si3xxx_chip_info, 9571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .mode = SPI_MODE_3, 9581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 9591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 9601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) 9611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 9621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .modalias = "ad7877", 9631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .platform_data = &bfin_ad7877_ts_info, 9641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .irq = IRQ_PF6, 9651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */ 966c7d4896621d42c84956911afd5f10a5d317c781aMichael Hennerich .bus_num = 0, 9671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .chip_select = 1, 9681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .controller_data = &spi_ad7877_chip_info, 9691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 9701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 971f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_AD7879_SPI) || defined(CONFIG_TOUCHSCREEN_AD7879_SPI_MODULE) 97246aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich { 97346aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .modalias = "ad7879", 97446aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .platform_data = &bfin_ad7879_ts_info, 97546aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .irq = IRQ_PF7, 97646aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .max_speed_hz = 5000000, /* max spi clock (SCK) speed in HZ */ 97746aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .bus_num = 0, 97846aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .chip_select = 1, 97946aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .controller_data = &spi_ad7879_chip_info, 98046aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .mode = SPI_CPHA | SPI_CPOL, 98146aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich }, 98246aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#endif 9836e668936db12550ab5a6a758f236140101e5a644Michael Hennerich#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE) 9846e668936db12550ab5a6a758f236140101e5a644Michael Hennerich { 9856e668936db12550ab5a6a758f236140101e5a644Michael Hennerich .modalias = "spidev", 9866e668936db12550ab5a6a758f236140101e5a644Michael Hennerich .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ 9876e668936db12550ab5a6a758f236140101e5a644Michael Hennerich .bus_num = 0, 9886e668936db12550ab5a6a758f236140101e5a644Michael Hennerich .chip_select = 1, 9896e668936db12550ab5a6a758f236140101e5a644Michael Hennerich .controller_data = &spidev_chip_info, 9906e668936db12550ab5a6a758f236140101e5a644Michael Hennerich }, 9916e668936db12550ab5a6a758f236140101e5a644Michael Hennerich#endif 9922043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE) 9932043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich { 9942043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich .modalias = "bfin-lq035q1-spi", 9952043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */ 9962043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich .bus_num = 0, 99746aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .chip_select = 2, 9982043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich .controller_data = &lq035q1_spi_chip_info, 9992043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich .mode = SPI_CPHA | SPI_CPOL, 10002043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich }, 10012043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#endif 100285a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich#if defined(CONFIG_ENC28J60) || defined(CONFIG_ENC28J60_MODULE) 100385a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich { 100485a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich .modalias = "enc28j60", 100585a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */ 100685a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich .irq = IRQ_PF6, 100785a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich .bus_num = 0, 100885a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich .chip_select = 0, /* GPIO controlled SSEL */ 100985a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich .controller_data = &enc28j60_spi_chip_info, 101085a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich .mode = SPI_MODE_0, 101185a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich }, 101285a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich#endif 10131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 10141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 10155bda27235b24146cf870de663141ee4fbfa8a70bMike Frysinger#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 10161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* SPI controller data */ 1017c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct bfin5xx_spi_master bfin_spi0_info = { 10181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .num_chipselect = 8, 10191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .enable_dma = 1, /* master has the ability to do dma transfer */ 10205d448dd50712ae42f8176b5bb8db4703bef6f0f5Bryan Wu .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0}, 10211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 10221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1023c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu/* SPI (0) */ 1024c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct resource bfin_spi0_resource[] = { 1025c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu [0] = { 1026c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .start = SPI0_REGBASE, 1027c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .end = SPI0_REGBASE + 0xFF, 1028c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .flags = IORESOURCE_MEM, 1029c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu }, 1030c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu [1] = { 1031c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .start = CH_SPI, 1032c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .end = CH_SPI, 1033e68d1ebc30e033612bb69f949da654d72beae57dYi Li .flags = IORESOURCE_DMA, 1034e68d1ebc30e033612bb69f949da654d72beae57dYi Li }, 1035e68d1ebc30e033612bb69f949da654d72beae57dYi Li [2] = { 1036e68d1ebc30e033612bb69f949da654d72beae57dYi Li .start = IRQ_SPI, 1037e68d1ebc30e033612bb69f949da654d72beae57dYi Li .end = IRQ_SPI, 1038c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .flags = IORESOURCE_IRQ, 1039c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu }, 1040c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu}; 1041c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 1042c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct platform_device bfin_spi0_device = { 1043c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .name = "bfin-spi", 1044c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .id = 0, /* Bus number */ 1045c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .num_resources = ARRAY_SIZE(bfin_spi0_resource), 1046c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .resource = bfin_spi0_resource, 10471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .dev = { 1048c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .platform_data = &bfin_spi0_info, /* Passed to driver */ 10491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 10501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 10511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif /* spi master and devices */ 10521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 10531e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai#if defined(CONFIG_SPI_BFIN_SPORT) || defined(CONFIG_SPI_BFIN_SPORT_MODULE) 10541e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai 10551e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai/* SPORT SPI controller data */ 10561e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct bfin5xx_spi_master bfin_sport_spi0_info = { 10571e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .num_chipselect = 1, /* master only supports one device */ 10581e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .enable_dma = 0, /* master don't support DMA */ 10591e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .pin_req = {P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_DRPRI, 10601e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai P_SPORT0_RSCLK, P_SPORT0_TFS, P_SPORT0_RFS, 0}, 10611e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai}; 10621e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai 10631e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct resource bfin_sport_spi0_resource[] = { 10641e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai [0] = { 10651e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .start = SPORT0_TCR1, 10661e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .end = SPORT0_TCR1 + 0xFF, 10671e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .flags = IORESOURCE_MEM, 10681e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai }, 10691e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai [1] = { 10701e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .start = IRQ_SPORT0_ERROR, 10711e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .end = IRQ_SPORT0_ERROR, 10721e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .flags = IORESOURCE_IRQ, 10731e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai }, 10741e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai}; 10751e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai 10761e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct platform_device bfin_sport_spi0_device = { 10771e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .name = "bfin-sport-spi", 10781e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .id = 1, /* Bus number */ 10791e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .num_resources = ARRAY_SIZE(bfin_sport_spi0_resource), 10801e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .resource = bfin_sport_spi0_resource, 10811e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .dev = { 10821e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .platform_data = &bfin_sport_spi0_info, /* Passed to driver */ 10831e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai }, 10841e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai}; 10851e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai 10861e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct bfin5xx_spi_master bfin_sport_spi1_info = { 10871e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .num_chipselect = 1, /* master only supports one device */ 10881e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .enable_dma = 0, /* master don't support DMA */ 10891e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .pin_req = {P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_DRPRI, 10901e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai P_SPORT1_RSCLK, P_SPORT1_TFS, P_SPORT1_RFS, 0}, 10911e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai}; 10921e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai 10931e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct resource bfin_sport_spi1_resource[] = { 10941e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai [0] = { 10951e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .start = SPORT1_TCR1, 10961e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .end = SPORT1_TCR1 + 0xFF, 10971e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .flags = IORESOURCE_MEM, 10981e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai }, 10991e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai [1] = { 11001e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .start = IRQ_SPORT1_ERROR, 11011e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .end = IRQ_SPORT1_ERROR, 11021e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .flags = IORESOURCE_IRQ, 11031e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai }, 11041e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai}; 11051e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai 11061e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct platform_device bfin_sport_spi1_device = { 11071e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .name = "bfin-sport-spi", 11081e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .id = 2, /* Bus number */ 11091e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .num_resources = ARRAY_SIZE(bfin_sport_spi1_resource), 11101e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .resource = bfin_sport_spi1_resource, 11111e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .dev = { 11121e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai .platform_data = &bfin_sport_spi1_info, /* Passed to driver */ 11131e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai }, 11141e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai}; 11151e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai 11161e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai#endif /* sport spi master and devices */ 11171e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai 11181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_FB_BF537_LQ035) || defined(CONFIG_FB_BF537_LQ035_MODULE) 11191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_fb_device = { 1120c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .name = "bf537-lq035", 1121c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu}; 1122c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif 1123c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 1124c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#if defined(CONFIG_FB_BFIN_7393) || defined(CONFIG_FB_BFIN_7393_MODULE) 1125c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct platform_device bfin_fb_adv7393_device = { 1126c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .name = "bfin-adv7393", 11271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 11281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 11291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 11302043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE) 11312043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#include <asm/bfin-lq035q1.h> 11322043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich 11332043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerichstatic struct bfin_lq035q1fb_disp_info bfin_lq035q1_data = { 11342043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich .mode = LQ035_NORM | LQ035_RGB | LQ035_RL | LQ035_TB, 113546aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich .use_bl = 0, /* let something else control the LCD Blacklight */ 11362043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich .gpio_bl = GPIO_PF7, 11372043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich}; 11382043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich 11392043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerichstatic struct resource bfin_lq035q1_resources[] = { 11402043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich { 11412043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich .start = IRQ_PPI_ERROR, 11422043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich .end = IRQ_PPI_ERROR, 11432043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich .flags = IORESOURCE_IRQ, 11442043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich }, 11452043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich}; 11462043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich 11472043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerichstatic struct platform_device bfin_lq035q1_device = { 11482043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich .name = "bfin-lq035q1", 11492043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich .id = -1, 11502043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich .num_resources = ARRAY_SIZE(bfin_lq035q1_resources), 11512043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich .resource = bfin_lq035q1_resources, 11522043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich .dev = { 11532043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich .platform_data = &bfin_lq035q1_data, 11542043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich }, 11552043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich}; 11562043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#endif 11572043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich 11581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 11591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource bfin_uart_resources[] = { 1160233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART0 11611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 11621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0xFFC00400, 11631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0xFFC004FF, 11641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 1165233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang }, 1166233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang#endif 1167233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART1 1168233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang { 11691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0xFFC02000, 11701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0xFFC020FF, 11711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 11721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 1173233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang#endif 11741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 11751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 11761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_uart_device = { 11771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "bfin-uart", 11781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 1, 11791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .num_resources = ARRAY_SIZE(bfin_uart_resources), 11801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .resource = bfin_uart_resources, 11811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 11821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 11831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 11845be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 11855be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#ifdef CONFIG_BFIN_SIR0 118642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct resource bfin_sir0_resources[] = { 11875be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang { 11885be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang .start = 0xFFC00400, 11895be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang .end = 0xFFC004FF, 11905be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang .flags = IORESOURCE_MEM, 11915be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang }, 119242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang { 119342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .start = IRQ_UART0_RX, 119442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .end = IRQ_UART0_RX+1, 119542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .flags = IORESOURCE_IRQ, 119642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang }, 119742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang { 119842bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .start = CH_UART0_RX, 119942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .end = CH_UART0_RX+1, 120042bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .flags = IORESOURCE_DMA, 120142bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang }, 120242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang}; 120342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang 120442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct platform_device bfin_sir0_device = { 120542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .name = "bfin_sir", 120642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .id = 0, 120742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .num_resources = ARRAY_SIZE(bfin_sir0_resources), 120842bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .resource = bfin_sir0_resources, 120942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang}; 12105be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#endif 12115be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#ifdef CONFIG_BFIN_SIR1 121242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct resource bfin_sir1_resources[] = { 12135be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang { 12145be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang .start = 0xFFC02000, 12155be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang .end = 0xFFC020FF, 12165be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang .flags = IORESOURCE_MEM, 12175be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang }, 121842bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang { 121942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .start = IRQ_UART1_RX, 122042bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .end = IRQ_UART1_RX+1, 122142bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .flags = IORESOURCE_IRQ, 122242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang }, 122342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang { 122442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .start = CH_UART1_RX, 122542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .end = CH_UART1_RX+1, 122642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .flags = IORESOURCE_DMA, 122742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang }, 12285be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang}; 12295be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang 123042bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct platform_device bfin_sir1_device = { 12315be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang .name = "bfin_sir", 123242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .id = 1, 123342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .num_resources = ARRAY_SIZE(bfin_sir1_resources), 123442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .resource = bfin_sir1_resources, 12355be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang}; 12365be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#endif 123742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#endif 12385be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang 12391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) 1240c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct resource bfin_twi0_resource[] = { 1241c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu [0] = { 1242c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .start = TWI0_REGBASE, 1243c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .end = TWI0_REGBASE, 1244c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .flags = IORESOURCE_MEM, 1245c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu }, 1246c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu [1] = { 1247c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .start = IRQ_TWI, 1248c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .end = IRQ_TWI, 1249c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .flags = IORESOURCE_IRQ, 1250c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu }, 1251c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu}; 1252c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 12531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device i2c_bfin_twi_device = { 12541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "i2c-bfin-twi", 12551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 0, 1256c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .num_resources = ARRAY_SIZE(bfin_twi0_resource), 1257c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .resource = bfin_twi0_resource, 12581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 12591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 12601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 126151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich#if defined(CONFIG_KEYBOARD_ADP5588) || defined(CONFIG_KEYBOARD_ADP5588_MODULE) 126251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich#include <linux/input.h> 1263f39d56ec469a9ade221ceeb85a37b051374f616bMichael Hennerich#include <linux/i2c/adp5588.h> 126451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerichstatic const unsigned short adp5588_keymap[ADP5588_KEYMAPSIZE] = { 126551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [0] = KEY_GRAVE, 126651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [1] = KEY_1, 126751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [2] = KEY_2, 126851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [3] = KEY_3, 126951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [4] = KEY_4, 127051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [5] = KEY_5, 127151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [6] = KEY_6, 127251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [7] = KEY_7, 127351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [8] = KEY_8, 127451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [9] = KEY_9, 127551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [10] = KEY_0, 127651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [11] = KEY_MINUS, 127751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [12] = KEY_EQUAL, 127851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [13] = KEY_BACKSLASH, 127951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [15] = KEY_KP0, 128051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [16] = KEY_Q, 128151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [17] = KEY_W, 128251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [18] = KEY_E, 128351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [19] = KEY_R, 128451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [20] = KEY_T, 128551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [21] = KEY_Y, 128651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [22] = KEY_U, 128751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [23] = KEY_I, 128851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [24] = KEY_O, 128951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [25] = KEY_P, 129051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [26] = KEY_LEFTBRACE, 129151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [27] = KEY_RIGHTBRACE, 129251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [29] = KEY_KP1, 129351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [30] = KEY_KP2, 129451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [31] = KEY_KP3, 129551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [32] = KEY_A, 129651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [33] = KEY_S, 129751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [34] = KEY_D, 129851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [35] = KEY_F, 129951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [36] = KEY_G, 130051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [37] = KEY_H, 130151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [38] = KEY_J, 130251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [39] = KEY_K, 130351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [40] = KEY_L, 130451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [41] = KEY_SEMICOLON, 130551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [42] = KEY_APOSTROPHE, 130651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [43] = KEY_BACKSLASH, 130751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [45] = KEY_KP4, 130851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [46] = KEY_KP5, 130951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [47] = KEY_KP6, 131051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [48] = KEY_102ND, 131151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [49] = KEY_Z, 131251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [50] = KEY_X, 131351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [51] = KEY_C, 131451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [52] = KEY_V, 131551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [53] = KEY_B, 131651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [54] = KEY_N, 131751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [55] = KEY_M, 131851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [56] = KEY_COMMA, 131951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [57] = KEY_DOT, 132051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [58] = KEY_SLASH, 132151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [60] = KEY_KPDOT, 132251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [61] = KEY_KP7, 132351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [62] = KEY_KP8, 132451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [63] = KEY_KP9, 132551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [64] = KEY_SPACE, 132651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [65] = KEY_BACKSPACE, 132751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [66] = KEY_TAB, 132851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [67] = KEY_KPENTER, 132951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [68] = KEY_ENTER, 133051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [69] = KEY_ESC, 133151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [70] = KEY_DELETE, 133251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [74] = KEY_KPMINUS, 133351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [76] = KEY_UP, 133451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [77] = KEY_DOWN, 133551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [78] = KEY_RIGHT, 133651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich [79] = KEY_LEFT, 133751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich}; 133851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich 133951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerichstatic struct adp5588_kpad_platform_data adp5588_kpad_data = { 134051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich .rows = 8, 134151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich .cols = 10, 134251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich .keymap = adp5588_keymap, 134351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich .keymapsize = ARRAY_SIZE(adp5588_keymap), 134451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich .repeat = 0, 134551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich}; 134651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich#endif 134751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich 13483ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#if defined(CONFIG_PMIC_ADP5520) || defined(CONFIG_PMIC_ADP5520_MODULE) 13493ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#include <linux/mfd/adp5520.h> 13503ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich 13513ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich /* 13523ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich * ADP5520/5501 Backlight Data 13533ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich */ 13543ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich 13553ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerichstatic struct adp5520_backlight_platfrom_data adp5520_backlight_data = { 13563ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .fade_in = FADE_T_1200ms, 13573ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .fade_out = FADE_T_1200ms, 13583ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .fade_led_law = BL_LAW_LINEAR, 13593ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .en_ambl_sens = 1, 13603ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .abml_filt = BL_AMBL_FILT_640ms, 13613ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .l1_daylight_max = BL_CUR_mA(15), 13623ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .l1_daylight_dim = BL_CUR_mA(0), 13633ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .l2_office_max = BL_CUR_mA(7), 13643ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .l2_office_dim = BL_CUR_mA(0), 13653ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .l3_dark_max = BL_CUR_mA(3), 13663ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .l3_dark_dim = BL_CUR_mA(0), 13673ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .l2_trip = L2_COMP_CURR_uA(700), 13683ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .l2_hyst = L2_COMP_CURR_uA(50), 13693ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .l3_trip = L3_COMP_CURR_uA(80), 13703ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .l3_hyst = L3_COMP_CURR_uA(20), 13713ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich}; 13723ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich 13733ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich /* 13743ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich * ADP5520/5501 LEDs Data 13753ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich */ 13763ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich 13773ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#include <linux/leds.h> 13783ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich 13793ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerichstatic struct led_info adp5520_leds[] = { 13803ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich { 13813ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .name = "adp5520-led1", 13823ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .default_trigger = "none", 13833ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .flags = FLAG_ID_ADP5520_LED1_ADP5501_LED0 | LED_OFFT_600ms, 13843ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich }, 13853ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#ifdef ADP5520_EN_ALL_LEDS 13863ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich { 13873ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .name = "adp5520-led2", 13883ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .default_trigger = "none", 13893ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .flags = FLAG_ID_ADP5520_LED2_ADP5501_LED1, 13903ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich }, 13913ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich { 13923ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .name = "adp5520-led3", 13933ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .default_trigger = "none", 13943ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .flags = FLAG_ID_ADP5520_LED3_ADP5501_LED2, 13953ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich }, 13963ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#endif 13973ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich}; 13983ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich 13993ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerichstatic struct adp5520_leds_platfrom_data adp5520_leds_data = { 14003ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .num_leds = ARRAY_SIZE(adp5520_leds), 14013ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .leds = adp5520_leds, 14023ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .fade_in = FADE_T_600ms, 14033ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .fade_out = FADE_T_600ms, 14043ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .led_on_time = LED_ONT_600ms, 14053ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich}; 14063ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich 14073ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich /* 14083ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich * ADP5520 GPIO Data 14093ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich */ 14103ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich 14113ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerichstatic struct adp5520_gpio_platfrom_data adp5520_gpio_data = { 14123ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .gpio_start = 50, 14133ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .gpio_en_mask = GPIO_C1 | GPIO_C2 | GPIO_R2, 14143ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .gpio_pullup_mask = GPIO_C1 | GPIO_C2 | GPIO_R2, 14153ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich}; 14163ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich 14173ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich /* 14183ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich * ADP5520 Keypad Data 14193ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich */ 14203ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich 14213ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#include <linux/input.h> 14223ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerichstatic const unsigned short adp5520_keymap[ADP5520_KEYMAPSIZE] = { 14233ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich [KEY(0, 0)] = KEY_GRAVE, 14243ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich [KEY(0, 1)] = KEY_1, 14253ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich [KEY(0, 2)] = KEY_2, 14263ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich [KEY(0, 3)] = KEY_3, 14273ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich [KEY(1, 0)] = KEY_4, 14283ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich [KEY(1, 1)] = KEY_5, 14293ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich [KEY(1, 2)] = KEY_6, 14303ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich [KEY(1, 3)] = KEY_7, 14313ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich [KEY(2, 0)] = KEY_8, 14323ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich [KEY(2, 1)] = KEY_9, 14333ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich [KEY(2, 2)] = KEY_0, 14343ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich [KEY(2, 3)] = KEY_MINUS, 14353ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich [KEY(3, 0)] = KEY_EQUAL, 14363ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich [KEY(3, 1)] = KEY_BACKSLASH, 14373ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich [KEY(3, 2)] = KEY_BACKSPACE, 14383ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich [KEY(3, 3)] = KEY_ENTER, 14393ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich}; 14403ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich 14413ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerichstatic struct adp5520_keys_platfrom_data adp5520_keys_data = { 14423ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .rows_en_mask = ROW_R3 | ROW_R2 | ROW_R1 | ROW_R0, 14433ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .cols_en_mask = COL_C3 | COL_C2 | COL_C1 | COL_C0, 14443ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .keymap = adp5520_keymap, 14453ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .keymapsize = ARRAY_SIZE(adp5520_keymap), 14463ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .repeat = 0, 14473ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich}; 14483ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich 14493ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich /* 14503ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich * ADP5520/5501 Multifuction Device Init Data 14513ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich */ 14523ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich 14533ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerichstatic struct adp5520_subdev_info adp5520_subdevs[] = { 14543ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich { 14553ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .name = "adp5520-backlight", 14563ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .id = ID_ADP5520, 14573ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .platform_data = &adp5520_backlight_data, 14583ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich }, 14593ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich { 14603ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .name = "adp5520-led", 14613ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .id = ID_ADP5520, 14623ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .platform_data = &adp5520_leds_data, 14633ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich }, 14643ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich { 14653ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .name = "adp5520-gpio", 14663ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .id = ID_ADP5520, 14673ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .platform_data = &adp5520_gpio_data, 14683ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich }, 14693ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich { 14703ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .name = "adp5520-keys", 14713ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .id = ID_ADP5520, 14723ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .platform_data = &adp5520_keys_data, 14733ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich }, 14743ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich}; 14753ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich 14763ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerichstatic struct adp5520_platform_data adp5520_pdev_data = { 14773ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .num_subdevs = ARRAY_SIZE(adp5520_subdevs), 14783ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .subdevs = adp5520_subdevs, 14793ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich}; 14803ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich 14813ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#endif 14823ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich 148381d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wustatic struct i2c_board_info __initdata bfin_i2c_board_info[] = { 1484427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#if defined(CONFIG_INPUT_EVAL_AD7142EB) 148581d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu { 1486427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song I2C_BOARD_INFO("ad7142_captouch", 0x2C), 14874c94c3e09adba9718218d6e3d35b2dfae81f3911Barry Song .irq = IRQ_PG5, 1488427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song .platform_data = (void *)&ad7142_platfrom_data, 148981d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu }, 149081d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu#endif 1491ebd5833327e3fb46eb55553d8f5432b5226bf897Michael Hennerich#if defined(CONFIG_BFIN_TWI_LCD) || defined(CONFIG_BFIN_TWI_LCD_MODULE) 149281d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu { 149381d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu I2C_BOARD_INFO("pcf8574_lcd", 0x22), 149481d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu }, 149581d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu#endif 1496204844ebd08cfb0c83689e55d6633dcd0230d36dMichael Hennerich#if defined(CONFIG_INPUT_PCF8574) || defined(CONFIG_INPUT_PCF8574_MODULE) 149781d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu { 149881d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu I2C_BOARD_INFO("pcf8574_keypad", 0x27), 1499f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich .irq = IRQ_PG6, 1500f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich }, 1501f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich#endif 1502f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_AD7879_I2C) || defined(CONFIG_TOUCHSCREEN_AD7879_I2C_MODULE) 1503f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich { 1504f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich I2C_BOARD_INFO("ad7879", 0x2F), 1505f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich .irq = IRQ_PG5, 1506f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich .platform_data = (void *)&bfin_ad7879_ts_info, 150781d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu }, 150881d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu#endif 150951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich#if defined(CONFIG_KEYBOARD_ADP5588) || defined(CONFIG_KEYBOARD_ADP5588_MODULE) 151051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich { 151151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich I2C_BOARD_INFO("adp5588-keys", 0x34), 151251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich .irq = IRQ_PG0, 151351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich .platform_data = (void *)&adp5588_kpad_data, 151451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich }, 151551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich#endif 15163ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#if defined(CONFIG_PMIC_ADP5520) || defined(CONFIG_PMIC_ADP5520_MODULE) 15173ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich { 15183ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich I2C_BOARD_INFO("pmic-adp5520", 0x32), 15194f84b6e0bb9a7d92c791ba3607674c98f69418cbMike Frysinger .irq = IRQ_PG0, 15203ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich .platform_data = (void *)&adp5520_pdev_data, 15213ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich }, 15223ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#endif 1523ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich#if defined(CONFIG_INPUT_ADXL34X_I2C) || defined(CONFIG_INPUT_ADXL34X_I2C_MODULE) 1524ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich { 1525ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich I2C_BOARD_INFO("adxl34x", 0x53), 1526ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .irq = IRQ_PG3, 1527ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich .platform_data = (void *)&adxl34x_info, 1528ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich }, 1529ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich#endif 153081d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu}; 153181d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu 15321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 15331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_sport0_uart_device = { 15341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "bfin-sport-uart", 15351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 0, 15361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 15371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 15381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_sport1_uart_device = { 15391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "bfin-sport-uart", 15401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 1, 15411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 15421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 15431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1544c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) 15452c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#define CF_IDE_NAND_CARD_USE_HDD_INTERFACE 15462c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich/* #define CF_IDE_NAND_CARD_USE_CF_IN_COMMON_MEMORY_MODE */ 1547c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 15482c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#ifdef CF_IDE_NAND_CARD_USE_HDD_INTERFACE 15492c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#define PATA_INT IRQ_PF5 1550c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct pata_platform_info bfin_pata_platform_data = { 1551c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .ioport_shift = 1, 155264e5c51291ec760e7fdb7628fe63690d1dc6aaf7Mike Frysinger .irq_flags = IRQF_TRIGGER_HIGH | IRQF_DISABLED, 1553c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu}; 1554c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 1555c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct resource bfin_pata_resources[] = { 1556c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu { 1557c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .start = 0x20314020, 1558c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .end = 0x2031403F, 1559c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .flags = IORESOURCE_MEM, 1560c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu }, 1561c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu { 1562c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .start = 0x2031401C, 1563c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .end = 0x2031401F, 1564c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .flags = IORESOURCE_MEM, 1565c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu }, 1566c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu { 1567c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .start = PATA_INT, 1568c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .end = PATA_INT, 1569c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .flags = IORESOURCE_IRQ, 1570c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu }, 1571c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu}; 15722c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#elif defined(CF_IDE_NAND_CARD_USE_CF_IN_COMMON_MEMORY_MODE) 15732c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerichstatic struct pata_platform_info bfin_pata_platform_data = { 15742c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich .ioport_shift = 0, 15752c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich}; 1576648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich/* CompactFlash Storage Card Memory Mapped Adressing 1577648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich * /REG = A11 = 1 1578648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich */ 15792c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerichstatic struct resource bfin_pata_resources[] = { 15802c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich { 1581648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich .start = 0x20211800, 1582648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich .end = 0x20211807, 15832c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich .flags = IORESOURCE_MEM, 15842c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich }, 15852c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich { 1586648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich .start = 0x2021180E, /* Device Ctl */ 1587648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich .end = 0x2021180E, 15882c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich .flags = IORESOURCE_MEM, 15892c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich }, 15902c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich}; 15912c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#endif 1592c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 1593c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct platform_device bfin_pata_device = { 1594c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .name = "pata_platform", 1595c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .id = -1, 1596c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .num_resources = ARRAY_SIZE(bfin_pata_resources), 1597c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .resource = bfin_pata_resources, 1598c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .dev = { 1599c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .platform_data = &bfin_pata_platform_data, 1600c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu } 1601c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu}; 1602c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif 1603c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 160414b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerichstatic const unsigned int cclk_vlev_datasheet[] = 160514b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich{ 160614b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_085, 250000000), 160714b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_090, 376000000), 160814b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_095, 426000000), 160914b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_100, 426000000), 161014b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_105, 476000000), 161114b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_110, 476000000), 161214b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_115, 476000000), 161314b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_120, 500000000), 161414b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_125, 533000000), 161514b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_130, 600000000), 161614b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich}; 161714b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich 161814b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerichstatic struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = { 161914b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich .tuple_tab = cclk_vlev_datasheet, 162014b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich .tabsize = ARRAY_SIZE(cclk_vlev_datasheet), 162114b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich .vr_settling_time = 25 /* us */, 162214b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich}; 162314b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich 162414b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerichstatic struct platform_device bfin_dpmc = { 162514b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich .name = "bfin dpmc", 162614b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich .dev = { 162714b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich .platform_data = &bfin_dmpc_vreg_data, 162814b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich }, 162914b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich}; 163014b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich 16311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device *stamp_devices[] __initdata = { 163214b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich 163314b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich &bfin_dpmc, 163414b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich 16351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) 16361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &bfin_pcmcia_cf_device, 16371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 16381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 16391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) 16401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &rtc_device, 16411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 16421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 16431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE) 16441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &sl811_hcd_device, 16451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 16461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 16471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 16481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &isp1362_hcd_device, 16491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 16501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 16513f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) 16523f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich &bfin_isp1760_device, 16533f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich#endif 16543f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich 16551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) 16561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &smc91x_device, 16571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 16581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1659f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE) 1660f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau &dm9000_device, 1661f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau#endif 1662f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau 1663561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich#if defined(CONFIG_AX88180) || defined(CONFIG_AX88180_MODULE) 1664561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich &ax88180_device, 1665561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich#endif 1666561cc18b8696fd41367544f45542c096fa08d878Michael Hennerich 16671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 166865319628db2c7a630daadfeec4d371aaca788482Graf Yang &bfin_mii_bus, 16691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &bfin_mac_device, 16701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 16711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 16721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE) 16731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &net2272_bfin_device, 16741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 16751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 16761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 1677c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu &bfin_spi0_device, 16781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 16791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 16801e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai#if defined(CONFIG_SPI_BFIN_SPORT) || defined(CONFIG_SPI_BFIN_SPORT_MODULE) 16811e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai &bfin_sport_spi0_device, 16821e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai &bfin_sport_spi1_device, 16831e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai#endif 16841e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai 16851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_FB_BF537_LQ035) || defined(CONFIG_FB_BF537_LQ035_MODULE) 16861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &bfin_fb_device, 16871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 16881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 16892043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE) 16902043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich &bfin_lq035q1_device, 16912043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#endif 16922043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich 1693c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#if defined(CONFIG_FB_BFIN_7393) || defined(CONFIG_FB_BFIN_7393_MODULE) 1694c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu &bfin_fb_adv7393_device, 1695c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif 1696c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 16971394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 16981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &bfin_uart_device, 16991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 17001394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 17015be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 170242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#ifdef CONFIG_BFIN_SIR0 170342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang &bfin_sir0_device, 170442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#endif 170542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#ifdef CONFIG_BFIN_SIR1 170642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang &bfin_sir1_device, 170742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#endif 17085be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#endif 17095be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang 17101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) 17111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &i2c_bfin_twi_device, 17121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 17131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 17141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 17151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &bfin_sport0_uart_device, 17161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &bfin_sport1_uart_device, 17171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 1718c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 1719c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) 1720c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu &bfin_pata_device, 1721c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif 17222463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich 17232463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) 17242463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich &bfin_device_gpiokeys, 17252463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich#endif 1726cad2ab65dd1c7d65153ffccd71c90db028fd62f0Mike Frysinger 1727cad2ab65dd1c7d65153ffccd71c90db028fd62f0Mike Frysinger &bfin_gpios_device, 1728793dc27b51b2ffff95b72408e2ef44e0995c185bMike Frysinger 1729fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#if defined(CONFIG_MTD_NAND_PLATFORM) || defined(CONFIG_MTD_NAND_PLATFORM_MODULE) 1730fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger &bfin_async_nand_device, 1731fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#endif 1732fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger 1733793dc27b51b2ffff95b72408e2ef44e0995c185bMike Frysinger#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) 1734de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger &stamp_flash_device, 1735793dc27b51b2ffff95b72408e2ef44e0995c185bMike Frysinger#endif 17361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 17371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 17381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic int __init stamp_init(void) 17391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu{ 1740b85d858b40a28107ee50ca9e89f57c0e35c251c6Harvey Harrison printk(KERN_INFO "%s(): registering device resources\n", __func__); 174181d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu i2c_register_board_info(0, bfin_i2c_board_info, 174281d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu ARRAY_SIZE(bfin_i2c_board_info)); 1743fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger bfin_plat_nand_init(); 17441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 17455bda27235b24146cf870de663141ee4fbfa8a70bMike Frysinger spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); 1746c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 17471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu return 0; 17481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu} 17491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 17501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wuarch_initcall(stamp_init); 1751c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 1752c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wuvoid native_machine_restart(char *cmd) 1753c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu{ 1754c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu /* workaround reboot hang when booting from SPI */ 1755c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu if ((bfin_read_SYSCR() & 0x7) == 0x3) 1756b52dae3139066765a7d96563e9cd33d9e60efe33Sonic Zhang bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS); 1757c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu} 1758137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger 1759137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger/* 1760137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger * Currently the MAC address is saved in Flash by U-Boot 1761137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger */ 1762137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger#define FLASH_MAC 0x203f0000 17639862cc5278aabd82230369a142c817e37a42caa3Mike Frysingervoid bfin_get_ether_addr(char *addr) 1764137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger{ 1765137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger *(u32 *)(&(addr[0])) = bfin_read32(FLASH_MAC); 1766137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger *(u16 *)(&(addr[4])) = bfin_read16(FLASH_MAC + 4); 1767137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger} 17689862cc5278aabd82230369a142c817e37a42caa3Mike FrysingerEXPORT_SYMBOL(bfin_get_ether_addr); 1769