stamp.c revision 9862cc5278aabd82230369a142c817e37a42caa3
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> 321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/platform_device.h> 331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/mtd/mtd.h> 341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/mtd/partitions.h> 351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/spi/spi.h> 361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/spi/flash.h> 371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/usb_isp1362.h> 391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 40c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#include <linux/pata_platform.h> 411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/irq.h> 421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/interrupt.h> 4327f5d75afaa1b65e4cc1e4ac8a2a5095d24f1576David Brownell#include <linux/usb/sl811.h> 44c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#include <asm/dma.h> 451f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger#include <asm/bfin5xx_spi.h> 46c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#include <asm/reboot.h> 475d448dd50712ae42f8176b5bb8db4703bef6f0f5Bryan Wu#include <asm/portmux.h> 481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/spi/ad7877.h> 491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* 511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Name the Board for the /proc/cpuinfo 521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */ 53066954a3891d32198edad3b319792d8db6a6a575Mike Frysingerconst char bfin_board_name[] = "ADDS-BF537-STAMP"; 541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* 561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Driver needs to know address, irq and flag pin. 571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */ 581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define ISP1761_BASE 0x203C0000 601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define ISP1761_IRQ IRQ_PF7 611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) 631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource bfin_isp1761_resources[] = { 641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu [0] = { 651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "isp1761-regs", 661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = ISP1761_BASE + 0x00000000, 671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = ISP1761_BASE + 0x000fffff, 681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu [1] = { 711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = ISP1761_IRQ, 721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = ISP1761_IRQ, 731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_IRQ, 741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_isp1761_device = { 781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "isp1761", 791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 0, 801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .num_resources = ARRAY_SIZE(bfin_isp1761_resources), 811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .resource = bfin_isp1761_resources, 821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device *bfin_isp1761_devices[] = { 851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &bfin_isp1761_device, 861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wuint __init bfin_isp1761_init(void) 891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu{ 901f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger unsigned int num_devices = ARRAY_SIZE(bfin_isp1761_devices); 911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); 931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING); 941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 951394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu return platform_add_devices(bfin_isp1761_devices, num_devices); 961394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu} 971394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wuvoid __exit bfin_isp1761_exit(void) 991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu{ 1001394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu platform_device_unregister(&bfin_isp1761_device); 1011394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu} 1021394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1031394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wuarch_initcall(bfin_isp1761_init); 1041394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 1051394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1061394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) 1071394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource bfin_pcmcia_cf_resources[] = { 1081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 1091394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0x20310000, /* IO PORT */ 1101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0x20312000, 1111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 1121f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 113d2d50aa97d695d83ccb2341488d977e8cfe36555Simon Arlott .start = 0x20311000, /* Attribute Memory */ 1141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0x20311FFF, 1151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 1161f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 1171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = IRQ_PF4, 1181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = IRQ_PF4, 1191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, 1201f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 1211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 6, /* Card Detect PF6 */ 1221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 6, 1231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_IRQ, 1241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 1251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 1261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_pcmcia_cf_device = { 1281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "bfin_cf_pcmcia", 1291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = -1, 1301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .num_resources = ARRAY_SIZE(bfin_pcmcia_cf_resources), 1311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .resource = bfin_pcmcia_cf_resources, 1321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 1331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 1341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) 1361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device rtc_device = { 1371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "rtc-bfin", 1381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = -1, 1391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 1401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 1411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) 1431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource smc91x_resources[] = { 1441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 1451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "smc91x-regs", 1461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0x20300300, 1471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0x20300300 + 16, 1481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 1491f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 1501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = IRQ_PF7, 1521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = IRQ_PF7, 1531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, 1541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 1551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 1561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device smc91x_device = { 1571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "smc91x", 1581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 0, 1591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .num_resources = ARRAY_SIZE(smc91x_resources), 1601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .resource = smc91x_resources, 1611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 1621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 1631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 164f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE) 165f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landaustatic struct resource dm9000_resources[] = { 166f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau [0] = { 167f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau .start = 0x203FB800, 168f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau .end = 0x203FB800 + 8, 169f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau .flags = IORESOURCE_MEM, 170f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau }, 171f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau [1] = { 172f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau .start = IRQ_PF9, 173f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau .end = IRQ_PF9, 174f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau .flags = (IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE), 175f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau }, 176f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau}; 177f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau 178f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landaustatic struct platform_device dm9000_device = { 179f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau .name = "dm9000", 180f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau .id = -1, 181f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau .num_resources = ARRAY_SIZE(dm9000_resources), 182f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau .resource = dm9000_resources, 183f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau}; 184f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau#endif 185f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau 1861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE) 1871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource sl811_hcd_resources[] = { 1881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 1891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0x20340000, 1901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0x20340000, 1911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 1921f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 1931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0x20340004, 1941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0x20340004, 1951394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 1961f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 1971394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = CONFIG_USB_SL811_BFIN_IRQ, 1981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = CONFIG_USB_SL811_BFIN_IRQ, 1991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, 2001394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 2011394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 2021394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2031394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS) 2041394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wuvoid sl811_port_power(struct device *dev, int is_on) 2051394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu{ 206c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu gpio_request(CONFIG_USB_SL811_BFIN_GPIO_VBUS, "usb:SL811_VBUS"); 207c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu gpio_direction_output(CONFIG_USB_SL811_BFIN_GPIO_VBUS); 2081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2091394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu if (is_on) 210c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu gpio_set_value(CONFIG_USB_SL811_BFIN_GPIO_VBUS, 1); 2111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu else 212c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu gpio_set_value(CONFIG_USB_SL811_BFIN_GPIO_VBUS, 0); 2131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu} 2141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 2151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct sl811_platform_data sl811_priv = { 2171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .potpg = 10, 2181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .power = 250, /* == 500mA */ 2191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS) 2201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .port_power = &sl811_port_power, 2211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 2221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 2231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device sl811_hcd_device = { 2251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "sl811-hcd", 2261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 0, 2271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .dev = { 2281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .platform_data = &sl811_priv, 2291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 2301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .num_resources = ARRAY_SIZE(sl811_hcd_resources), 2311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .resource = sl811_hcd_resources, 2321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 2331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 2341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 2361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource isp1362_hcd_resources[] = { 2371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 2381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0x20360000, 2391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0x20360000, 2401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 2411f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 2421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0x20360004, 2431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0x20360004, 2441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 2451f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 2461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = CONFIG_USB_ISP1362_BFIN_GPIO_IRQ, 2471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = CONFIG_USB_ISP1362_BFIN_GPIO_IRQ, 2481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, 2491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 2501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 2511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct isp1362_platform_data isp1362_priv = { 2531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .sel15Kres = 1, 2541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .clknotstop = 0, 2551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .oc_enable = 0, 2561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .int_act_high = 0, 2571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .int_edge_triggered = 0, 2581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .remote_wakeup_connected = 0, 2591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .no_power_switching = 1, 2601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .power_switching_mode = 0, 2611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 2621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device isp1362_hcd_device = { 2641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "isp1362-hcd", 2651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 0, 2661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .dev = { 2671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .platform_data = &isp1362_priv, 2681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 2691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .num_resources = ARRAY_SIZE(isp1362_hcd_resources), 2701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .resource = isp1362_hcd_resources, 2711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 2721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 2731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 2751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_mac_device = { 2761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "bfin_mac", 2771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 2781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 2791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE) 2811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource net2272_bfin_resources[] = { 2821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 2831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0x20300000, 2841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0x20300000 + 0x100, 2851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 2861f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 2871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = IRQ_PF7, 2881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = IRQ_PF7, 2891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, 2901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 2911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 2921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device net2272_bfin_device = { 2941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "net2272", 2951394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = -1, 2961394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .num_resources = ARRAY_SIZE(net2272_bfin_resources), 2971394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .resource = net2272_bfin_resources, 2981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 2991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 3001394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3011394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 3021394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* all SPI peripherals info goes here */ 3031394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3041394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_MTD_M25P80) \ 3051394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu || defined(CONFIG_MTD_M25P80_MODULE) 3061394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct mtd_partition bfin_spi_flash_partitions[] = { 3071394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 3081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "bootloader", 3091394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .size = 0x00020000, 3101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .offset = 0, 3111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .mask_flags = MTD_CAP_ROM 3121f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 3131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "kernel", 3141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .size = 0xe0000, 3151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .offset = 0x20000 3161f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 3171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "file system", 3181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .size = 0x700000, 3191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .offset = 0x00100000, 3201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu } 3211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 3221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct flash_platform_data bfin_spi_flash_data = { 3241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "m25p80", 3251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .parts = bfin_spi_flash_partitions, 3261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .nr_parts = ARRAY_SIZE(bfin_spi_flash_partitions), 3271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .type = "m25p64", 3281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 3291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* SPI flash chip (m25p64) */ 3311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip spi_flash_chip_info = { 3321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .enable_dma = 0, /* use dma transfer with this chip*/ 3331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .bits_per_word = 8, 3341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 3351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 3361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SPI_ADC_BF533) \ 3381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu || defined(CONFIG_SPI_ADC_BF533_MODULE) 3391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* SPI ADC chip */ 3401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip spi_adc_chip_info = { 3411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .enable_dma = 1, /* use dma transfer with this chip*/ 3421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .bits_per_word = 16, 3431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 3441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 3451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SND_BLACKFIN_AD1836) \ 3471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 3481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip ad1836_spi_chip_info = { 3491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .enable_dma = 0, 3501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .bits_per_word = 16, 3511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 3521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 3531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_AD9960) || defined(CONFIG_AD9960_MODULE) 3551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip ad9960_spi_chip_info = { 3561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .enable_dma = 0, 3571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .bits_per_word = 16, 3581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 3591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 3601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 3621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip spi_mmc_chip_info = { 3631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .enable_dma = 1, 3641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .bits_per_word = 8, 3651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 3661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 3671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_PBX) 3691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip spi_si3xxx_chip_info = { 3701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .ctl_reg = 0x4, /* send zero */ 3711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .enable_dma = 0, 3721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .bits_per_word = 8, 3731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .cs_change_per_word = 1, 3741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 3751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 3761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_AD5304) || defined(CONFIG_AD5304_MODULE) 3781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip ad5304_chip_info = { 3791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .enable_dma = 0, 3801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .bits_per_word = 16, 3811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 3821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 3831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) 3851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip spi_ad7877_chip_info = { 3861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .enable_dma = 0, 3871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .bits_per_word = 16, 3881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 3891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 3901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic const struct ad7877_platform_data bfin_ad7877_ts_info = { 3911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .model = 7877, 3921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .vref_delay_usecs = 50, /* internal, no capacitor */ 3931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .x_plate_ohms = 419, 3941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .y_plate_ohms = 486, 3951394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .pressure_max = 1000, 3961394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .pressure_min = 0, 3971394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .stopacq_polarity = 1, 3981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .first_conversion_delay = 3, 3991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .acquisition_time = 1, 4001394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .averaging = 1, 4011394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .pen_down_acc_interval = 1, 4021394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 4031394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 4041394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 4051394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct spi_board_info bfin_spi_board_info[] __initdata = { 4061394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_MTD_M25P80) \ 4071394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu || defined(CONFIG_MTD_M25P80_MODULE) 4081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 4091394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu /* the modalias must be the same as spi device driver name */ 4101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .modalias = "m25p80", /* Name of spi_driver for this device */ 4111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ 412c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .bus_num = 0, /* Framework bus number */ 4131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .chip_select = 1, /* Framework chip select. On STAMP537 it is SPISSEL1*/ 4141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .platform_data = &bfin_spi_flash_data, 4151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .controller_data = &spi_flash_chip_info, 4161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .mode = SPI_MODE_3, 4171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 4181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 4191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 4201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SPI_ADC_BF533) \ 4211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu || defined(CONFIG_SPI_ADC_BF533_MODULE) 4221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 4231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .modalias = "bfin_spi_adc", /* Name of spi_driver for this device */ 4241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .max_speed_hz = 6250000, /* max spi clock (SCK) speed in HZ */ 425c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .bus_num = 0, /* Framework bus number */ 4261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .chip_select = 1, /* Framework chip select. */ 4271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .platform_data = NULL, /* No spi_driver specific config */ 4281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .controller_data = &spi_adc_chip_info, 4291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 4301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 4311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 4321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SND_BLACKFIN_AD1836) \ 4331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 4341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 4351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .modalias = "ad1836-spi", 4361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ 437c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .bus_num = 0, 4381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .chip_select = CONFIG_SND_BLACKFIN_SPI_PFBIT, 4391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .controller_data = &ad1836_spi_chip_info, 4401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 4411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 4421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_AD9960) || defined(CONFIG_AD9960_MODULE) 4431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 4441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .modalias = "ad9960-spi", 4451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .max_speed_hz = 10000000, /* max spi clock (SCK) speed in HZ */ 446c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .bus_num = 0, 4471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .chip_select = 1, 4481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .controller_data = &ad9960_spi_chip_info, 4491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 4501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 4511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 4521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 4531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .modalias = "spi_mmc_dummy", 454111cf97d2cf35fbaa5eaff6ec5d395a06e14aadfSonic Zhang .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */ 455c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .bus_num = 0, 4561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .chip_select = 0, 4571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .platform_data = NULL, 4581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .controller_data = &spi_mmc_chip_info, 4591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .mode = SPI_MODE_3, 4601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 4611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 4621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .modalias = "spi_mmc", 463111cf97d2cf35fbaa5eaff6ec5d395a06e14aadfSonic Zhang .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */ 464c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .bus_num = 0, 4651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .chip_select = CONFIG_SPI_MMC_CS_CHAN, 4661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .platform_data = NULL, 4671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .controller_data = &spi_mmc_chip_info, 4681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .mode = SPI_MODE_3, 4691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 4701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 4711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_PBX) 4721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 4731f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger .modalias = "fxs-spi", 4741f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */ 475c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .bus_num = 0, 476c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .chip_select = 8 - CONFIG_J11_JUMPER, 4771f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger .controller_data = &spi_si3xxx_chip_info, 4781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .mode = SPI_MODE_3, 4791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 4801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 4811f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger .modalias = "fxo-spi", 4821f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */ 483c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .bus_num = 0, 484c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .chip_select = 8 - CONFIG_J19_JUMPER, 4851f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger .controller_data = &spi_si3xxx_chip_info, 4861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .mode = SPI_MODE_3, 4871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 4881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 4891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_AD5304) || defined(CONFIG_AD5304_MODULE) 4901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 4911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .modalias = "ad5304_spi", 4921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .max_speed_hz = 1250000, /* max spi clock (SCK) speed in HZ */ 493c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .bus_num = 0, 4941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .chip_select = 2, 4951394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .platform_data = NULL, 4961394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .controller_data = &ad5304_chip_info, 4971394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .mode = SPI_MODE_2, 4981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 4991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 5001394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) 5011394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 5021394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .modalias = "ad7877", 5031394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .platform_data = &bfin_ad7877_ts_info, 5041394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .irq = IRQ_PF6, 5051394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */ 5061394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .bus_num = 1, 5071394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .chip_select = 1, 5081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .controller_data = &spi_ad7877_chip_info, 5091394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 5101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 5111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 5121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 5131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* SPI controller data */ 514c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct bfin5xx_spi_master bfin_spi0_info = { 5151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .num_chipselect = 8, 5161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .enable_dma = 1, /* master has the ability to do dma transfer */ 5175d448dd50712ae42f8176b5bb8db4703bef6f0f5Bryan Wu .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0}, 5181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 5191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 520c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu/* SPI (0) */ 521c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct resource bfin_spi0_resource[] = { 522c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu [0] = { 523c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .start = SPI0_REGBASE, 524c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .end = SPI0_REGBASE + 0xFF, 525c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .flags = IORESOURCE_MEM, 526c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu }, 527c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu [1] = { 528c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .start = CH_SPI, 529c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .end = CH_SPI, 530c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .flags = IORESOURCE_IRQ, 531c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu }, 532c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu}; 533c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 534c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct platform_device bfin_spi0_device = { 535c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .name = "bfin-spi", 536c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .id = 0, /* Bus number */ 537c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .num_resources = ARRAY_SIZE(bfin_spi0_resource), 538c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .resource = bfin_spi0_resource, 5391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .dev = { 540c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .platform_data = &bfin_spi0_info, /* Passed to driver */ 5411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 5421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 5431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif /* spi master and devices */ 5441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 5451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_FB_BF537_LQ035) || defined(CONFIG_FB_BF537_LQ035_MODULE) 5461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_fb_device = { 547c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .name = "bf537-lq035", 548c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu}; 549c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif 550c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 551c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#if defined(CONFIG_FB_BFIN_7393) || defined(CONFIG_FB_BFIN_7393_MODULE) 552c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct platform_device bfin_fb_adv7393_device = { 553c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .name = "bfin-adv7393", 5541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 5551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 5561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 5571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 5581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource bfin_uart_resources[] = { 5591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 5601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0xFFC00400, 5611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0xFFC004FF, 5621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 5631f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 5641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0xFFC02000, 5651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0xFFC020FF, 5661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 5671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 5681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 5691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 5701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_uart_device = { 5711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "bfin-uart", 5721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 1, 5731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .num_resources = ARRAY_SIZE(bfin_uart_resources), 5741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .resource = bfin_uart_resources, 5751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 5761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 5771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 5781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) 579c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct resource bfin_twi0_resource[] = { 580c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu [0] = { 581c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .start = TWI0_REGBASE, 582c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .end = TWI0_REGBASE, 583c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .flags = IORESOURCE_MEM, 584c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu }, 585c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu [1] = { 586c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .start = IRQ_TWI, 587c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .end = IRQ_TWI, 588c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .flags = IORESOURCE_IRQ, 589c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu }, 590c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu}; 591c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 5921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device i2c_bfin_twi_device = { 5931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "i2c-bfin-twi", 5941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 0, 595c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .num_resources = ARRAY_SIZE(bfin_twi0_resource), 596c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .resource = bfin_twi0_resource, 5971394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 5981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 5991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 6001394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 6011394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_sport0_uart_device = { 6021394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "bfin-sport-uart", 6031394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 0, 6041394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 6051394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 6061394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_sport1_uart_device = { 6071394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "bfin-sport-uart", 6081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 1, 6091394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 6101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 6111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 612c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) 613c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#define PATA_INT 55 614c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 615c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct pata_platform_info bfin_pata_platform_data = { 616c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .ioport_shift = 1, 61764e5c51291ec760e7fdb7628fe63690d1dc6aaf7Mike Frysinger .irq_flags = IRQF_TRIGGER_HIGH | IRQF_DISABLED, 618c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu}; 619c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 620c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct resource bfin_pata_resources[] = { 621c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu { 622c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .start = 0x20314020, 623c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .end = 0x2031403F, 624c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .flags = IORESOURCE_MEM, 625c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu }, 626c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu { 627c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .start = 0x2031401C, 628c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .end = 0x2031401F, 629c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .flags = IORESOURCE_MEM, 630c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu }, 631c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu { 632c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .start = PATA_INT, 633c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .end = PATA_INT, 634c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .flags = IORESOURCE_IRQ, 635c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu }, 636c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu}; 637c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 638c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct platform_device bfin_pata_device = { 639c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .name = "pata_platform", 640c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .id = -1, 641c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .num_resources = ARRAY_SIZE(bfin_pata_resources), 642c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .resource = bfin_pata_resources, 643c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .dev = { 644c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .platform_data = &bfin_pata_platform_data, 645c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu } 646c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu}; 647c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif 648c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 6491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device *stamp_devices[] __initdata = { 6501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) 6511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &bfin_pcmcia_cf_device, 6521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 6531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 6541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) 6551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &rtc_device, 6561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 6571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 6581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE) 6591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &sl811_hcd_device, 6601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 6611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 6621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 6631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &isp1362_hcd_device, 6641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 6651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 6661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) 6671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &smc91x_device, 6681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 6691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 670f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE) 671f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau &dm9000_device, 672f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau#endif 673f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau 6741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 6751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &bfin_mac_device, 6761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 6771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 6781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE) 6791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &net2272_bfin_device, 6801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 6811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 6821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 683c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu &bfin_spi0_device, 6841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 6851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 6861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_FB_BF537_LQ035) || defined(CONFIG_FB_BF537_LQ035_MODULE) 6871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &bfin_fb_device, 6881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 6891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 690c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#if defined(CONFIG_FB_BFIN_7393) || defined(CONFIG_FB_BFIN_7393_MODULE) 691c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu &bfin_fb_adv7393_device, 692c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif 693c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 6941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 6951394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &bfin_uart_device, 6961394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 6971394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 6981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) 6991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &i2c_bfin_twi_device, 7001394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 7011394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 7021394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 7031394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &bfin_sport0_uart_device, 7041394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &bfin_sport1_uart_device, 7051394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 706c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 707c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) 708c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu &bfin_pata_device, 709c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif 7101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 7111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 7121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic int __init stamp_init(void) 7131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu{ 7141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu printk(KERN_INFO "%s(): registering device resources\n", __FUNCTION__); 7151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 7161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 7171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu spi_register_board_info(bfin_spi_board_info, 7181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu ARRAY_SIZE(bfin_spi_board_info)); 7191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 720c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 721c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) 722c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu irq_desc[PATA_INT].status |= IRQ_NOAUTOEN; 723c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif 7241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu return 0; 7251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu} 7261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 7271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wuarch_initcall(stamp_init); 728c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 729c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wuvoid native_machine_restart(char *cmd) 730c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu{ 731c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu /* workaround reboot hang when booting from SPI */ 732c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu if ((bfin_read_SYSCR() & 0x7) == 0x3) 733c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu bfin_gpio_reset_spi0_ssel1(); 734c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu} 735137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger 736137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger/* 737137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger * Currently the MAC address is saved in Flash by U-Boot 738137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger */ 739137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger#define FLASH_MAC 0x203f0000 7409862cc5278aabd82230369a142c817e37a42caa3Mike Frysingervoid bfin_get_ether_addr(char *addr) 741137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger{ 742137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger *(u32 *)(&(addr[0])) = bfin_read32(FLASH_MAC); 743137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger *(u16 *)(&(addr[4])) = bfin_read16(FLASH_MAC + 4); 744137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger} 7459862cc5278aabd82230369a142c817e37a42caa3Mike FrysingerEXPORT_SYMBOL(bfin_get_ether_addr); 746