stamp.c revision 7832bb5d450aefa45b6dac3b3140eade66bb12ad
11394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/*
296f1050d3df105c9ae6c6ac224f370199ea82fcdRobin Getz * Copyright 2004-2009 Analog Devices Inc.
396f1050d3df105c9ae6c6ac224f370199ea82fcdRobin Getz *                2005 National ICT Australia (NICTA)
496f1050d3df105c9ae6c6ac224f370199ea82fcdRobin Getz *                      Aidan Williams <aidan@nicta.com.au>
51394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu *
696f1050d3df105c9ae6c6ac224f370199ea82fcdRobin Getz * Licensed under the GPL-2 or later.
71394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */
81394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
91394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/device.h>
10fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#include <linux/kernel.h>
111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/platform_device.h>
126e3647554e2bf7d7a898ccfc35941adbecd888e7Barry Song#include <linux/io.h>
131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/mtd/mtd.h>
14fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#include <linux/mtd/nand.h>
151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/mtd/partitions.h>
16fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#include <linux/mtd/plat-ram.h>
17de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger#include <linux/mtd/physmap.h>
181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/spi/spi.h>
191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/spi/flash.h>
201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
21f02bcec5986870b3ddae26f6be1cde0703abfd8aMike Frysinger#include <linux/usb/isp1362.h>
221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
237a9cc48907e05e61033b953a3860e55703625950Sonic Zhang#include <linux/i2c.h>
247a9cc48907e05e61033b953a3860e55703625950Sonic Zhang#include <linux/i2c/adp5588.h>
250531c467da6438f278e9420a30f73eea2fdb73bdMike Frysinger#include <linux/etherdevice.h>
260a87e3e92b299e0f1a69b36664ecde2fc296c40aJeff Garzik#include <linux/ata_platform.h>
271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/irq.h>
281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/interrupt.h>
2927f5d75afaa1b65e4cc1e4ac8a2a5095d24f1576David Brownell#include <linux/usb/sl811.h>
30f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#include <linux/spi/mmc_spi.h>
3178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#include <linux/leds.h>
3278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#include <linux/input.h>
33c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#include <asm/dma.h>
341f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger#include <asm/bfin5xx_spi.h>
35c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#include <asm/reboot.h>
365d448dd50712ae42f8176b5bb8db4703bef6f0f5Bryan Wu#include <asm/portmux.h>
3714b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich#include <asm/dpmc.h>
386f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#include <asm/bfin_sport.h>
391b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang#ifdef CONFIG_REGULATOR_FIXED_VOLTAGE
401b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang#include <linux/regulator/fixed.h>
41f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#endif
421b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang#include <linux/regulator/machine.h>
43f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#include <linux/regulator/consumer.h>
44f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#include <linux/regulator/userspace-consumer.h>
451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/*
471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Name the Board for the /proc/cpuinfo
481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */
49fe85cad25e56aad5e020ea5cab50a100892f645bMike Frysingerconst char bfin_board_name[] = "ADI BF537-STAMP";
501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/*
521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu *  Driver needs to know address, irq and flag pin.
531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */
541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
563f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich#include <linux/usb/isp1760.h>
573f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerichstatic struct resource bfin_isp1760_resources[] = {
581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	[0] = {
593f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich		.start  = 0x203C0000,
603f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich		.end    = 0x203C0000 + 0x000fffff,
611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags  = IORESOURCE_MEM,
621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	[1] = {
643f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich		.start  = IRQ_PF7,
653f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich		.end    = IRQ_PF7,
666a6be3d1882743a382f18da9821a410bb29964a2Michael Hennerich		.flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL,
671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
703f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerichstatic struct isp1760_platform_data isp1760_priv = {
713f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.is_isp1761 = 0,
723f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.bus_width_16 = 1,
733f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.port1_otg = 0,
743f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.analog_oc = 0,
753f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.dack_polarity_high = 0,
763f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.dreq_polarity_high = 0,
771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
793f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerichstatic struct platform_device bfin_isp1760_device = {
80c6feb7682885f732a264ef589ee44edb1a3d45f2Michael Hennerich	.name           = "isp1760",
813f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.id             = 0,
823f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.dev = {
833f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich		.platform_data = &isp1760_priv,
843f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	},
853f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.num_resources  = ARRAY_SIZE(bfin_isp1760_resources),
863f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.resource       = bfin_isp1760_resources,
871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
902463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
912463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich#include <linux/gpio_keys.h>
922463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich
932463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerichstatic struct gpio_keys_button bfin_gpio_keys_table[] = {
942463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	{BTN_0, GPIO_PF2, 1, "gpio-keys: BTN0"},
952463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	{BTN_1, GPIO_PF3, 1, "gpio-keys: BTN1"},
962463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	{BTN_2, GPIO_PF4, 1, "gpio-keys: BTN2"},
972463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	{BTN_3, GPIO_PF5, 1, "gpio-keys: BTN3"},
982463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich};
992463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich
1002463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerichstatic struct gpio_keys_platform_data bfin_gpio_keys_data = {
1012463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	.buttons        = bfin_gpio_keys_table,
1022463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	.nbuttons       = ARRAY_SIZE(bfin_gpio_keys_table),
1032463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich};
1042463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich
1052463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerichstatic struct platform_device bfin_device_gpiokeys = {
1062463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	.name      = "gpio-keys",
1072463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	.dev = {
1082463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich		.platform_data = &bfin_gpio_keys_data,
1092463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	},
1102463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich};
1112463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich#endif
1122463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich
1131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE)
1141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource bfin_pcmcia_cf_resources[] = {
1151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
1161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = 0x20310000, /* IO PORT */
1171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = 0x20312000,
1181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
1191f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
120d2d50aa97d695d83ccb2341488d977e8cfe36555Simon Arlott		.start = 0x20311000, /* Attribute Memory */
1211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = 0x20311FFF,
1221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
1231f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
1241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = IRQ_PF4,
1251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = IRQ_PF4,
1261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL,
1271f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
1281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = 6, /* Card Detect PF6 */
1291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = 6,
1301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_IRQ,
1311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
1321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
1331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_pcmcia_cf_device = {
1351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "bfin_cf_pcmcia",
1361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = -1,
1371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.num_resources = ARRAY_SIZE(bfin_pcmcia_cf_resources),
1381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.resource = bfin_pcmcia_cf_resources,
1391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
1401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
1411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
1431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device rtc_device = {
1441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "rtc-bfin",
1451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id   = -1,
1461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
1471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
1481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
15061f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich#include <linux/smc91x.h>
15161f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich
15261f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerichstatic struct smc91x_platdata smc91x_info = {
15361f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich	.flags = SMC91X_USE_16BIT | SMC91X_NOWAIT,
15461f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich	.leda = RPC_LED_100_10,
15561f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich	.ledb = RPC_LED_TX_RX,
15661f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich};
15761f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich
1581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource smc91x_resources[] = {
1591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
1601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.name = "smc91x-regs",
1611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = 0x20300300,
1621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = 0x20300300 + 16,
1631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
1641f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
1651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = IRQ_PF7,
1671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = IRQ_PF7,
1681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
1691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
1701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
1711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device smc91x_device = {
1721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "smc91x",
1731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = 0,
1741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.num_resources = ARRAY_SIZE(smc91x_resources),
1751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.resource = smc91x_resources,
17661f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich	.dev	= {
17761f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich		.platform_data	= &smc91x_info,
17861f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich	},
1791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
1801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
1811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
182f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
183f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landaustatic struct resource dm9000_resources[] = {
184f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau	[0] = {
185f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau		.start	= 0x203FB800,
186b3dec4a4ff495248170358cb3b8254a814e5b096Barry Song		.end	= 0x203FB800 + 1,
187f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau		.flags	= IORESOURCE_MEM,
188f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau	},
189f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau	[1] = {
190b3dec4a4ff495248170358cb3b8254a814e5b096Barry Song		.start	= 0x203FB804,
191b3dec4a4ff495248170358cb3b8254a814e5b096Barry Song		.end	= 0x203FB804 + 1,
192b3dec4a4ff495248170358cb3b8254a814e5b096Barry Song		.flags	= IORESOURCE_MEM,
193b3dec4a4ff495248170358cb3b8254a814e5b096Barry Song	},
194b3dec4a4ff495248170358cb3b8254a814e5b096Barry Song	[2] = {
195f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau		.start	= IRQ_PF9,
196f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau		.end	= IRQ_PF9,
197f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau		.flags	= (IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE),
198f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau	},
199f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau};
200f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau
201f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landaustatic struct platform_device dm9000_device = {
202f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau	.name		= "dm9000",
203f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau	.id		= -1,
204f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau	.num_resources	= ARRAY_SIZE(dm9000_resources),
205f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau	.resource	= dm9000_resources,
206f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau};
207f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau#endif
208f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau
2091394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE)
2101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource sl811_hcd_resources[] = {
2111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
2121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = 0x20340000,
2131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = 0x20340000,
2141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
2151f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
2161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = 0x20340004,
2171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = 0x20340004,
2181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
2191f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
22001218654cd97a1e970034b1e080ec5459172c3f6Mike Frysinger		.start = IRQ_PF4,
22101218654cd97a1e970034b1e080ec5459172c3f6Mike Frysinger		.end = IRQ_PF4,
2221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
2231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
2241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
2251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
2261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS)
2271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wuvoid sl811_port_power(struct device *dev, int is_on)
2281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu{
229c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	gpio_request(CONFIG_USB_SL811_BFIN_GPIO_VBUS, "usb:SL811_VBUS");
230acbcd2631975cf6f0be5cd294cbfd12226cd9958Michael Hennerich	gpio_direction_output(CONFIG_USB_SL811_BFIN_GPIO_VBUS, is_on);
2311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}
2321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
2331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
2341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct sl811_platform_data sl811_priv = {
2351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.potpg = 10,
2361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.power = 250,       /* == 500mA */
2371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS)
2381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.port_power = &sl811_port_power,
2391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
2401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
2411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
2421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device sl811_hcd_device = {
2431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "sl811-hcd",
2441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = 0,
2451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.dev = {
2461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.platform_data = &sl811_priv,
2471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
2481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.num_resources = ARRAY_SIZE(sl811_hcd_resources),
2491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.resource = sl811_hcd_resources,
2501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
2511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
2521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
2531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
2541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource isp1362_hcd_resources[] = {
2551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
2561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = 0x20360000,
2571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = 0x20360000,
2581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
2591f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
2601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = 0x20360004,
2611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = 0x20360004,
2621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
2631f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
26421b03cfe4c50fd586bfebd06d852457c07f60c2bMike Frysinger		.start = IRQ_PF3,
26521b03cfe4c50fd586bfebd06d852457c07f60c2bMike Frysinger		.end = IRQ_PF3,
2669e75894c50d126bf3c8efb0efc91d5a93d6163ddMichael Hennerich		.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE,
2671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
2681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
2691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
2701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct isp1362_platform_data isp1362_priv = {
2711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.sel15Kres = 1,
2721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.clknotstop = 0,
2731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.oc_enable = 0,
2741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.int_act_high = 0,
2751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.int_edge_triggered = 0,
2761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.remote_wakeup_connected = 0,
2771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.no_power_switching = 1,
2781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.power_switching_mode = 0,
2791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
2801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
2811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device isp1362_hcd_device = {
2821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "isp1362-hcd",
2831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = 0,
2841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.dev = {
2851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.platform_data = &isp1362_priv,
2861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
2871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.num_resources = ARRAY_SIZE(isp1362_hcd_resources),
2881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.resource = isp1362_hcd_resources,
2891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
2901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
2911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
292706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song#if defined(CONFIG_CAN_BFIN) || defined(CONFIG_CAN_BFIN_MODULE)
293a8b19886097032df38bd521cece4bc538fee2266Mike Frysingerstatic unsigned short bfin_can_peripherals[] = {
294706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	P_CAN0_RX, P_CAN0_TX, 0
295706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song};
296706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song
297706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Songstatic struct resource bfin_can_resources[] = {
298706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	{
299706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.start = 0xFFC02A00,
300706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.end = 0xFFC02FFF,
301706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.flags = IORESOURCE_MEM,
302706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	},
303706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	{
304706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.start = IRQ_CAN_RX,
305706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.end = IRQ_CAN_RX,
306706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.flags = IORESOURCE_IRQ,
307706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	},
308706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	{
309706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.start = IRQ_CAN_TX,
310706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.end = IRQ_CAN_TX,
311706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.flags = IORESOURCE_IRQ,
312706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	},
313706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	{
314706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.start = IRQ_CAN_ERROR,
315706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.end = IRQ_CAN_ERROR,
316706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.flags = IORESOURCE_IRQ,
317706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	},
318706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song};
319706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song
320706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Songstatic struct platform_device bfin_can_device = {
321706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	.name = "bfin_can",
322706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	.num_resources = ARRAY_SIZE(bfin_can_resources),
323706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	.resource = bfin_can_resources,
324706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	.dev = {
325706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.platform_data = &bfin_can_peripherals, /* Passed to driver */
326706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	},
327706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song};
328706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song#endif
329706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song
3301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
33102460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang#include <linux/bfin_mac.h>
33202460d08930656b3a50381cfb119864efcd4eef9Sonic Zhangstatic const unsigned short bfin_mac_peripherals[] = P_MII0;
33302460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang
33402460d08930656b3a50381cfb119864efcd4eef9Sonic Zhangstatic struct bfin_phydev_platform_data bfin_phydev_data[] = {
33502460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	{
33602460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang		.addr = 1,
33702460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang		.irq = PHY_POLL, /* IRQ_MAC_PHYINT */
33802460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	},
33902460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang};
34002460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang
34102460d08930656b3a50381cfb119864efcd4eef9Sonic Zhangstatic struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
34202460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	.phydev_number = 1,
34302460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	.phydev_data = bfin_phydev_data,
34402460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	.phy_mode = PHY_INTERFACE_MODE_MII,
34502460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	.mac_peripherals = bfin_mac_peripherals,
34602460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang};
34702460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang
34865319628db2c7a630daadfeec4d371aaca788482Graf Yangstatic struct platform_device bfin_mii_bus = {
34965319628db2c7a630daadfeec4d371aaca788482Graf Yang	.name = "bfin_mii_bus",
35002460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	.dev = {
35102460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang		.platform_data = &bfin_mii_bus_data,
35202460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	}
35365319628db2c7a630daadfeec4d371aaca788482Graf Yang};
35465319628db2c7a630daadfeec4d371aaca788482Graf Yang
3551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_mac_device = {
3561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "bfin_mac",
35702460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	.dev = {
35802460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang		.platform_data = &bfin_mii_bus,
35902460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	}
3601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
3611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
3621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
3631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
3641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource net2272_bfin_resources[] = {
3651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
3661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = 0x20300000,
3671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = 0x20300000 + 0x100,
3681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
3691f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
3709be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger		.start = 1,
3719be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger		.flags = IORESOURCE_BUS,
3729be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	}, {
3731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = IRQ_PF7,
3741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = IRQ_PF7,
3751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
3761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
3771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
3781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
3791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device net2272_bfin_device = {
3801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "net2272",
3811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = -1,
3821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.num_resources = ARRAY_SIZE(net2272_bfin_resources),
3831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.resource = net2272_bfin_resources,
3841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
3851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
3861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
387fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#if defined(CONFIG_MTD_NAND_PLATFORM) || defined(CONFIG_MTD_NAND_PLATFORM_MODULE)
388fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerconst char *part_probes[] = { "cmdlinepart", "RedBoot", NULL };
389fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
390fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic struct mtd_partition bfin_plat_nand_partitions[] = {
391fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	{
392aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name   = "linux kernel(nand)",
393fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.size   = 0x400000,
394fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.offset = 0,
395fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	}, {
396aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name   = "file system(nand)",
397fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.size   = MTDPART_SIZ_FULL,
398fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.offset = MTDPART_OFS_APPEND,
399fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	},
400fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger};
401fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
402fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#define BFIN_NAND_PLAT_CLE 2
403fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#define BFIN_NAND_PLAT_ALE 1
404fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic void bfin_plat_nand_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl)
405fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger{
406fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	struct nand_chip *this = mtd->priv;
407fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
408fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	if (cmd == NAND_CMD_NONE)
409fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		return;
410fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
411fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	if (ctrl & NAND_CLE)
412fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		writeb(cmd, this->IO_ADDR_W + (1 << BFIN_NAND_PLAT_CLE));
413fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	else
414fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		writeb(cmd, this->IO_ADDR_W + (1 << BFIN_NAND_PLAT_ALE));
415fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger}
416fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
417fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#define BFIN_NAND_PLAT_READY GPIO_PF3
418fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic int bfin_plat_nand_dev_ready(struct mtd_info *mtd)
419fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger{
420fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	return gpio_get_value(BFIN_NAND_PLAT_READY);
421fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger}
422fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
423fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic struct platform_nand_data bfin_plat_nand_data = {
424fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.chip = {
425ef56609f9c7fdf5baa9d9f86f84a7bd8a717cd25Marek Vasut		.nr_chips = 1,
426fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.chip_delay = 30,
427fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.part_probe_types = part_probes,
428fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.partitions = bfin_plat_nand_partitions,
429fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.nr_partitions = ARRAY_SIZE(bfin_plat_nand_partitions),
430fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	},
431fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.ctrl = {
432fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.cmd_ctrl  = bfin_plat_nand_cmd_ctrl,
433fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.dev_ready = bfin_plat_nand_dev_ready,
434fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	},
435fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger};
436fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
437fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#define MAX(x, y) (x > y ? x : y)
438fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic struct resource bfin_plat_nand_resources = {
439fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.start = 0x20212000,
440fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.end   = 0x20212000 + (1 << MAX(BFIN_NAND_PLAT_CLE, BFIN_NAND_PLAT_ALE)),
44167d9963bd79b8f861387982ac5c0ff796f12be61Mike Frysinger	.flags = IORESOURCE_MEM,
442fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger};
443fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
444fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic struct platform_device bfin_async_nand_device = {
445fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.name = "gen_nand",
446fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.id = -1,
447fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.num_resources = 1,
448fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.resource = &bfin_plat_nand_resources,
449fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.dev = {
450fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.platform_data = &bfin_plat_nand_data,
451fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	},
452fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger};
453fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
454fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic void bfin_plat_nand_init(void)
455fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger{
456fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	gpio_request(BFIN_NAND_PLAT_READY, "bfin_nand_plat");
457fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger}
458fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#else
459fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic void bfin_plat_nand_init(void) {}
460fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#endif
461fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
462793dc27b51b2ffff95b72408e2ef44e0995c185bMike Frysinger#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
463de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysingerstatic struct mtd_partition stamp_partitions[] = {
464de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	{
465aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name       = "bootloader(nor)",
466edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger		.size       = 0x40000,
467de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.offset     = 0,
468de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	}, {
469aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name       = "linux kernel(nor)",
4706ecb5b6dbc01b958fdce7008f297a5c7ba2d8105Grace Pan		.size       = 0x180000,
471de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.offset     = MTDPART_OFS_APPEND,
472de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	}, {
473aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name       = "file system(nor)",
4746ecb5b6dbc01b958fdce7008f297a5c7ba2d8105Grace Pan		.size       = 0x400000 - 0x40000 - 0x180000 - 0x10000,
475de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.offset     = MTDPART_OFS_APPEND,
476de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	}, {
477aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name       = "MAC Address(nor)",
478de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.size       = MTDPART_SIZ_FULL,
479de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.offset     = 0x3F0000,
480de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.mask_flags = MTD_WRITEABLE,
481de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	}
482de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger};
483de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger
484de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysingerstatic struct physmap_flash_data stamp_flash_data = {
485de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.width      = 2,
486de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.parts      = stamp_partitions,
487de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.nr_parts   = ARRAY_SIZE(stamp_partitions),
48838e7673f24e6c19aba9ecff86760cb7981b91464Barry Song#ifdef CONFIG_ROMKERNEL
48938e7673f24e6c19aba9ecff86760cb7981b91464Barry Song	.probe_type = "map_rom",
49038e7673f24e6c19aba9ecff86760cb7981b91464Barry Song#endif
491de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger};
492de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger
493de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysingerstatic struct resource stamp_flash_resource = {
494de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.start = 0x20000000,
495de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.end   = 0x203fffff,
496de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.flags = IORESOURCE_MEM,
497de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger};
498de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger
499de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysingerstatic struct platform_device stamp_flash_device = {
500de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.name          = "physmap-flash",
501de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.id            = 0,
502de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.dev = {
503de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.platform_data = &stamp_flash_data,
504de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	},
505de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.num_resources = 1,
506de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.resource      = &stamp_flash_resource,
507de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger};
508793dc27b51b2ffff95b72408e2ef44e0995c185bMike Frysinger#endif
509de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger
5101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_MTD_M25P80) \
5111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	|| defined(CONFIG_MTD_M25P80_MODULE)
5121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct mtd_partition bfin_spi_flash_partitions[] = {
5131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
514aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name = "bootloader(spi)",
515edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger		.size = 0x00040000,
5161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.offset = 0,
5171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.mask_flags = MTD_CAP_ROM
5181f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
519aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name = "linux kernel(spi)",
5206ecb5b6dbc01b958fdce7008f297a5c7ba2d8105Grace Pan		.size = 0x180000,
521edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger		.offset = MTDPART_OFS_APPEND,
5221f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
523aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name = "file system(spi)",
524edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger		.size = MTDPART_SIZ_FULL,
525edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger		.offset = MTDPART_OFS_APPEND,
5261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	}
5271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
5281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
5291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct flash_platform_data bfin_spi_flash_data = {
5301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "m25p80",
5311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.parts = bfin_spi_flash_partitions,
5321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.nr_parts = ARRAY_SIZE(bfin_spi_flash_partitions),
53388a8078b3b31349e9cbf09215eab6891fb1aed0fMichael Hennerich	/* .type = "m25p64", */
5341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
5351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
5361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* SPI flash chip (m25p64) */
5371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip spi_flash_chip_info = {
5381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.enable_dma = 0,         /* use dma transfer with this chip*/
539a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li};
540a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li#endif
541a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li
5425b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger#if defined(CONFIG_INPUT_AD714X_SPI) || defined(CONFIG_INPUT_AD714X_SPI_MODULE)
543427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#include <linux/input/ad714x.h>
544427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song
5455b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysingerstatic struct ad714x_slider_plat ad7147_spi_slider_plat[] = {
546427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
547427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.start_stage = 0,
548427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.end_stage = 7,
549427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.max_coord = 128,
550427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
551427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song};
552427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song
5535b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysingerstatic struct ad714x_button_plat ad7147_spi_button_plat[] = {
554427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
555427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_FORWARD,
556427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0,
557427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x600,
558427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
559427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
560427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_LEFT,
561427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0,
562427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x500,
563427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
564427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
565427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_MIDDLE,
566427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0,
567427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x800,
568427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
569427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
570427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_RIGHT,
571427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0x100,
572427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x400,
573427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
574427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
575427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_BACK,
576427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0x200,
577427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x400,
578427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
579427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song};
5805b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysingerstatic struct ad714x_platform_data ad7147_spi_platform_data = {
581427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.slider_num = 1,
582427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.button_num = 5,
5835b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger	.slider = ad7147_spi_slider_plat,
5845b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger	.button = ad7147_spi_button_plat,
585427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.stage_cfg_reg =  {
586427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFBFF, 0x1FFF, 0, 0x2626, 1600, 1600, 1600, 1600},
587427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xEFFF, 0x1FFF, 0, 0x2626, 1650, 1650, 1650, 1650},
588427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x1FFE, 0, 0x2626, 1650, 1650, 1650, 1650},
589427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x1FFB, 0, 0x2626, 1650, 1650, 1650, 1650},
590427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x1FEF, 0, 0x2626, 1650, 1650, 1650, 1650},
591427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x1FBF, 0, 0x2626, 1650, 1650, 1650, 1650},
592427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x1EFF, 0, 0x2626, 1650, 1650, 1650, 1650},
593427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x1BFF, 0, 0x2626, 1600, 1600, 1600, 1600},
594427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFF7B, 0x3FFF, 0x506,  0x2626, 1100, 1100, 1150, 1150},
595427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFDFE, 0x3FFF, 0x606,  0x2626, 1100, 1100, 1150, 1150},
596427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFEBA, 0x1FFF, 0x1400, 0x2626, 1200, 1200, 1300, 1300},
597427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFEF, 0x1FFF, 0x0,    0x2626, 1100, 1100, 1150, 1150},
598427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
599427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.sys_cfg_reg = {0x2B2, 0x0, 0x3233, 0x819, 0x832, 0xCFF, 0xCFF, 0x0},
600427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song};
601427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#endif
602427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song
6035b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger#if defined(CONFIG_INPUT_AD714X_I2C) || defined(CONFIG_INPUT_AD714X_I2C_MODULE)
604427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#include <linux/input/ad714x.h>
6055b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysingerstatic struct ad714x_button_plat ad7142_i2c_button_plat[] = {
606427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
607427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_1,
608427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0,
609427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x1,
610427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
611427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
612427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_2,
613427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0,
614427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x2,
615427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
616427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
617427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_3,
618427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0,
619427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x4,
620427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
621427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
622427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_4,
623427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0x0,
624427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x8,
625427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
626427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song};
6275b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysingerstatic struct ad714x_platform_data ad7142_i2c_platform_data = {
628427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.button_num = 4,
6295b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger	.button = ad7142_i2c_button_plat,
630427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.stage_cfg_reg =  {
631427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		/* fixme: figure out right setting for all comoponent according
632427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		 * to hardware feature of EVAL-AD7142EB board */
633427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xE7FF, 0x3FFF, 0x0005, 0x2626, 0x01F4, 0x01F4, 0x028A, 0x028A},
634427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFDBF, 0x3FFF, 0x0001, 0x2626, 0x01F4, 0x01F4, 0x028A, 0x028A},
635427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x2DFF, 0x0001, 0x2626, 0x01F4, 0x01F4, 0x028A, 0x028A},
636427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x37BF, 0x0001, 0x2626, 0x01F4, 0x01F4, 0x028A, 0x028A},
637427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320},
638427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320},
639427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320},
640427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320},
641427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320},
642427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320},
643427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320},
644427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320},
645427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
646427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.sys_cfg_reg = {0x0B2, 0x0, 0x690, 0x664, 0x290F, 0xF, 0xF, 0x0},
647427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song};
648427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#endif
649427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song
650f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang#if defined(CONFIG_AD2S90) || defined(CONFIG_AD2S90_MODULE)
651f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yangstatic struct bfin5xx_spi_chip ad2s90_spi_chip_info = {
652f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang	.enable_dma = 0,
653f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang};
654f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang#endif
655f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang
656df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang#if defined(CONFIG_AD2S120X) || defined(CONFIG_AD2S120X_MODULE)
657a8b19886097032df38bd521cece4bc538fee2266Mike Frysingerstatic unsigned short ad2s120x_platform_data[] = {
658df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang	/* used as SAMPLE and RDVEL */
659df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang	GPIO_PF5, GPIO_PF6, 0
660df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang};
661df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang
662df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yangstatic struct bfin5xx_spi_chip ad2s120x_spi_chip_info = {
663df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang	.enable_dma = 0,
664df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang};
665df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang#endif
666df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang
667848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang#if defined(CONFIG_AD2S1210) || defined(CONFIG_AD2S1210_MODULE)
668a8b19886097032df38bd521cece4bc538fee2266Mike Frysingerstatic unsigned short ad2s1210_platform_data[] = {
669848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	/* use as SAMPLE, A0, A1 */
670848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	GPIO_PF7, GPIO_PF8, GPIO_PF9,
671848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang# if defined(CONFIG_AD2S1210_GPIO_INPUT) || defined(CONFIG_AD2S1210_GPIO_OUTPUT)
672848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	/* the RES0 and RES1 pins */
673848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	GPIO_PF4, GPIO_PF5,
674848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang# endif
675848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	0,
676848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang};
677848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang
678848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yangstatic struct bfin5xx_spi_chip ad2s1210_spi_chip_info = {
679848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	.enable_dma = 0,
680848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang};
681848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang#endif
682848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang
6830891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_AD7314) || defined(CONFIG_AD7314_MODULE)
6840891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic struct bfin5xx_spi_chip ad7314_spi_chip_info = {
6850891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	.enable_dma = 0,
6860891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
6870891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
6880891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
6890891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_AD7816) || defined(CONFIG_AD7816_MODULE)
6900891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic unsigned short ad7816_platform_data[] = {
6910891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	GPIO_PF4, /* rdwr_pin */
6920891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	GPIO_PF5, /* convert_pin */
6930891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	GPIO_PF7, /* busy_pin */
6940891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	0,
6950891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
6960891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
6970891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic struct bfin5xx_spi_chip ad7816_spi_chip_info = {
6980891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	.enable_dma = 0,
6990891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
7000891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
7010891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
7020891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADT7310) || defined(CONFIG_ADT7310_MODULE)
7030891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic unsigned long adt7310_platform_data[3] = {
7040891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich/* INT bound temperature alarm event. line 1 */
7050891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	IRQ_PG4, IRQF_TRIGGER_LOW,
7060891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich/* CT bound temperature alarm event irq_flags. line 0 */
7070891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	IRQF_TRIGGER_LOW,
7080891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
7090891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
7100891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic struct bfin5xx_spi_chip adt7310_spi_chip_info = {
7110891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	.enable_dma = 0,
7120891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
7130891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
7140891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
7150891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_AD7298) || defined(CONFIG_AD7298_MODULE)
7160891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic unsigned short ad7298_platform_data[] = {
7170891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	GPIO_PF7, /* busy_pin */
7180891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	0,
7190891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
7200891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
7210891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
7220891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADT7316_SPI) || defined(CONFIG_ADT7316_SPI_MODULE)
7230891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic unsigned long adt7316_spi_data[2] = {
7240891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	IRQF_TRIGGER_LOW, /* interrupt flags */
7250891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	GPIO_PF7, /* ldac_pin, 0 means DAC/LDAC registers control DAC update */
7260891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
7270891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
7280891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic struct bfin5xx_spi_chip adt7316_spi_chip_info = {
7290891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	.enable_dma = 0,
7300891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
7310891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
7320891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
733f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
734f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#define MMC_SPI_CARD_DETECT_INT IRQ_PF5
735f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li
736f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Listatic int bfin_mmc_spi_init(struct device *dev,
737f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	irqreturn_t (*detect_int)(int, void *), void *data)
738f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li{
739f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	return request_irq(MMC_SPI_CARD_DETECT_INT, detect_int,
740f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		IRQF_TRIGGER_FALLING, "mmc-spi-detect", data);
741f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li}
742f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li
743f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Listatic void bfin_mmc_spi_exit(struct device *dev, void *data)
744f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li{
745f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	free_irq(MMC_SPI_CARD_DETECT_INT, data);
746f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li}
747f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li
748f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Listatic struct mmc_spi_platform_data bfin_mmc_spi_pdata = {
749f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	.init = bfin_mmc_spi_init,
750f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	.exit = bfin_mmc_spi_exit,
751f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	.detect_delay = 100, /* msecs */
752f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li};
753f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li
754f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Listatic struct bfin5xx_spi_chip  mmc_spi_chip_info = {
755f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	.enable_dma = 0,
756e68d1ebc30e033612bb69f949da654d72beae57dYi Li	.pio_interrupt = 0,
757f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li};
758f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#endif
759f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li
7601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
76146aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#include <linux/spi/ad7877.h>
7621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic const struct ad7877_platform_data bfin_ad7877_ts_info = {
7631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.model			= 7877,
7641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.vref_delay_usecs	= 50,	/* internal, no capacitor */
7651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.x_plate_ohms		= 419,
7661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.y_plate_ohms		= 486,
7671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.pressure_max		= 1000,
7681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.pressure_min		= 0,
7696ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.stopacq_polarity	= 1,
7706ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.first_conversion_delay	= 3,
7716ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.acquisition_time	= 1,
7726ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.averaging		= 1,
7736ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.pen_down_acc_interval	= 1,
7741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
7751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
7761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
77746aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_AD7879) || defined(CONFIG_TOUCHSCREEN_AD7879_MODULE)
77846aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#include <linux/spi/ad7879.h>
77946aa04f9b678d1d6f3558429109326775ca87715Michael Hennerichstatic const struct ad7879_platform_data bfin_ad7879_ts_info = {
78046aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	.model			= 7879,	/* Model = AD7879 */
78146aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	.x_plate_ohms		= 620,	/* 620 Ohm from the touch datasheet */
78246aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	.pressure_max		= 10000,
78346aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	.pressure_min		= 0,
7846ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.first_conversion_delay	= 3,	/* wait 512us before do a first conversion */
7856ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.acquisition_time	= 1,	/* 4us acquisition time per sample */
78646aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	.median			= 2,	/* do 8 measurements */
7876ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.averaging		= 1,	/* take the average of 4 middle samples */
7886ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.pen_down_acc_interval	= 255,	/* 9.4 ms */
789244d34230b7447fba95221dbf39b39e94257939cMichael Hennerich	.gpio_export		= 1,	/* Export GPIO to gpiolib */
790244d34230b7447fba95221dbf39b39e94257939cMichael Hennerich	.gpio_base		= -1,	/* Dynamic allocation */
79146aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich};
79246aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#endif
79346aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich
794ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich#if defined(CONFIG_INPUT_ADXL34X) || defined(CONFIG_INPUT_ADXL34X_MODULE)
79557af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich#include <linux/input/adxl34x.h>
796ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerichstatic const struct adxl34x_platform_data adxl34x_info = {
797ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.x_axis_offset = 0,
798ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.y_axis_offset = 0,
799ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.z_axis_offset = 0,
800ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.tap_threshold = 0x31,
801ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.tap_duration = 0x10,
802ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.tap_latency = 0x60,
803ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.tap_window = 0xF0,
804ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.tap_axis_control = ADXL_TAP_X_EN | ADXL_TAP_Y_EN | ADXL_TAP_Z_EN,
805ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.act_axis_control = 0xFF,
806ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.activity_threshold = 5,
807ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.inactivity_threshold = 3,
808ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.inactivity_time = 4,
809ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.free_fall_threshold = 0x7,
810ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.free_fall_time = 0x20,
811ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.data_rate = 0x8,
812ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.data_range = ADXL_FULL_RES,
813ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich
814ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.ev_type = EV_ABS,
815ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.ev_code_x = ABS_X,		/* EV_REL */
816ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.ev_code_y = ABS_Y,		/* EV_REL */
817ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.ev_code_z = ABS_Z,		/* EV_REL */
818ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich
81957af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich	.ev_code_tap = {BTN_TOUCH, BTN_TOUCH, BTN_TOUCH}, /* EV_KEY x,y,z */
820ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich
821ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich/*	.ev_code_ff = KEY_F,*/		/* EV_KEY */
822ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich/*	.ev_code_act_inactivity = KEY_A,*/	/* EV_KEY */
823ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.power_mode = ADXL_AUTO_SLEEP | ADXL_LINK,
824ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.fifo_mode = ADXL_FIFO_STREAM,
8256ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.orientation_enable = ADXL_EN_ORIENTATION_3D,
8266ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.deadzone_angle = ADXL_DEADZONE_ANGLE_10p8,
8276ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.divisor_length =  ADXL_LP_FILTER_DIVISOR_16,
8286ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	/* EV_KEY {+Z, +Y, +X, -X, -Y, -Z} */
8296ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.ev_codes_orient_3d = {BTN_Z, BTN_Y, BTN_X, BTN_A, BTN_B, BTN_C},
830ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich};
831ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich#endif
832ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich
83385a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich#if defined(CONFIG_ENC28J60) || defined(CONFIG_ENC28J60_MODULE)
83485a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerichstatic struct bfin5xx_spi_chip enc28j60_spi_chip_info = {
83585a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich	.enable_dma	= 1,
83685a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich};
83785a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich#endif
83885a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich
839efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich#if defined(CONFIG_ADF702X) || defined(CONFIG_ADF702X_MODULE)
840efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich#include <linux/spi/adf702x.h>
841efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich#define TXREG 0x0160A470
842efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerichstatic const u32 adf7021_regs[] = {
843efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x09608FA0,
844efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x00575011,
845efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x00A7F092,
846efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x2B141563,
847efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x81F29E94,
848efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x00003155,
849efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x050A4F66,
850efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x00000007,
851efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x00000008,
852efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x000231E9,
853efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x3296354A,
854efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x891A2B3B,
855efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x00000D9C,
856efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x0000000D,
857efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x0000000E,
858efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x0000000F,
859efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich};
860efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich
861efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerichstatic struct adf702x_platform_data adf7021_platform_data = {
862efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.regs_base = (void *)SPORT1_TCR1,
863efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.dma_ch_rx = CH_SPORT1_RX,
864efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.dma_ch_tx = CH_SPORT1_TX,
865efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.irq_sport_err = IRQ_SPORT1_ERROR,
866efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.gpio_int_rfs = GPIO_PF8,
867efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.pin_req = {P_SPORT1_DTPRI, P_SPORT1_RFS, P_SPORT1_DRPRI,
868efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich			P_SPORT1_RSCLK, P_SPORT1_TSCLK, 0},
869efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.adf702x_model = MODEL_ADF7021,
870efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.adf702x_regs = adf7021_regs,
871efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.tx_reg = TXREG,
872efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich};
8730531c467da6438f278e9420a30f73eea2fdb73bdMike Frysingerstatic inline void adf702x_mac_init(void)
8740531c467da6438f278e9420a30f73eea2fdb73bdMike Frysinger{
8750531c467da6438f278e9420a30f73eea2fdb73bdMike Frysinger	random_ether_addr(adf7021_platform_data.mac_addr);
8760531c467da6438f278e9420a30f73eea2fdb73bdMike Frysinger}
8770531c467da6438f278e9420a30f73eea2fdb73bdMike Frysinger#else
8780531c467da6438f278e9420a30f73eea2fdb73bdMike Frysingerstatic inline void adf702x_mac_init(void) {}
879efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich#endif
880efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich
881fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
882fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich#include <linux/spi/ads7846.h>
883fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerichstatic int ads7873_get_pendown_state(void)
884fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich{
885fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	return gpio_get_value(GPIO_PF6);
886fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich}
887fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich
888fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerichstatic struct ads7846_platform_data __initdata ad7873_pdata = {
889fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.model		= 7873,		/* AD7873 */
890fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.x_max		= 0xfff,
891fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.y_max		= 0xfff,
892fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.x_plate_ohms	= 620,
893fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.debounce_max	= 1,
894fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.debounce_rep	= 0,
895fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.debounce_tol	= (~0),
896fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.get_pendown_state = ads7873_get_pendown_state,
897fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich};
898fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich#endif
899fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich
9008e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich#if defined(CONFIG_MTD_DATAFLASH) \
9018e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich	|| defined(CONFIG_MTD_DATAFLASH_MODULE)
902ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich
903ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerichstatic struct mtd_partition bfin_spi_dataflash_partitions[] = {
904ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	{
905ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.name = "bootloader(spi)",
906ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.size = 0x00040000,
907ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.offset = 0,
908ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.mask_flags = MTD_CAP_ROM
909ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	}, {
910ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.name = "linux kernel(spi)",
9116ecb5b6dbc01b958fdce7008f297a5c7ba2d8105Grace Pan		.size = 0x180000,
912ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.offset = MTDPART_OFS_APPEND,
913ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	}, {
914ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.name = "file system(spi)",
915ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.size = MTDPART_SIZ_FULL,
916ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.offset = MTDPART_OFS_APPEND,
917ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	}
918ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich};
919ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich
920ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerichstatic struct flash_platform_data bfin_spi_dataflash_data = {
921ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	.name = "SPI Dataflash",
922ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	.parts = bfin_spi_dataflash_partitions,
923ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	.nr_parts = ARRAY_SIZE(bfin_spi_dataflash_partitions),
924ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich};
925ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich
9268e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich/* DataFlash chip */
9278e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerichstatic struct bfin5xx_spi_chip data_flash_chip_info = {
9288e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich	.enable_dma = 0,         /* use dma transfer with this chip*/
92957af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich};
93057af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich#endif
93157af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich
9320891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_AD7476) || defined(CONFIG_AD7476_MODULE)
9330891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic struct bfin5xx_spi_chip spi_ad7476_chip_info = {
9340891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	.enable_dma = 0,         /* use dma transfer with this chip*/
9350891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
9360891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
9370891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
9381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct spi_board_info bfin_spi_board_info[] __initdata = {
9391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_MTD_M25P80) \
9401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	|| defined(CONFIG_MTD_M25P80_MODULE)
9411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
9421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		/* the modalias must be the same as spi device driver name */
9431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.modalias = "m25p80", /* Name of spi_driver for this device */
9441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.max_speed_hz = 25000000,     /* max spi clock (SCK) speed in HZ */
945c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.bus_num = 0, /* Framework bus number */
9461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.chip_select = 1, /* Framework chip select. On STAMP537 it is SPISSEL1*/
9471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.platform_data = &bfin_spi_flash_data,
9481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.controller_data = &spi_flash_chip_info,
9491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.mode = SPI_MODE_3,
9501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
9511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
9528e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich#if defined(CONFIG_MTD_DATAFLASH) \
9538e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich	|| defined(CONFIG_MTD_DATAFLASH_MODULE)
9548e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich	{	/* DataFlash chip */
9558e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich		.modalias = "mtd_dataflash",
956ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.max_speed_hz = 33250000,     /* max spi clock (SCK) speed in HZ */
9578e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich		.bus_num = 0, /* Framework bus number */
9588e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich		.chip_select = 1, /* Framework chip select. On STAMP537 it is SPISSEL1*/
959ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.platform_data = &bfin_spi_dataflash_data,
9608e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich		.controller_data = &data_flash_chip_info,
9618e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich		.mode = SPI_MODE_3,
9628e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich	},
9638e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich#endif
9641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
965d0556363064f06eaf1380cd529051ad5add43ba8Scott Jiang#if defined(CONFIG_SND_BF5XX_SOC_AD1836) \
966d0556363064f06eaf1380cd529051ad5add43ba8Scott Jiang	|| defined(CONFIG_SND_BF5XX_SOC_AD1836_MODULE)
9671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
968d0556363064f06eaf1380cd529051ad5add43ba8Scott Jiang		.modalias = "ad1836",
9691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.max_speed_hz = 3125000,     /* max spi clock (SCK) speed in HZ */
970c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.bus_num = 0,
9717ba80063e90302287625a105c546c2fc318fcfbfBarry Song		.chip_select = 4,
972d40bd71f88e7be193ce4feb4b92572c70024b9c2Barry Song		.platform_data = "ad1836", /* only includes chip name for the moment */
9738312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song		.mode = SPI_MODE_3,
9741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
9751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
976d4b834c13940b5433d16ae3605794b3d74804348Barry Song
9773b82790c12f8122d3df07cc387d2d74355e54c75Barry Song#if defined(CONFIG_SND_BF5XX_SOC_AD193X) || defined(CONFIG_SND_BF5XX_SOC_AD193X_MODULE)
978d4b834c13940b5433d16ae3605794b3d74804348Barry Song	{
9793b82790c12f8122d3df07cc387d2d74355e54c75Barry Song		.modalias = "ad193x",
980d4b834c13940b5433d16ae3605794b3d74804348Barry Song		.max_speed_hz = 3125000,     /* max spi clock (SCK) speed in HZ */
981d4b834c13940b5433d16ae3605794b3d74804348Barry Song		.bus_num = 0,
98208a54bffaf7d5dc9391518323234ce9f9ea4be8eBarry Song		.chip_select = 5,
983d4b834c13940b5433d16ae3605794b3d74804348Barry Song		.mode = SPI_MODE_3,
984d4b834c13940b5433d16ae3605794b3d74804348Barry Song	},
985d4b834c13940b5433d16ae3605794b3d74804348Barry Song#endif
986d4b834c13940b5433d16ae3605794b3d74804348Barry Song
987080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen#if defined(CONFIG_SND_SOC_ADAV80X) || defined(CONFIG_SND_SOC_ADV80X_MODULE)
988a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li	{
989080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen		.modalias = "adav801",
990a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li		.max_speed_hz = 3125000,     /* max spi clock (SCK) speed in HZ */
991a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li		.bus_num = 0,
992a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li		.chip_select = 1,
993a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li		.mode = SPI_MODE_3,
994a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li	},
995a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li#endif
996a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li
9975b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger#if defined(CONFIG_INPUT_AD714X_SPI) || defined(CONFIG_INPUT_AD714X_SPI_MODULE)
998427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
999427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.modalias = "ad714x_captouch",
1000427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
1001427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.irq = IRQ_PF4,
1002427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.bus_num = 0,
1003427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.chip_select = 5,
1004427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.mode = SPI_MODE_3,
10055b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger		.platform_data = &ad7147_spi_platform_data,
1006427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
1007427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#endif
1008427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song
1009f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang#if defined(CONFIG_AD2S90) || defined(CONFIG_AD2S90_MODULE)
1010f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang	{
1011f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang		.modalias = "ad2s90",
1012f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang		.bus_num = 0,
1013f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang		.chip_select = 3,            /* change it for your board */
10146fbfa0c41878a5284156d4678dc514c92524e0b9Barry Song		.mode = SPI_MODE_3,
1015f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang		.platform_data = NULL,
1016f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang		.controller_data = &ad2s90_spi_chip_info,
1017f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang	},
1018f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang#endif
1019f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang
1020df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang#if defined(CONFIG_AD2S120X) || defined(CONFIG_AD2S120X_MODULE)
1021df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang	{
1022df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang		.modalias = "ad2s120x",
1023df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang		.bus_num = 0,
1024df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang		.chip_select = 4,            /* CS, change it for your board */
1025df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang		.platform_data = ad2s120x_platform_data,
1026df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang		.controller_data = &ad2s120x_spi_chip_info,
1027df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang	},
1028df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang#endif
1029df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang
1030848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang#if defined(CONFIG_AD2S1210) || defined(CONFIG_AD2S1210_MODULE)
1031848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	{
1032848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang		.modalias = "ad2s1210",
1033848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang		.max_speed_hz = 8192000,
1034848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang		.bus_num = 0,
1035848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang		.chip_select = 4,            /* CS, change it for your board */
1036848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang		.platform_data = ad2s1210_platform_data,
1037848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang		.controller_data = &ad2s1210_spi_chip_info,
1038848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	},
1039848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang#endif
1040848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang
10410891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_AD7314) || defined(CONFIG_AD7314_MODULE)
10420891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
10430891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "ad7314",
10440891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,
10450891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
10460891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 4,            /* CS, change it for your board */
10470891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.controller_data = &ad7314_spi_chip_info,
10480891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_1,
10490891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
10500891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
10510891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
10520891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_AD7816) || defined(CONFIG_AD7816_MODULE)
10530891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
10540891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "ad7818",
10550891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,
10560891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
10570891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 4,            /* CS, change it for your board */
10580891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = ad7816_platform_data,
10590891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.controller_data = &ad7816_spi_chip_info,
10600891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
10610891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
10620891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
10630891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
10640891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADT7310) || defined(CONFIG_ADT7310_MODULE)
10650891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
10660891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adt7310",
10670891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,
10680891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PG5,		/* CT alarm event. Line 0 */
10690891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
10700891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 4,	/* CS, change it for your board */
10710891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = adt7310_platform_data,
10720891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.controller_data = &adt7310_spi_chip_info,
10730891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
10740891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
10750891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
10760891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
10770891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_AD7298) || defined(CONFIG_AD7298_MODULE)
10780891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
10790891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "ad7298",
10800891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,
10810891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
10820891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 4,            /* CS, change it for your board */
10830891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = ad7298_platform_data,
10840891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
10850891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
10860891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
10870891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
10880891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADT7316_SPI) || defined(CONFIG_ADT7316_SPI_MODULE)
10890891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
10900891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adt7316",
10910891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,
10920891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PG5,		/* interrupt line */
10930891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
10940891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 4,	/* CS, change it for your board */
10950891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = adt7316_spi_data,
10960891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.controller_data = &adt7316_spi_chip_info,
10970891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
10980891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
10990891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
11000891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
1101f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
1102f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	{
1103f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.modalias = "mmc_spi",
1104f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.max_speed_hz = 20000000,     /* max spi clock (SCK) speed in HZ */
1105f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.bus_num = 0,
1106f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.chip_select = 4,
1107f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.platform_data = &bfin_mmc_spi_pdata,
1108f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.controller_data = &mmc_spi_chip_info,
1109f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.mode = SPI_MODE_3,
1110f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	},
1111f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#endif
11121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
11131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
11141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.modalias		= "ad7877",
11151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.platform_data		= &bfin_ad7877_ts_info,
11161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.irq			= IRQ_PF6,
11171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.max_speed_hz	= 12500000,     /* max spi clock (SCK) speed in HZ */
1118c7d4896621d42c84956911afd5f10a5d317c781aMichael Hennerich		.bus_num	= 0,
11191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.chip_select  = 1,
11201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
11211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
1122f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_AD7879_SPI) || defined(CONFIG_TOUCHSCREEN_AD7879_SPI_MODULE)
112346aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	{
112446aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.modalias = "ad7879",
112546aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.platform_data = &bfin_ad7879_ts_info,
112646aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.irq = IRQ_PF7,
112746aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.max_speed_hz = 5000000,     /* max spi clock (SCK) speed in HZ */
112846aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.bus_num = 0,
112946aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.chip_select = 1,
113046aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.mode = SPI_CPHA | SPI_CPOL,
113146aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	},
113246aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#endif
11336e668936db12550ab5a6a758f236140101e5a644Michael Hennerich#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE)
11346e668936db12550ab5a6a758f236140101e5a644Michael Hennerich	{
11356e668936db12550ab5a6a758f236140101e5a644Michael Hennerich		.modalias = "spidev",
11366e668936db12550ab5a6a758f236140101e5a644Michael Hennerich		.max_speed_hz = 3125000,     /* max spi clock (SCK) speed in HZ */
11376e668936db12550ab5a6a758f236140101e5a644Michael Hennerich		.bus_num = 0,
11386e668936db12550ab5a6a758f236140101e5a644Michael Hennerich		.chip_select = 1,
11396e668936db12550ab5a6a758f236140101e5a644Michael Hennerich	},
11406e668936db12550ab5a6a758f236140101e5a644Michael Hennerich#endif
11412043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
11422043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	{
11432043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.modalias = "bfin-lq035q1-spi",
11442043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.max_speed_hz = 20000000,     /* max spi clock (SCK) speed in HZ */
11452043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.bus_num = 0,
114646aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.chip_select = 2,
11472043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.mode = SPI_CPHA | SPI_CPOL,
11482043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	},
11492043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#endif
115085a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich#if defined(CONFIG_ENC28J60) || defined(CONFIG_ENC28J60_MODULE)
115185a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich	{
115285a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich		.modalias = "enc28j60",
115385a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich		.max_speed_hz = 20000000,     /* max spi clock (SCK) speed in HZ */
115485a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich		.irq = IRQ_PF6,
115585a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich		.bus_num = 0,
1156f9f0e3b1f7ac4e9fa822e87dd4bbb38f8c389487Barry Song		.chip_select = GPIO_PF10 + MAX_CTRL_CS,	/* GPIO controlled SSEL */
115785a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich		.controller_data = &enc28j60_spi_chip_info,
115885a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich		.mode = SPI_MODE_0,
115985a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich	},
116085a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich#endif
116157af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich#if defined(CONFIG_INPUT_ADXL34X_SPI) || defined(CONFIG_INPUT_ADXL34X_SPI_MODULE)
116257af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich	{
116357af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.modalias	= "adxl34x",
116457af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.platform_data	= &adxl34x_info,
116557af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.irq		= IRQ_PF6,
116657af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.max_speed_hz	= 5000000,    /* max spi clock (SCK) speed in HZ */
116757af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.bus_num	= 0,
116857af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.chip_select	= 2,
116957af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.mode = SPI_MODE_3,
117057af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich	},
117157af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich#endif
1172efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich#if defined(CONFIG_ADF702X) || defined(CONFIG_ADF702X_MODULE)
1173efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	{
1174efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich		.modalias = "adf702x",
1175efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich		.max_speed_hz = 16000000,     /* max spi clock (SCK) speed in HZ */
1176efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich		.bus_num = 0,
1177f9f0e3b1f7ac4e9fa822e87dd4bbb38f8c389487Barry Song		.chip_select = GPIO_PF10 + MAX_CTRL_CS,	/* GPIO controlled SSEL */
1178efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich		.platform_data = &adf7021_platform_data,
1179efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich		.mode = SPI_MODE_0,
1180efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	},
1181efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich#endif
1182fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
1183fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	{
1184fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.modalias = "ads7846",
1185fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.max_speed_hz = 2000000,     /* max spi clock (SCK) speed in HZ */
1186fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.bus_num = 0,
1187fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.irq = IRQ_PF6,
1188fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.chip_select = GPIO_PF10 + MAX_CTRL_CS,	/* GPIO controlled SSEL */
1189fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.platform_data = &ad7873_pdata,
1190fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.mode = SPI_MODE_0,
1191fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	},
1192fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich#endif
11930891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_AD7476) \
11940891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_AD7476_MODULE)
11950891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
11960891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "ad7476", /* Name of spi_driver for this device */
11970891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 6250000,     /* max spi clock (SCK) speed in HZ */
11980891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0, /* Framework bus number */
11990891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 1, /* Framework chip select. */
12000891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12010891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.controller_data = &spi_ad7476_chip_info,
12020891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
12030891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
12040891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
12050891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADE7753) \
12060891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADE7753_MODULE)
12070891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
12080891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "ade7753",
12090891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
12100891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
12110891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 1, /* CS, change it for your board */
12120891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12130891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_1,
12140891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
12150891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
12160891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADE7754) \
12170891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADE7754_MODULE)
12180891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
12190891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "ade7754",
12200891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
12210891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
12220891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 1, /* CS, change it for your board */
12230891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12240891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_1,
12250891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
12260891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
12270891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADE7758) \
12280891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADE7758_MODULE)
12290891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
12300891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "ade7758",
12310891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
12320891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
12330891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 1, /* CS, change it for your board */
12340891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12350891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_1,
12360891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
12370891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
12380891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADE7759) \
12390891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADE7759_MODULE)
12400891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
12410891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "ade7759",
12420891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
12430891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
12440891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 1, /* CS, change it for your board */
12450891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12460891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_1,
12470891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
12480891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
12490891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADE7854_SPI) \
12500891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADE7854_SPI_MODULE)
12510891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
12520891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "ade7854",
12530891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
12540891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
12550891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 1, /* CS, change it for your board */
12560891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12570891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
12580891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
12590891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
12600891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16060) \
12610891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16060_MODULE)
12620891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
12630891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16060_r",
12640891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 2900000,     /* max spi clock (SCK) speed in HZ */
12650891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
12660891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = MAX_CTRL_CS + 1, /* CS for read, change it for your board */
12670891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12680891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_0,
12690891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
12700891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
12710891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16060_w",
12720891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 2900000,     /* max spi clock (SCK) speed in HZ */
12730891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
12740891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 2, /* CS for write, change it for your board */
12750891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12760891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_1,
12770891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
12780891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
12790891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16130) \
12800891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16130_MODULE)
12810891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
12820891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16130",
12830891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
12840891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
12850891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 1, /* CS for read, change it for your board */
12860891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12870891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
12880891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
12890891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
12900891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16201) \
12910891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16201_MODULE)
12920891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
12930891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16201",
12940891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
12950891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
12960891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 5, /* CS, change it for your board */
12970891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12980891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
12990891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PF4,
13000891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
13010891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
13020891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16203) \
13030891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16203_MODULE)
13040891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
13050891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16203",
13060891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
13070891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
13080891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 5, /* CS, change it for your board */
13090891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
13100891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
13110891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PF4,
13120891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
13130891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
13140891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16204) \
13150891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16204_MODULE)
13160891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
13170891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16204",
13180891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
13190891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
13200891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 5, /* CS, change it for your board */
13210891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
13220891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
13230891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PF4,
13240891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
13250891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
13260891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16209) \
13270891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16209_MODULE)
13280891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
13290891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16209",
13300891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
13310891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
13320891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 5, /* CS, change it for your board */
13330891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
13340891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
13350891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PF4,
13360891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
13370891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
13380891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16220) \
13390891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16220_MODULE)
13400891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
13410891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16220",
13420891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 2000000,     /* max spi clock (SCK) speed in HZ */
13430891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
13440891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 5, /* CS, change it for your board */
13450891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
13460891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
13470891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PF4,
13480891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
13490891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
13500891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16240) \
13510891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16240_MODULE)
13520891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
13530891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16240",
13540891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1500000,     /* max spi clock (SCK) speed in HZ */
13550891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
13560891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 5, /* CS, change it for your board */
13570891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
13580891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
13590891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PF4,
13600891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
13610891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
13620891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16260) \
13630891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16260_MODULE)
13640891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
13650891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16260",
13660891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1500000,     /* max spi clock (SCK) speed in HZ */
13670891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
13680891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 5, /* CS, change it for your board */
13690891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
13700891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
13710891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PF4,
13720891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
13730891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
13740891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16261) \
13750891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16261_MODULE)
13760891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
13770891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16261",
13780891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 2500000,     /* max spi clock (SCK) speed in HZ */
13790891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
13800891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 1, /* CS, change it for your board */
13810891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
13820891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
13830891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
13840891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
13850891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16300) \
13860891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16300_MODULE)
13870891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
13880891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16300",
13890891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
13900891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
13910891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 5, /* CS, change it for your board */
13920891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
13930891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
13940891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PF4,
13950891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
13960891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
13970891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16350) \
13980891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16350_MODULE)
13990891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
14000891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16364",
14010891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
14020891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
14030891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 5, /* CS, change it for your board */
14040891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
14050891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
14060891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PF4,
14070891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
14080891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
14090891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16400) \
14100891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16400_MODULE)
14110891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
14120891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16400",
14130891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
14140891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
14150891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 1, /* CS, change it for your board */
14160891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
14170891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
14180891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
14190891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
14201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
14211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
14225bda27235b24146cf870de663141ee4fbfa8a70bMike Frysinger#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
14231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* SPI controller data */
1424c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct bfin5xx_spi_master bfin_spi0_info = {
1425f9f0e3b1f7ac4e9fa822e87dd4bbb38f8c389487Barry Song	.num_chipselect = MAX_CTRL_CS + MAX_BLACKFIN_GPIOS,
14261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.enable_dma = 1,  /* master has the ability to do dma transfer */
14275d448dd50712ae42f8176b5bb8db4703bef6f0f5Bryan Wu	.pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
14281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
14291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1430c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu/* SPI (0) */
1431c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct resource bfin_spi0_resource[] = {
1432c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	[0] = {
1433c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = SPI0_REGBASE,
1434c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end   = SPI0_REGBASE + 0xFF,
1435c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_MEM,
1436c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		},
1437c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	[1] = {
1438c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = CH_SPI,
1439c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end   = CH_SPI,
1440e68d1ebc30e033612bb69f949da654d72beae57dYi Li		.flags = IORESOURCE_DMA,
1441e68d1ebc30e033612bb69f949da654d72beae57dYi Li	},
1442e68d1ebc30e033612bb69f949da654d72beae57dYi Li	[2] = {
1443e68d1ebc30e033612bb69f949da654d72beae57dYi Li		.start = IRQ_SPI,
1444e68d1ebc30e033612bb69f949da654d72beae57dYi Li		.end   = IRQ_SPI,
1445c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_IRQ,
1446c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	},
1447c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu};
1448c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
1449c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct platform_device bfin_spi0_device = {
1450c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.name = "bfin-spi",
1451c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.id = 0, /* Bus number */
1452c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.num_resources = ARRAY_SIZE(bfin_spi0_resource),
1453c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.resource = bfin_spi0_resource,
14541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.dev = {
1455c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.platform_data = &bfin_spi0_info, /* Passed to driver */
14561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
14571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
14581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif  /* spi master and devices */
14591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
14601e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai#if defined(CONFIG_SPI_BFIN_SPORT) || defined(CONFIG_SPI_BFIN_SPORT_MODULE)
14611e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
14621e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai/* SPORT SPI controller data */
14631e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct bfin5xx_spi_master bfin_sport_spi0_info = {
14641e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.num_chipselect = 1, /* master only supports one device */
14651e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.enable_dma = 0,  /* master don't support DMA */
14661e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.pin_req = {P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_DRPRI,
14671e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		P_SPORT0_RSCLK, P_SPORT0_TFS, P_SPORT0_RFS, 0},
14681e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai};
14691e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
14701e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct resource bfin_sport_spi0_resource[] = {
14711e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	[0] = {
14721e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.start = SPORT0_TCR1,
14731e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.end   = SPORT0_TCR1 + 0xFF,
14741e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.flags = IORESOURCE_MEM,
14751e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		},
14761e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	[1] = {
14771e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.start = IRQ_SPORT0_ERROR,
14781e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.end   = IRQ_SPORT0_ERROR,
14791e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.flags = IORESOURCE_IRQ,
14801e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		},
14811e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai};
14821e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
14831e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct platform_device bfin_sport_spi0_device = {
14841e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.name = "bfin-sport-spi",
14851e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.id = 1, /* Bus number */
14861e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.num_resources = ARRAY_SIZE(bfin_sport_spi0_resource),
14871e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.resource = bfin_sport_spi0_resource,
14881e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.dev = {
14891e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.platform_data = &bfin_sport_spi0_info, /* Passed to driver */
14901e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	},
14911e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai};
14921e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
14931e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct bfin5xx_spi_master bfin_sport_spi1_info = {
14941e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.num_chipselect = 1, /* master only supports one device */
14951e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.enable_dma = 0,  /* master don't support DMA */
14961e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.pin_req = {P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_DRPRI,
14971e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		P_SPORT1_RSCLK, P_SPORT1_TFS, P_SPORT1_RFS, 0},
14981e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai};
14991e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
15001e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct resource bfin_sport_spi1_resource[] = {
15011e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	[0] = {
15021e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.start = SPORT1_TCR1,
15031e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.end   = SPORT1_TCR1 + 0xFF,
15041e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.flags = IORESOURCE_MEM,
15051e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		},
15061e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	[1] = {
15071e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.start = IRQ_SPORT1_ERROR,
15081e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.end   = IRQ_SPORT1_ERROR,
15091e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.flags = IORESOURCE_IRQ,
15101e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		},
15111e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai};
15121e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
15131e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct platform_device bfin_sport_spi1_device = {
15141e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.name = "bfin-sport-spi",
15151e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.id = 2, /* Bus number */
15161e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.num_resources = ARRAY_SIZE(bfin_sport_spi1_resource),
15171e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.resource = bfin_sport_spi1_resource,
15181e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.dev = {
15191e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.platform_data = &bfin_sport_spi1_info, /* Passed to driver */
15201e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	},
15211e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai};
15221e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
15231e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai#endif  /* sport spi master and devices */
15241e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
15251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_FB_BF537_LQ035) || defined(CONFIG_FB_BF537_LQ035_MODULE)
15261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_fb_device = {
1527c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.name = "bf537-lq035",
1528c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu};
1529c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif
1530c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
15312043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
15322043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#include <asm/bfin-lq035q1.h>
15332043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich
15342043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerichstatic struct bfin_lq035q1fb_disp_info bfin_lq035q1_data = {
1535d94a1aa44ed6bfe8d8ab36c02de652d4fcf0d2c3Michael Hennerich	.mode = LQ035_NORM | LQ035_RGB | LQ035_RL | LQ035_TB,
1536d94a1aa44ed6bfe8d8ab36c02de652d4fcf0d2c3Michael Hennerich	.ppi_mode = USE_RGB565_16_BIT_PPI,
1537d94a1aa44ed6bfe8d8ab36c02de652d4fcf0d2c3Michael Hennerich	.use_bl = 0,	/* let something else control the LCD Blacklight */
1538d94a1aa44ed6bfe8d8ab36c02de652d4fcf0d2c3Michael Hennerich	.gpio_bl = GPIO_PF7,
15392043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich};
15402043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich
15412043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerichstatic struct resource bfin_lq035q1_resources[] = {
15422043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	{
15432043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.start = IRQ_PPI_ERROR,
15442043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.end = IRQ_PPI_ERROR,
15452043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.flags = IORESOURCE_IRQ,
15462043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	},
15472043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich};
15482043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich
15492043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerichstatic struct platform_device bfin_lq035q1_device = {
15502043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	.name		= "bfin-lq035q1",
15512043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	.id		= -1,
1552d94a1aa44ed6bfe8d8ab36c02de652d4fcf0d2c3Michael Hennerich	.num_resources	= ARRAY_SIZE(bfin_lq035q1_resources),
1553d94a1aa44ed6bfe8d8ab36c02de652d4fcf0d2c3Michael Hennerich	.resource	= bfin_lq035q1_resources,
15542043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	.dev		= {
15552043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.platform_data = &bfin_lq035q1_data,
15562043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	},
15572043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich};
15582043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#endif
15592043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich
15601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
1561233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART0
15626bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhangstatic struct resource bfin_uart0_resources[] = {
15631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
15646bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = UART0_THR,
15656bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = UART0_GCTL+2,
15661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
1567233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang	},
15686bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
15696bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = IRQ_UART0_RX,
15706bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = IRQ_UART0_RX+1,
15716bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_IRQ,
15726bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
15736bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
15746bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = IRQ_UART0_ERROR,
15756bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = IRQ_UART0_ERROR,
15766bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_IRQ,
15776bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
15786bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
15796bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = CH_UART0_TX,
15806bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = CH_UART0_TX,
15816bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_DMA,
15826bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
15836bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
15846bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = CH_UART0_RX,
15856bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = CH_UART0_RX,
15866bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_DMA,
15876bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
15886bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#ifdef CONFIG_BFIN_UART0_CTSRTS
15896bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{	/* CTS pin */
15906bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = GPIO_PG7,
15916bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = GPIO_PG7,
15926bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_IO,
15936bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
15946bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{	/* RTS pin */
15956bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = GPIO_PG6,
15966bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = GPIO_PG6,
15976bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_IO,
15986bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
15996bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#endif
16006bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang};
16016bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang
1602a8b19886097032df38bd521cece4bc538fee2266Mike Frysingerstatic unsigned short bfin_uart0_peripherals[] = {
16036bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	P_UART0_TX, P_UART0_RX, 0
16046bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang};
16056bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang
16066bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhangstatic struct platform_device bfin_uart0_device = {
16076bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.name = "bfin-uart",
16086bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.id = 0,
16096bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.num_resources = ARRAY_SIZE(bfin_uart0_resources),
16106bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.resource = bfin_uart0_resources,
16116bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.dev = {
16126bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.platform_data = &bfin_uart0_peripherals, /* Passed to driver */
16136bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
16146bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang};
1615233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang#endif
1616233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART1
16176bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhangstatic struct resource bfin_uart1_resources[] = {
1618233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang	{
16196bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = UART1_THR,
16206bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = UART1_GCTL+2,
16211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
16221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
16236bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
16246bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = IRQ_UART1_RX,
16256bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = IRQ_UART1_RX+1,
16266bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_IRQ,
16276bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
16286bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
16296bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = IRQ_UART1_ERROR,
16306bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = IRQ_UART1_ERROR,
16316bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_IRQ,
16326bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
16336bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
16346bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = CH_UART1_TX,
16356bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = CH_UART1_TX,
16366bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_DMA,
16376bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
16386bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
16396bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = CH_UART1_RX,
16406bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = CH_UART1_RX,
16416bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_DMA,
16426bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
16436bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang};
16446bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang
1645a8b19886097032df38bd521cece4bc538fee2266Mike Frysingerstatic unsigned short bfin_uart1_peripherals[] = {
16466bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	P_UART1_TX, P_UART1_RX, 0
16471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
16481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
16496bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhangstatic struct platform_device bfin_uart1_device = {
16501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "bfin-uart",
16511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = 1,
16526bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.num_resources = ARRAY_SIZE(bfin_uart1_resources),
16536bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.resource = bfin_uart1_resources,
16546bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.dev = {
16556bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.platform_data = &bfin_uart1_peripherals, /* Passed to driver */
16566bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
16571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
16581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
16596bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#endif
16601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
16615be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
16625be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#ifdef CONFIG_BFIN_SIR0
166342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct resource bfin_sir0_resources[] = {
16645be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang	{
16655be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang		.start = 0xFFC00400,
16665be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang		.end = 0xFFC004FF,
16675be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang		.flags = IORESOURCE_MEM,
16685be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang	},
166942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	{
167042bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.start = IRQ_UART0_RX,
167142bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.end = IRQ_UART0_RX+1,
167242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.flags = IORESOURCE_IRQ,
167342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	},
167442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	{
167542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.start = CH_UART0_RX,
167642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.end = CH_UART0_RX+1,
167742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.flags = IORESOURCE_DMA,
167842bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	},
167942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang};
168042bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang
168142bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct platform_device bfin_sir0_device = {
168242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.name = "bfin_sir",
168342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.id = 0,
168442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.num_resources = ARRAY_SIZE(bfin_sir0_resources),
168542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.resource = bfin_sir0_resources,
168642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang};
16875be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#endif
16885be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#ifdef CONFIG_BFIN_SIR1
168942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct resource bfin_sir1_resources[] = {
16905be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang	{
16915be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang		.start = 0xFFC02000,
16925be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang		.end = 0xFFC020FF,
16935be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang		.flags = IORESOURCE_MEM,
16945be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang	},
169542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	{
169642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.start = IRQ_UART1_RX,
169742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.end = IRQ_UART1_RX+1,
169842bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.flags = IORESOURCE_IRQ,
169942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	},
170042bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	{
170142bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.start = CH_UART1_RX,
170242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.end = CH_UART1_RX+1,
170342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.flags = IORESOURCE_DMA,
170442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	},
17055be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang};
17065be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang
170742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct platform_device bfin_sir1_device = {
17085be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang	.name = "bfin_sir",
170942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.id = 1,
171042bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.num_resources = ARRAY_SIZE(bfin_sir1_resources),
171142bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.resource = bfin_sir1_resources,
17125be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang};
17135be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#endif
171442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#endif
17155be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang
17161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
1717c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct resource bfin_twi0_resource[] = {
1718c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	[0] = {
1719c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = TWI0_REGBASE,
1720c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end   = TWI0_REGBASE,
1721c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_MEM,
1722c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	},
1723c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	[1] = {
1724c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = IRQ_TWI,
1725c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end   = IRQ_TWI,
1726c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_IRQ,
1727c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	},
1728c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu};
1729c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
17301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device i2c_bfin_twi_device = {
17311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "i2c-bfin-twi",
17321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = 0,
1733c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.num_resources = ARRAY_SIZE(bfin_twi0_resource),
1734c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.resource = bfin_twi0_resource,
17351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
17361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
17371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
173851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich#if defined(CONFIG_KEYBOARD_ADP5588) || defined(CONFIG_KEYBOARD_ADP5588_MODULE)
173951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerichstatic const unsigned short adp5588_keymap[ADP5588_KEYMAPSIZE] = {
174051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[0]	 = KEY_GRAVE,
174151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[1]	 = KEY_1,
174251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[2]	 = KEY_2,
174351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[3]	 = KEY_3,
174451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[4]	 = KEY_4,
174551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[5]	 = KEY_5,
174651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[6]	 = KEY_6,
174751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[7]	 = KEY_7,
174851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[8]	 = KEY_8,
174951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[9]	 = KEY_9,
175051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[10]	 = KEY_0,
175151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[11]	 = KEY_MINUS,
175251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[12]	 = KEY_EQUAL,
175351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[13]	 = KEY_BACKSLASH,
175451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[15]	 = KEY_KP0,
175551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[16]	 = KEY_Q,
175651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[17]	 = KEY_W,
175751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[18]	 = KEY_E,
175851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[19]	 = KEY_R,
175951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[20]	 = KEY_T,
176051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[21]	 = KEY_Y,
176151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[22]	 = KEY_U,
176251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[23]	 = KEY_I,
176351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[24]	 = KEY_O,
176451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[25]	 = KEY_P,
176551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[26]	 = KEY_LEFTBRACE,
176651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[27]	 = KEY_RIGHTBRACE,
176751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[29]	 = KEY_KP1,
176851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[30]	 = KEY_KP2,
176951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[31]	 = KEY_KP3,
177051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[32]	 = KEY_A,
177151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[33]	 = KEY_S,
177251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[34]	 = KEY_D,
177351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[35]	 = KEY_F,
177451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[36]	 = KEY_G,
177551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[37]	 = KEY_H,
177651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[38]	 = KEY_J,
177751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[39]	 = KEY_K,
177851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[40]	 = KEY_L,
177951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[41]	 = KEY_SEMICOLON,
178051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[42]	 = KEY_APOSTROPHE,
178151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[43]	 = KEY_BACKSLASH,
178251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[45]	 = KEY_KP4,
178351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[46]	 = KEY_KP5,
178451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[47]	 = KEY_KP6,
178551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[48]	 = KEY_102ND,
178651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[49]	 = KEY_Z,
178751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[50]	 = KEY_X,
178851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[51]	 = KEY_C,
178951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[52]	 = KEY_V,
179051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[53]	 = KEY_B,
179151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[54]	 = KEY_N,
179251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[55]	 = KEY_M,
179351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[56]	 = KEY_COMMA,
179451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[57]	 = KEY_DOT,
179551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[58]	 = KEY_SLASH,
179651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[60]	 = KEY_KPDOT,
179751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[61]	 = KEY_KP7,
179851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[62]	 = KEY_KP8,
179951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[63]	 = KEY_KP9,
180051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[64]	 = KEY_SPACE,
180151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[65]	 = KEY_BACKSPACE,
180251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[66]	 = KEY_TAB,
180351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[67]	 = KEY_KPENTER,
180451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[68]	 = KEY_ENTER,
180551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[69]	 = KEY_ESC,
180651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[70]	 = KEY_DELETE,
180751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[74]	 = KEY_KPMINUS,
180851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[76]	 = KEY_UP,
180951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[77]	 = KEY_DOWN,
181051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[78]	 = KEY_RIGHT,
181151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[79]	 = KEY_LEFT,
181251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich};
181351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich
181451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerichstatic struct adp5588_kpad_platform_data adp5588_kpad_data = {
181551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	.rows		= 8,
181651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	.cols		= 10,
181751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	.keymap		= adp5588_keymap,
181851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	.keymapsize	= ARRAY_SIZE(adp5588_keymap),
181951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	.repeat		= 0,
182051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich};
182151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich#endif
182251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich
18233ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#if defined(CONFIG_PMIC_ADP5520) || defined(CONFIG_PMIC_ADP5520_MODULE)
18243ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#include <linux/mfd/adp5520.h>
18253ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
18263ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	/*
18273ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 *  ADP5520/5501 Backlight Data
18283ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 */
18293ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
18301d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerichstatic struct adp5520_backlight_platform_data adp5520_backlight_data = {
18311d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.fade_in		= ADP5520_FADE_T_1200ms,
18321d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.fade_out		= ADP5520_FADE_T_1200ms,
18331d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.fade_led_law		= ADP5520_BL_LAW_LINEAR,
18341d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.en_ambl_sens		= 1,
18351d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.abml_filt		= ADP5520_BL_AMBL_FILT_640ms,
18361d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l1_daylight_max	= ADP5520_BL_CUR_mA(15),
18371d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l1_daylight_dim	= ADP5520_BL_CUR_mA(0),
18381d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l2_office_max		= ADP5520_BL_CUR_mA(7),
18391d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l2_office_dim		= ADP5520_BL_CUR_mA(0),
18401d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l3_dark_max		= ADP5520_BL_CUR_mA(3),
18411d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l3_dark_dim		= ADP5520_BL_CUR_mA(0),
18421d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l2_trip		= ADP5520_L2_COMP_CURR_uA(700),
18431d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l2_hyst		= ADP5520_L2_COMP_CURR_uA(50),
18441d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l3_trip		= ADP5520_L3_COMP_CURR_uA(80),
18451d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l3_hyst		= ADP5520_L3_COMP_CURR_uA(20),
18463ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich};
18473ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
18483ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	/*
18493ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 *  ADP5520/5501 LEDs Data
18503ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 */
18513ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
18523ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerichstatic struct led_info adp5520_leds[] = {
18533ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	{
18543ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.name = "adp5520-led1",
18553ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.default_trigger = "none",
18561d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich		.flags = FLAG_ID_ADP5520_LED1_ADP5501_LED0 | ADP5520_LED_OFFT_600ms,
18573ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	},
18583ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#ifdef ADP5520_EN_ALL_LEDS
18593ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	{
18603ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.name = "adp5520-led2",
18613ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.default_trigger = "none",
18623ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.flags = FLAG_ID_ADP5520_LED2_ADP5501_LED1,
18633ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	},
18643ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	{
18653ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.name = "adp5520-led3",
18663ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.default_trigger = "none",
18673ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.flags = FLAG_ID_ADP5520_LED3_ADP5501_LED2,
18683ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	},
18693ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#endif
18703ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich};
18713ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
18721d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerichstatic struct adp5520_leds_platform_data adp5520_leds_data = {
18733ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	.num_leds = ARRAY_SIZE(adp5520_leds),
18743ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	.leds = adp5520_leds,
18751d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.fade_in = ADP5520_FADE_T_600ms,
18761d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.fade_out = ADP5520_FADE_T_600ms,
18771d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.led_on_time = ADP5520_LED_ONT_600ms,
18783ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich};
18793ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
18803ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	/*
18813ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 *  ADP5520 GPIO Data
18823ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 */
18833ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
18841d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerichstatic struct adp5520_gpio_platform_data adp5520_gpio_data = {
18853ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	.gpio_start = 50,
18861d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.gpio_en_mask = ADP5520_GPIO_C1 | ADP5520_GPIO_C2 | ADP5520_GPIO_R2,
18871d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.gpio_pullup_mask = ADP5520_GPIO_C1 | ADP5520_GPIO_C2 | ADP5520_GPIO_R2,
18883ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich};
18893ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
18903ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	/*
18913ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 *  ADP5520 Keypad Data
18923ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 */
18933ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
18943ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerichstatic const unsigned short adp5520_keymap[ADP5520_KEYMAPSIZE] = {
18951d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(0, 0)]	= KEY_GRAVE,
18961d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(0, 1)]	= KEY_1,
18971d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(0, 2)]	= KEY_2,
18981d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(0, 3)]	= KEY_3,
18991d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(1, 0)]	= KEY_4,
19001d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(1, 1)]	= KEY_5,
19011d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(1, 2)]	= KEY_6,
19021d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(1, 3)]	= KEY_7,
19031d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(2, 0)]	= KEY_8,
19041d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(2, 1)]	= KEY_9,
19051d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(2, 2)]	= KEY_0,
19061d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(2, 3)]	= KEY_MINUS,
19071d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(3, 0)]	= KEY_EQUAL,
19081d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(3, 1)]	= KEY_BACKSLASH,
19091d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(3, 2)]	= KEY_BACKSPACE,
19101d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(3, 3)]	= KEY_ENTER,
19111d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich};
19121d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich
19131d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerichstatic struct adp5520_keys_platform_data adp5520_keys_data = {
19141d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.rows_en_mask	= ADP5520_ROW_R3 | ADP5520_ROW_R2 | ADP5520_ROW_R1 | ADP5520_ROW_R0,
19151d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.cols_en_mask	= ADP5520_COL_C3 | ADP5520_COL_C2 | ADP5520_COL_C1 | ADP5520_COL_C0,
19163ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	.keymap		= adp5520_keymap,
19173ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	.keymapsize	= ARRAY_SIZE(adp5520_keymap),
19183ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	.repeat		= 0,
19193ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich};
19203ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
19213ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	/*
1922eef35c2d41ddcc653c20d26b977acaa45c811e1fStefan Weil	 *  ADP5520/5501 Multifunction Device Init Data
19233ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 */
19243ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
19253ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerichstatic struct adp5520_platform_data adp5520_pdev_data = {
19261d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.backlight = &adp5520_backlight_data,
19271d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.leds = &adp5520_leds_data,
19281d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.gpio = &adp5520_gpio_data,
19291d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.keys = &adp5520_keys_data,
19303ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich};
19313ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
19323ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#endif
19333ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
1934ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich#if defined(CONFIG_GPIO_ADP5588) || defined(CONFIG_GPIO_ADP5588_MODULE)
19351d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerichstatic struct adp5588_gpio_platform_data adp5588_gpio_data = {
1936ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich	.gpio_start = 50,
1937ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich	.pullup_dis_mask = 0,
1938ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich};
1939ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich#endif
1940ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich
194178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#if defined(CONFIG_BACKLIGHT_ADP8870) || defined(CONFIG_BACKLIGHT_ADP8870_MODULE)
194278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#include <linux/i2c/adp8870.h>
194378756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerichstatic struct led_info adp8870_leds[] = {
194478756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	{
194578756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich		.name = "adp8870-led7",
194678756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich		.default_trigger = "none",
194778756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich		.flags = ADP8870_LED_D7 | ADP8870_LED_OFFT_600ms,
194878756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	},
194978756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich};
195078756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
195178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
195278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerichstatic struct adp8870_backlight_platform_data adp8870_pdata = {
195378756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.bl_led_assign = ADP8870_BL_D1 | ADP8870_BL_D2 | ADP8870_BL_D3 |
195478756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich			 ADP8870_BL_D4 | ADP8870_BL_D5 | ADP8870_BL_D6,	/* 1 = Backlight 0 = Individual LED */
195578756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.pwm_assign = 0,				/* 1 = Enables PWM mode */
195678756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
195778756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.bl_fade_in = ADP8870_FADE_T_1200ms,		/* Backlight Fade-In Timer */
195878756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.bl_fade_out = ADP8870_FADE_T_1200ms,		/* Backlight Fade-Out Timer */
195978756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.bl_fade_law = ADP8870_FADE_LAW_CUBIC1,		/* fade-on/fade-off transfer characteristic */
196078756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
196178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.en_ambl_sens = 1,				/* 1 = enable ambient light sensor */
196278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.abml_filt = ADP8870_BL_AMBL_FILT_320ms,	/* Light sensor filter time */
196378756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
196478756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l1_daylight_max = ADP8870_BL_CUR_mA(20),	/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
196578756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l1_daylight_dim = ADP8870_BL_CUR_mA(0),	/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
196678756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l2_bright_max = ADP8870_BL_CUR_mA(14),		/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
196778756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l2_bright_dim = ADP8870_BL_CUR_mA(0),		/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
196878756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l3_office_max = ADP8870_BL_CUR_mA(6),		/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
196978756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l3_office_dim = ADP8870_BL_CUR_mA(0),		/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
197078756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l4_indoor_max = ADP8870_BL_CUR_mA(3),		/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
197178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l4_indor_dim = ADP8870_BL_CUR_mA(0),		/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
197278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l5_dark_max = ADP8870_BL_CUR_mA(2),		/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
197378756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l5_dark_dim = ADP8870_BL_CUR_mA(0),		/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
197478756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
197578756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l2_trip = ADP8870_L2_COMP_CURR_uA(710),	/* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
197678756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l2_hyst = ADP8870_L2_COMP_CURR_uA(73),		/* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
197778756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l3_trip = ADP8870_L3_COMP_CURR_uA(389),	/* use L3_COMP_CURR_uA(I) 0 <= I <= 551 uA */
197878756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l3_hyst = ADP8870_L3_COMP_CURR_uA(54),		/* use L3_COMP_CURR_uA(I) 0 <= I <= 551 uA */
197978756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l4_trip = ADP8870_L4_COMP_CURR_uA(167),	/* use L4_COMP_CURR_uA(I) 0 <= I <= 275 uA */
198078756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l4_hyst = ADP8870_L4_COMP_CURR_uA(16),		/* use L4_COMP_CURR_uA(I) 0 <= I <= 275 uA */
198178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l5_trip = ADP8870_L5_COMP_CURR_uA(43),		/* use L5_COMP_CURR_uA(I) 0 <= I <= 138 uA */
198278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l5_hyst = ADP8870_L5_COMP_CURR_uA(11),		/* use L6_COMP_CURR_uA(I) 0 <= I <= 138 uA */
198378756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
198478756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.leds = adp8870_leds,
198578756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.num_leds = ARRAY_SIZE(adp8870_leds),
198678756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.led_fade_law = ADP8870_FADE_LAW_SQUARE,	/* fade-on/fade-off transfer characteristic */
198778756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.led_fade_in = ADP8870_FADE_T_600ms,
198878756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.led_fade_out = ADP8870_FADE_T_600ms,
198978756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.led_on_time = ADP8870_LED_ONT_200ms,
199078756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich};
199178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#endif
199278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
199372fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich#if defined(CONFIG_BACKLIGHT_ADP8860) || defined(CONFIG_BACKLIGHT_ADP8860_MODULE)
199472fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich#include <linux/i2c/adp8860.h>
199572fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerichstatic struct led_info adp8860_leds[] = {
199672fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	{
199772fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich		.name = "adp8860-led7",
199872fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich		.default_trigger = "none",
199972fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich		.flags = ADP8860_LED_D7 | ADP8860_LED_OFFT_600ms,
200072fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	},
200172fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich};
200272fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
200372fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerichstatic struct adp8860_backlight_platform_data adp8860_pdata = {
200472fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.bl_led_assign = ADP8860_BL_D1 | ADP8860_BL_D2 | ADP8860_BL_D3 |
200572fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich			 ADP8860_BL_D4 | ADP8860_BL_D5 | ADP8860_BL_D6,	/* 1 = Backlight 0 = Individual LED */
200672fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
200772fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.bl_fade_in = ADP8860_FADE_T_1200ms,		/* Backlight Fade-In Timer */
200872fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.bl_fade_out = ADP8860_FADE_T_1200ms,		/* Backlight Fade-Out Timer */
200972fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.bl_fade_law = ADP8860_FADE_LAW_CUBIC1,		/* fade-on/fade-off transfer characteristic */
201072fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
201172fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.en_ambl_sens = 1,				/* 1 = enable ambient light sensor */
201272fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.abml_filt = ADP8860_BL_AMBL_FILT_320ms,	/* Light sensor filter time */
201372fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
201472fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l1_daylight_max = ADP8860_BL_CUR_mA(20),	/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
201572fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l1_daylight_dim = ADP8860_BL_CUR_mA(0),	/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
201672fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l2_office_max = ADP8860_BL_CUR_mA(6),		/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
201772fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l2_office_dim = ADP8860_BL_CUR_mA(0),		/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
201872fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l3_dark_max = ADP8860_BL_CUR_mA(2),		/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
201972fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l3_dark_dim = ADP8860_BL_CUR_mA(0),		/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
202072fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
202172fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l2_trip = ADP8860_L2_COMP_CURR_uA(710),	/* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
202272fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l2_hyst = ADP8860_L2_COMP_CURR_uA(73),		/* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
202372fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l3_trip = ADP8860_L3_COMP_CURR_uA(43),		/* use L3_COMP_CURR_uA(I) 0 <= I <= 138 uA */
202472fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l3_hyst = ADP8860_L3_COMP_CURR_uA(11),		/* use L3_COMP_CURR_uA(I) 0 <= I <= 138 uA */
202572fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
202672fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.leds = adp8860_leds,
202772fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.num_leds = ARRAY_SIZE(adp8860_leds),
202872fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.led_fade_law = ADP8860_FADE_LAW_SQUARE,	/* fade-on/fade-off transfer characteristic */
202972fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.led_fade_in = ADP8860_FADE_T_600ms,
203072fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.led_fade_out = ADP8860_FADE_T_600ms,
203172fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.led_on_time = ADP8860_LED_ONT_200ms,
203272fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich};
203372fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich#endif
203472fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
2035f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_AD5398) || defined(CONFIG_REGULATOR_AD5398_MODULE)
2036f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhangstatic struct regulator_consumer_supply ad5398_consumer = {
2037f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.supply = "current",
2038f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang};
2039f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang
2040f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhangstatic struct regulator_init_data ad5398_regulator_data = {
2041f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.constraints = {
2042f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang		.name = "current range",
2043f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang		.max_uA = 120000,
2044f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang		.valid_ops_mask = REGULATOR_CHANGE_CURRENT | REGULATOR_CHANGE_STATUS,
2045f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	},
2046f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.num_consumer_supplies = 1,
2047f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.consumer_supplies     = &ad5398_consumer,
2048f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang};
2049f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang
2050f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_VIRTUAL_CONSUMER) || \
2051f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	defined(CONFIG_REGULATOR_VIRTUAL_CONSUMER_MODULE)
2052f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhangstatic struct platform_device ad5398_virt_consumer_device = {
2053f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.name = "reg-virt-consumer",
2054f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.id = 0,
2055f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.dev = {
2056f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang		.platform_data = "current", /* Passed to driver */
2057f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	},
2058f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang};
2059f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
2060f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_USERSPACE_CONSUMER) || \
2061f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	defined(CONFIG_REGULATOR_USERSPACE_CONSUMER_MODULE)
2062f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhangstatic struct regulator_bulk_data ad5398_bulk_data = {
2063f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.supply = "current",
2064f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang};
2065f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang
2066f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhangstatic struct regulator_userspace_consumer_data ad5398_userspace_comsumer_data = {
2067f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.name = "ad5398",
2068f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.num_supplies = 1,
2069f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.supplies = &ad5398_bulk_data,
2070f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang};
2071f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang
2072f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhangstatic struct platform_device ad5398_userspace_consumer_device = {
2073f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.name = "reg-userspace-consumer",
2074f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.id = 0,
2075f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.dev = {
2076f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang		.platform_data = &ad5398_userspace_comsumer_data,
2077f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	},
2078f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang};
2079f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
2080f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
2081f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang
20820891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADT7410) || defined(CONFIG_ADT7410_MODULE)
20830891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich/* INT bound temperature alarm event. line 1 */
20840891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic unsigned long adt7410_platform_data[2] = {
20850891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	IRQ_PG4, IRQF_TRIGGER_LOW,
20860891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
20870891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
20880891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
20890891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADT7316_I2C) || defined(CONFIG_ADT7316_I2C_MODULE)
20900891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich/* INT bound temperature alarm event. line 1 */
20910891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic unsigned long adt7316_i2c_data[2] = {
20920891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	IRQF_TRIGGER_LOW, /* interrupt flags */
20930891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	GPIO_PF4, /* ldac_pin, 0 means DAC/LDAC registers control DAC update */
20940891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
20950891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
20960891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
209781d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wustatic struct i2c_board_info __initdata bfin_i2c_board_info[] = {
209892b20f7fb28e541d7f8efb4e3e8d81733aa8adfcBarry Song#if defined(CONFIG_SND_BF5XX_SOC_AD193X) || defined(CONFIG_SND_BF5XX_SOC_AD193X_MODULE)
209992b20f7fb28e541d7f8efb4e3e8d81733aa8adfcBarry Song	{
210092b20f7fb28e541d7f8efb4e3e8d81733aa8adfcBarry Song		I2C_BOARD_INFO("ad1937", 0x04),
210192b20f7fb28e541d7f8efb4e3e8d81733aa8adfcBarry Song	},
210292b20f7fb28e541d7f8efb4e3e8d81733aa8adfcBarry Song#endif
210392b20f7fb28e541d7f8efb4e3e8d81733aa8adfcBarry Song
2104080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen#if defined(CONFIG_SND_SOC_ADAV80X) || defined(CONFIG_SND_SOC_ADAV80X_MODULE)
2105a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li	{
2106a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li		I2C_BOARD_INFO("adav803", 0x10),
2107a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li	},
2108a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li#endif
2109a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li
21105b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger#if defined(CONFIG_INPUT_AD714X_I2C) || defined(CONFIG_INPUT_AD714X_I2C_MODULE)
211181d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu	{
2112427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		I2C_BOARD_INFO("ad7142_captouch", 0x2C),
21134c94c3e09adba9718218d6e3d35b2dfae81f3911Barry Song		.irq = IRQ_PG5,
21145b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger		.platform_data = (void *)&ad7142_i2c_platform_data,
211581d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu	},
211681d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu#endif
2117ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song
2118ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song#if defined(CONFIG_AD7150) || defined(CONFIG_AD7150_MODULE)
2119ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song	{
2120ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song		I2C_BOARD_INFO("ad7150", 0x48),
2121ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song		.irq = IRQ_PG5, /* fixme: use real interrupt number */
2122ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song	},
2123ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song#endif
2124ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song
2125ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song#if defined(CONFIG_AD7152) || defined(CONFIG_AD7152_MODULE)
2126ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song	{
2127ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song		I2C_BOARD_INFO("ad7152", 0x48),
2128ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song	},
2129ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song#endif
2130ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song
2131ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song#if defined(CONFIG_AD774X) || defined(CONFIG_AD774X_MODULE)
2132ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song	{
2133ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song		I2C_BOARD_INFO("ad774x", 0x48),
2134ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song	},
2135ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song#endif
2136ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song
21370891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADE7854_I2C) || defined(CONFIG_ADE7854_I2C_MODULE)
21380891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
21390891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		I2C_BOARD_INFO("ade7854", 0x38),
21400891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
21410891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
21420891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
21430891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADT75) || defined(CONFIG_ADT75_MODULE)
21440891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
21450891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		I2C_BOARD_INFO("adt75", 0x9),
21460891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PG5,
21470891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
21480891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
21490891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
21500891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADT7410) || defined(CONFIG_ADT7410_MODULE)
21510891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
21520891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		I2C_BOARD_INFO("adt7410", 0x48),
21530891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		/* CT critical temperature event. line 0 */
21540891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PG5,
21550891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = (void *)&adt7410_platform_data,
21560891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
21570891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
21580891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
21590891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_AD7291) || defined(CONFIG_AD7291_MODULE)
21600891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
21610891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		I2C_BOARD_INFO("ad7291", 0x20),
21620891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PG5,
21630891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
21640891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
21650891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
21660891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADT7316_I2C) || defined(CONFIG_ADT7316_I2C_MODULE)
21670891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
21680891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		I2C_BOARD_INFO("adt7316", 0x48),
21690891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PG6,
21700891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = (void *)&adt7316_i2c_data,
2171ef8873e06efdc023ee2e7f708787c79b78df3fcdSonic Zhang	},
2172ef8873e06efdc023ee2e7f708787c79b78df3fcdSonic Zhang#endif
2173ef8873e06efdc023ee2e7f708787c79b78df3fcdSonic Zhang
2174ebd5833327e3fb46eb55553d8f5432b5226bf897Michael Hennerich#if defined(CONFIG_BFIN_TWI_LCD) || defined(CONFIG_BFIN_TWI_LCD_MODULE)
217581d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu	{
217681d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu		I2C_BOARD_INFO("pcf8574_lcd", 0x22),
217781d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu	},
217881d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu#endif
2179204844ebd08cfb0c83689e55d6633dcd0230d36dMichael Hennerich#if defined(CONFIG_INPUT_PCF8574) || defined(CONFIG_INPUT_PCF8574_MODULE)
218081d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu	{
218181d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu		I2C_BOARD_INFO("pcf8574_keypad", 0x27),
2182f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich		.irq = IRQ_PG6,
2183f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich	},
2184f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich#endif
2185f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_AD7879_I2C) || defined(CONFIG_TOUCHSCREEN_AD7879_I2C_MODULE)
2186f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich	{
2187f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich		I2C_BOARD_INFO("ad7879", 0x2F),
2188f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich		.irq = IRQ_PG5,
2189f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich		.platform_data = (void *)&bfin_ad7879_ts_info,
219081d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu	},
219181d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu#endif
219251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich#if defined(CONFIG_KEYBOARD_ADP5588) || defined(CONFIG_KEYBOARD_ADP5588_MODULE)
219351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	{
219451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich		I2C_BOARD_INFO("adp5588-keys", 0x34),
219551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich		.irq = IRQ_PG0,
219651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich		.platform_data = (void *)&adp5588_kpad_data,
219751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	},
219851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich#endif
21993ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#if defined(CONFIG_PMIC_ADP5520) || defined(CONFIG_PMIC_ADP5520_MODULE)
22003ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	{
22013ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		I2C_BOARD_INFO("pmic-adp5520", 0x32),
22024f84b6e0bb9a7d92c791ba3607674c98f69418cbMike Frysinger		.irq = IRQ_PG0,
22033ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.platform_data = (void *)&adp5520_pdev_data,
22043ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	},
22053ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#endif
2206ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich#if defined(CONFIG_INPUT_ADXL34X_I2C) || defined(CONFIG_INPUT_ADXL34X_I2C_MODULE)
2207ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	{
2208ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich		I2C_BOARD_INFO("adxl34x", 0x53),
2209ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich		.irq = IRQ_PG3,
2210ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich		.platform_data = (void *)&adxl34x_info,
2211ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	},
2212ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich#endif
2213ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich#if defined(CONFIG_GPIO_ADP5588) || defined(CONFIG_GPIO_ADP5588_MODULE)
2214ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich	{
2215ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich		I2C_BOARD_INFO("adp5588-gpio", 0x34),
2216ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich		.platform_data = (void *)&adp5588_gpio_data,
2217ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich	},
2218ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich#endif
221950c4c0861a0a60cd4f414457fdbfc8d9a1eb1e31Michael Hennerich#if defined(CONFIG_FB_BFIN_7393) || defined(CONFIG_FB_BFIN_7393_MODULE)
222050c4c0861a0a60cd4f414457fdbfc8d9a1eb1e31Michael Hennerich	{
222150c4c0861a0a60cd4f414457fdbfc8d9a1eb1e31Michael Hennerich		I2C_BOARD_INFO("bfin-adv7393", 0x2B),
222250c4c0861a0a60cd4f414457fdbfc8d9a1eb1e31Michael Hennerich	},
222350c4c0861a0a60cd4f414457fdbfc8d9a1eb1e31Michael Hennerich#endif
2224ddcd7cb857cdf2a29c30125f71cb5d4d6744c99bMichael Hennerich#if defined(CONFIG_FB_BF537_LQ035) || defined(CONFIG_FB_BF537_LQ035_MODULE)
2225ddcd7cb857cdf2a29c30125f71cb5d4d6744c99bMichael Hennerich	{
2226948ca1a788e948379c7164e2cc08797929f17258Sonic Zhang		I2C_BOARD_INFO("bf537-lq035-ad5280", 0x2F),
2227ddcd7cb857cdf2a29c30125f71cb5d4d6744c99bMichael Hennerich	},
2228ddcd7cb857cdf2a29c30125f71cb5d4d6744c99bMichael Hennerich#endif
222978756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#if defined(CONFIG_BACKLIGHT_ADP8870) || defined(CONFIG_BACKLIGHT_ADP8870_MODULE)
223078756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	{
223178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich		I2C_BOARD_INFO("adp8870", 0x2B),
223278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich		.platform_data = (void *)&adp8870_pdata,
223378756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	},
223478756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#endif
2235d53127ffd6e19feb5f045da917207f9e6e2ed331Cliff Cai#if defined(CONFIG_SND_SOC_ADAU1371) || defined(CONFIG_SND_SOC_ADAU1371_MODULE)
2236d53127ffd6e19feb5f045da917207f9e6e2ed331Cliff Cai	{
2237d53127ffd6e19feb5f045da917207f9e6e2ed331Cliff Cai		I2C_BOARD_INFO("adau1371", 0x1A),
2238d53127ffd6e19feb5f045da917207f9e6e2ed331Cliff Cai	},
2239d53127ffd6e19feb5f045da917207f9e6e2ed331Cliff Cai#endif
224004267638e07f4430f902d7a304845634443caf1aCliff Cai#if defined(CONFIG_SND_SOC_ADAU1761) || defined(CONFIG_SND_SOC_ADAU1761_MODULE)
224104267638e07f4430f902d7a304845634443caf1aCliff Cai	{
224204267638e07f4430f902d7a304845634443caf1aCliff Cai		I2C_BOARD_INFO("adau1761", 0x38),
224304267638e07f4430f902d7a304845634443caf1aCliff Cai	},
224404267638e07f4430f902d7a304845634443caf1aCliff Cai#endif
2245c48d767569ec6449277bf4248295b4c165b57159Cliff Cai#if defined(CONFIG_SND_SOC_ADAU1361) || defined(CONFIG_SND_SOC_ADAU1361_MODULE)
2246c48d767569ec6449277bf4248295b4c165b57159Cliff Cai	{
2247c48d767569ec6449277bf4248295b4c165b57159Cliff Cai		I2C_BOARD_INFO("adau1361", 0x38),
2248c48d767569ec6449277bf4248295b4c165b57159Cliff Cai	},
2249c48d767569ec6449277bf4248295b4c165b57159Cliff Cai#endif
22502fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen#if defined(CONFIG_SND_SOC_ADAU1701) || defined(CONFIG_SND_SOC_ADAU1701_MODULE)
22512fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen	{
22522fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen		I2C_BOARD_INFO("adau1701", 0x34),
22532fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen	},
22542fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen#endif
22551f13f2fdca71408ad211936b85e673b72e91911aMichael Hennerich#if defined(CONFIG_AD525X_DPOT) || defined(CONFIG_AD525X_DPOT_MODULE)
22561f13f2fdca71408ad211936b85e673b72e91911aMichael Hennerich	{
22571f13f2fdca71408ad211936b85e673b72e91911aMichael Hennerich		I2C_BOARD_INFO("ad5258", 0x18),
22581f13f2fdca71408ad211936b85e673b72e91911aMichael Hennerich	},
22591f13f2fdca71408ad211936b85e673b72e91911aMichael Hennerich#endif
226029bb3bc0c71d867d50b18a0277bf28cd8dd3fca7Cliff Cai#if defined(CONFIG_SND_SOC_SSM2602) || defined(CONFIG_SND_SOC_SSM2602_MODULE)
226129bb3bc0c71d867d50b18a0277bf28cd8dd3fca7Cliff Cai	{
226229bb3bc0c71d867d50b18a0277bf28cd8dd3fca7Cliff Cai		I2C_BOARD_INFO("ssm2602", 0x1b),
226329bb3bc0c71d867d50b18a0277bf28cd8dd3fca7Cliff Cai	},
226429bb3bc0c71d867d50b18a0277bf28cd8dd3fca7Cliff Cai#endif
2265f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_AD5398) || defined(CONFIG_REGULATOR_AD5398_MODULE)
2266f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	{
2267f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang		I2C_BOARD_INFO("ad5398", 0xC),
226827e9f0b43600c19bb244aed588fbc25ba92d6343Sonic Zhang		.platform_data = (void *)&ad5398_regulator_data,
2269f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	},
2270f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
227172fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich#if defined(CONFIG_BACKLIGHT_ADP8860) || defined(CONFIG_BACKLIGHT_ADP8860_MODULE)
227272fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	{
227372fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich		I2C_BOARD_INFO("adp8860", 0x2A),
227472fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich		.platform_data = (void *)&adp8860_pdata,
227572fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	},
227672fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich#endif
22773cbcb1616c071543525e2ef2fab439848c8bac88Cliff Cai#if defined(CONFIG_SND_SOC_ADAU1373) || defined(CONFIG_SND_SOC_ADAU1373_MODULE)
22783cbcb1616c071543525e2ef2fab439848c8bac88Cliff Cai	{
22793cbcb1616c071543525e2ef2fab439848c8bac88Cliff Cai		I2C_BOARD_INFO("adau1373", 0x1A),
22803cbcb1616c071543525e2ef2fab439848c8bac88Cliff Cai	},
22813cbcb1616c071543525e2ef2fab439848c8bac88Cliff Cai#endif
228239d3c1ca1f9482faa7d216c09553a6b81b955930steven miao#if defined(CONFIG_BFIN_TWI_LCD) || defined(CONFIG_BFIN_TWI_LCD_MODULE)
228339d3c1ca1f9482faa7d216c09553a6b81b955930steven miao	{
228439d3c1ca1f9482faa7d216c09553a6b81b955930steven miao		I2C_BOARD_INFO("ad5252", 0x2e),
228539d3c1ca1f9482faa7d216c09553a6b81b955930steven miao	},
228639d3c1ca1f9482faa7d216c09553a6b81b955930steven miao#endif
228781d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu};
228881d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu
22891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
2290df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
2291df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhangstatic struct resource bfin_sport0_uart_resources[] = {
2292df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	{
2293df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.start = SPORT0_TCR1,
2294df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.end = SPORT0_MRCS3+4,
2295df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.flags = IORESOURCE_MEM,
2296df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
2297df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	{
2298df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.start = IRQ_SPORT0_RX,
2299df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.end = IRQ_SPORT0_RX+1,
2300df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.flags = IORESOURCE_IRQ,
2301df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
2302df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	{
2303df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.start = IRQ_SPORT0_ERROR,
2304df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.end = IRQ_SPORT0_ERROR,
2305df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.flags = IORESOURCE_IRQ,
2306df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
2307df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang};
2308df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang
2309a8b19886097032df38bd521cece4bc538fee2266Mike Frysingerstatic unsigned short bfin_sport0_peripherals[] = {
2310df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS,
2311e54b673081d12c46b47fdfe1772656cb2b43721dSonic Zhang	P_SPORT0_DRPRI, P_SPORT0_RSCLK, 0
2312df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang};
2313df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang
23141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_sport0_uart_device = {
23151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "bfin-sport-uart",
23161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = 0,
2317df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	.num_resources = ARRAY_SIZE(bfin_sport0_uart_resources),
2318df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	.resource = bfin_sport0_uart_resources,
2319df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	.dev = {
2320df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.platform_data = &bfin_sport0_peripherals, /* Passed to driver */
2321df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
2322df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang};
2323df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#endif
2324df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
2325df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhangstatic struct resource bfin_sport1_uart_resources[] = {
2326df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	{
2327df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.start = SPORT1_TCR1,
2328df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.end = SPORT1_MRCS3+4,
2329df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.flags = IORESOURCE_MEM,
2330df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
2331df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	{
2332df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.start = IRQ_SPORT1_RX,
2333df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.end = IRQ_SPORT1_RX+1,
2334df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.flags = IORESOURCE_IRQ,
2335df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
2336df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	{
2337df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.start = IRQ_SPORT1_ERROR,
2338df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.end = IRQ_SPORT1_ERROR,
2339df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.flags = IORESOURCE_IRQ,
2340df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
2341df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang};
2342df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang
2343a8b19886097032df38bd521cece4bc538fee2266Mike Frysingerstatic unsigned short bfin_sport1_peripherals[] = {
2344df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS,
2345e54b673081d12c46b47fdfe1772656cb2b43721dSonic Zhang	P_SPORT1_DRPRI, P_SPORT1_RSCLK, 0
23461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
23471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
23481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_sport1_uart_device = {
23491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "bfin-sport-uart",
23501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = 1,
2351df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	.num_resources = ARRAY_SIZE(bfin_sport1_uart_resources),
2352df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	.resource = bfin_sport1_uart_resources,
2353df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	.dev = {
2354df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.platform_data = &bfin_sport1_peripherals, /* Passed to driver */
2355df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
23561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
23571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
2358df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#endif
23591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
2360c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
23612c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#define CF_IDE_NAND_CARD_USE_HDD_INTERFACE
23622c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich/* #define CF_IDE_NAND_CARD_USE_CF_IN_COMMON_MEMORY_MODE */
2363c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
23642c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#ifdef CF_IDE_NAND_CARD_USE_HDD_INTERFACE
23652c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#define PATA_INT	IRQ_PF5
2366c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct pata_platform_info bfin_pata_platform_data = {
2367c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.ioport_shift = 1,
23687832bb5d450aefa45b6dac3b3140eade66bb12adYong Zhang	.irq_flags = IRQF_TRIGGER_HIGH,
2369c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu};
2370c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
2371c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct resource bfin_pata_resources[] = {
2372c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	{
2373c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = 0x20314020,
2374c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end = 0x2031403F,
2375c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_MEM,
2376c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	},
2377c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	{
2378c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = 0x2031401C,
2379c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end = 0x2031401F,
2380c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_MEM,
2381c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	},
2382c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	{
2383c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = PATA_INT,
2384c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end = PATA_INT,
2385c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_IRQ,
2386c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	},
2387c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu};
23882c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#elif defined(CF_IDE_NAND_CARD_USE_CF_IN_COMMON_MEMORY_MODE)
23892c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerichstatic struct pata_platform_info bfin_pata_platform_data = {
23902c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich	.ioport_shift = 0,
23912c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich};
239225985edcedea6396277003854657b5f3cb31a628Lucas De Marchi/* CompactFlash Storage Card Memory Mapped Addressing
2393648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich * /REG = A11 = 1
2394648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich */
23952c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerichstatic struct resource bfin_pata_resources[] = {
23962c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich	{
2397648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich		.start = 0x20211800,
2398648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich		.end = 0x20211807,
23992c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich		.flags = IORESOURCE_MEM,
24002c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich	},
24012c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich	{
2402648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich		.start = 0x2021180E,	/* Device Ctl */
2403648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich		.end = 0x2021180E,
24042c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich		.flags = IORESOURCE_MEM,
24052c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich	},
24062c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich};
24072c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#endif
2408c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
2409c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct platform_device bfin_pata_device = {
2410c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.name = "pata_platform",
2411c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.id = -1,
2412c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.num_resources = ARRAY_SIZE(bfin_pata_resources),
2413c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.resource = bfin_pata_resources,
2414c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.dev = {
2415c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.platform_data = &bfin_pata_platform_data,
2416c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	}
2417c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu};
2418c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif
2419c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
242014b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerichstatic const unsigned int cclk_vlev_datasheet[] =
242114b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich{
242214b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_085, 250000000),
242314b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_090, 376000000),
242414b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_095, 426000000),
242514b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_100, 426000000),
242614b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_105, 476000000),
242714b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_110, 476000000),
242814b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_115, 476000000),
242914b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_120, 500000000),
243014b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_125, 533000000),
243114b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_130, 600000000),
243214b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich};
243314b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich
243414b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerichstatic struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
243514b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	.tuple_tab = cclk_vlev_datasheet,
243614b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	.tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
243714b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	.vr_settling_time = 25 /* us */,
243814b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich};
243914b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich
244014b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerichstatic struct platform_device bfin_dpmc = {
244114b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	.name = "bfin dpmc",
244214b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	.dev = {
244314b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich		.platform_data = &bfin_dmpc_vreg_data,
244414b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	},
244514b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich};
244614b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich
24476f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE) || \
24486f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE) || \
24496f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE)
24506f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
24516f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#define SPORT_REQ(x) \
24526f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	[x] = {P_SPORT##x##_TFS, P_SPORT##x##_DTPRI, P_SPORT##x##_TSCLK, \
24536f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		P_SPORT##x##_RFS, P_SPORT##x##_DRPRI, P_SPORT##x##_RSCLK, 0}
24546f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
24556f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiangstatic const u16 bfin_snd_pin[][7] = {
24566f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	SPORT_REQ(0),
24576f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	SPORT_REQ(1),
24586f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang};
24596f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
24606f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiangstatic struct bfin_snd_platform_data bfin_snd_data[] = {
24616f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	{
24626f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		.pin_req = &bfin_snd_pin[0][0],
24636f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	},
24646f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	{
24656f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		.pin_req = &bfin_snd_pin[1][0],
24666f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	},
24676f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang};
24686f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
24696f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#define BFIN_SND_RES(x) \
24706f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	[x] = { \
24716f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		{ \
24726f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.start = SPORT##x##_TCR1, \
24736f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.end = SPORT##x##_TCR1, \
24746f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.flags = IORESOURCE_MEM \
24756f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		}, \
24766f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		{ \
24776f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.start = CH_SPORT##x##_RX, \
24786f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.end = CH_SPORT##x##_RX, \
24796f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.flags = IORESOURCE_DMA, \
24806f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		}, \
24816f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		{ \
24826f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.start = CH_SPORT##x##_TX, \
24836f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.end = CH_SPORT##x##_TX, \
24846f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.flags = IORESOURCE_DMA, \
24856f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		}, \
24866f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		{ \
24876f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.start = IRQ_SPORT##x##_ERROR, \
24886f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.end = IRQ_SPORT##x##_ERROR, \
24896f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.flags = IORESOURCE_IRQ, \
24906f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		} \
24916f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	}
24926f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
24936f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiangstatic struct resource bfin_snd_resources[][4] = {
24946f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	BFIN_SND_RES(0),
24956f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	BFIN_SND_RES(1),
24966f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang};
24972b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#endif
24982b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang
24992b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
25002b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiangstatic struct platform_device bfin_i2s_pcm = {
25012b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang	.name = "bfin-i2s-pcm-audio",
25022b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang	.id = -1,
25032b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang};
25042b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#endif
25052b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang
25062b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
25072b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiangstatic struct platform_device bfin_tdm_pcm = {
25082b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang	.name = "bfin-tdm-pcm-audio",
25092b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang	.id = -1,
25102b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang};
25112b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#endif
25126f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
25132b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE)
25142b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiangstatic struct platform_device bfin_ac97_pcm = {
25152b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang	.name = "bfin-ac97-pcm-audio",
25166f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.id = -1,
25176f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang};
25186f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#endif
25196f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
2520e0754d83ed5bfd9b1353f293964889252da682f2Scott Jiang#if defined(CONFIG_SND_SOC_AD73311) || defined(CONFIG_SND_SOC_AD73311_MODULE)
25216f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiangstatic struct platform_device bfin_ad73311_codec_device = {
25226f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.name = "ad73311",
25236f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.id = -1,
25246f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang};
25256f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#endif
25266f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
2527080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAV80X) || \
2528080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen	defined(CONFIG_SND_SOC_BFIN_EVAL_ADAV80X_MODULE)
2529080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausenstatic struct platform_device bfin_eval_adav801_device = {
2530080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen	.name = "bfin-eval-adav801",
2531080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen	.id = -1,
2532080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen};
2533080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen#endif
2534080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen
25356f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#if defined(CONFIG_SND_BF5XX_SOC_I2S) || defined(CONFIG_SND_BF5XX_SOC_I2S_MODULE)
2536336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Songstatic struct platform_device bfin_i2s = {
2537336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	.name = "bfin-i2s",
2538336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	.id = CONFIG_SND_BF5XX_SPORT_NUM,
25396f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.num_resources = ARRAY_SIZE(bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM]),
25406f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.resource = bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM],
25416f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.dev = {
25426f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		.platform_data = &bfin_snd_data[CONFIG_SND_BF5XX_SPORT_NUM],
25436f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	},
2544336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song};
2545336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song#endif
2546336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song
25476f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#if defined(CONFIG_SND_BF5XX_SOC_TDM) || defined(CONFIG_SND_BF5XX_SOC_TDM_MODULE)
25488312440e05ea74feabc648ad8f36c823af4ddd8eBarry Songstatic struct platform_device bfin_tdm = {
25498312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song	.name = "bfin-tdm",
2550336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	.id = CONFIG_SND_BF5XX_SPORT_NUM,
25516f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.num_resources = ARRAY_SIZE(bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM]),
25526f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.resource = bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM],
25536f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.dev = {
25546f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		.platform_data = &bfin_snd_data[CONFIG_SND_BF5XX_SPORT_NUM],
25556f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	},
2556336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song};
2557336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song#endif
2558336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song
25596f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#if defined(CONFIG_SND_BF5XX_SOC_AC97) || defined(CONFIG_SND_BF5XX_SOC_AC97_MODULE)
2560336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Songstatic struct platform_device bfin_ac97 = {
2561336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	.name = "bfin-ac97",
2562336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	.id = CONFIG_SND_BF5XX_SPORT_NUM,
25636f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.num_resources = ARRAY_SIZE(bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM]),
25646f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.resource = bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM],
25656f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.dev = {
25666f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		.platform_data = &bfin_snd_data[CONFIG_SND_BF5XX_SPORT_NUM],
25676f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	},
25688312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song};
25698312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song#endif
25708312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song
25711b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang#if defined(CONFIG_REGULATOR_FIXED_VOLTAGE) || defined(CONFIG_REGULATOR_FIXED_VOLTAGE_MODULE)
25721b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang#define REGULATOR_ADP122	"adp122"
25731b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang#define REGULATOR_ADP122_UV	2500000
2574f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2575f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct regulator_consumer_supply adp122_consumers = {
2576f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		.supply = REGULATOR_ADP122,
2577f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2578f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
25791b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhangstatic struct regulator_init_data adp_switch_regulator_data = {
25801b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.constraints = {
25811b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang		.name = REGULATOR_ADP122,
25821b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang		.valid_ops_mask = REGULATOR_CHANGE_STATUS,
25831b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang		.min_uV = REGULATOR_ADP122_UV,
25841b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang		.max_uV = REGULATOR_ADP122_UV,
25851b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang		.min_uA = 0,
25861b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang		.max_uA = 300000,
2587f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	},
25881b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.num_consumer_supplies = 1,	/* only 1 */
25891b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.consumer_supplies     = &adp122_consumers,
2590f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2591f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
25921b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhangstatic struct fixed_voltage_config adp_switch_pdata = {
25931b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.supply_name = REGULATOR_ADP122,
25941b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.microvolts = REGULATOR_ADP122_UV,
25951b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.gpio = GPIO_PF2,
25961b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.enable_high = 1,
25971b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.enabled_at_boot = 0,
25981b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.init_data = &adp_switch_regulator_data,
2599f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2600f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2601f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct platform_device adp_switch_device = {
26021b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.name = "reg-fixed-voltage",
2603f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.id = 0,
2604f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.dev = {
2605f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		.platform_data = &adp_switch_pdata,
2606f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	},
2607f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2608f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2609f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#if defined(CONFIG_REGULATOR_USERSPACE_CONSUMER) || \
2610f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	defined(CONFIG_REGULATOR_USERSPACE_CONSUMER_MODULE)
2611f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct regulator_bulk_data adp122_bulk_data = {
2612f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.supply = REGULATOR_ADP122,
2613f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2614f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2615f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct regulator_userspace_consumer_data adp122_userspace_comsumer_data = {
2616f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.name = REGULATOR_ADP122,
2617f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.num_supplies = 1,
2618f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.supplies = &adp122_bulk_data,
2619f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2620f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2621f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct platform_device adp122_userspace_consumer_device = {
2622f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.name = "reg-userspace-consumer",
2623f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.id = 0,
2624f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.dev = {
2625f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		.platform_data = &adp122_userspace_comsumer_data,
2626f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	},
2627f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2628f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#endif
2629f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#endif
2630f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
26310891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_IIO_GPIO_TRIGGER) || \
26320891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	defined(CONFIG_IIO_GPIO_TRIGGER_MODULE)
26330891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
26340891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic struct resource iio_gpio_trigger_resources[] = {
26350891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	[0] = {
26360891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.start  = IRQ_PF5,
26370891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.end    = IRQ_PF5,
26380891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE,
26390891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
26400891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
26410891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
26420891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic struct platform_device iio_gpio_trigger = {
26430891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	.name = "iio_gpio_trigger",
26440891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	.num_resources = ARRAY_SIZE(iio_gpio_trigger_resources),
26450891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	.resource = iio_gpio_trigger_resources,
26460891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
26470891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
2648f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2649af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1373) || \
2650af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen	defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1373_MODULE)
2651af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausenstatic struct platform_device bf5xx_adau1373_device = {
2652af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen	.name = "bfin-eval-adau1373",
2653af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen};
2654af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen#endif
2655af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen
26562fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701) || \
26572fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen	defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701_MODULE)
26582fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausenstatic struct platform_device bf5xx_adau1701_device = {
26592fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen	.name = "bfin-eval-adau1701",
26602fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen};
26612fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen#endif
26622fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen
26631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device *stamp_devices[] __initdata = {
266414b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich
266514b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	&bfin_dpmc,
266614b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich
26671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE)
26681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&bfin_pcmcia_cf_device,
26691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
26701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
26711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
26721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&rtc_device,
26731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
26741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
26751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE)
26761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&sl811_hcd_device,
26771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
26781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
26791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
26801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&isp1362_hcd_device,
26811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
26821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
26833f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
26843f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	&bfin_isp1760_device,
26853f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich#endif
26863f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich
26871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
26881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&smc91x_device,
26891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
26901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
2691f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
2692f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau	&dm9000_device,
2693f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau#endif
2694f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau
2695706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song#if defined(CONFIG_CAN_BFIN) || defined(CONFIG_CAN_BFIN_MODULE)
2696706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	&bfin_can_device,
2697706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song#endif
2698706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song
26991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
270065319628db2c7a630daadfeec4d371aaca788482Graf Yang	&bfin_mii_bus,
27011394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&bfin_mac_device,
27021394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
27031394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
27041394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
27051394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&net2272_bfin_device,
27061394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
27071394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
27081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
2709c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	&bfin_spi0_device,
27101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
27111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
27121e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai#if defined(CONFIG_SPI_BFIN_SPORT) || defined(CONFIG_SPI_BFIN_SPORT_MODULE)
27131e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	&bfin_sport_spi0_device,
27141e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	&bfin_sport_spi1_device,
27151e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai#endif
27161e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
27171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_FB_BF537_LQ035) || defined(CONFIG_FB_BF537_LQ035_MODULE)
27181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&bfin_fb_device,
27191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
27201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
27212043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
27222043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	&bfin_lq035q1_device,
27232043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#endif
27242043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich
27251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
27266bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART0
27276bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	&bfin_uart0_device,
27286bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#endif
27296bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART1
27306bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	&bfin_uart1_device,
27316bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#endif
27321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
27331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
27345be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
273542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#ifdef CONFIG_BFIN_SIR0
273642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	&bfin_sir0_device,
273742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#endif
273842bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#ifdef CONFIG_BFIN_SIR1
273942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	&bfin_sir1_device,
274042bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#endif
27415be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#endif
27425be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang
27431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
27441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&i2c_bfin_twi_device,
27451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
27461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
27471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
2748df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
27491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&bfin_sport0_uart_device,
2750df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#endif
2751df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
27521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&bfin_sport1_uart_device,
27531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
2754df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#endif
2755c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
2756c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
2757c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	&bfin_pata_device,
2758c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif
27592463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich
27602463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
27612463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	&bfin_device_gpiokeys,
27622463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich#endif
2763cad2ab65dd1c7d65153ffccd71c90db028fd62f0Mike Frysinger
2764fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#if defined(CONFIG_MTD_NAND_PLATFORM) || defined(CONFIG_MTD_NAND_PLATFORM_MODULE)
2765fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	&bfin_async_nand_device,
2766fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#endif
2767fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
2768793dc27b51b2ffff95b72408e2ef44e0995c185bMike Frysinger#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
2769de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	&stamp_flash_device,
2770793dc27b51b2ffff95b72408e2ef44e0995c185bMike Frysinger#endif
27718312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song
27722b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
27732b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang	&bfin_i2s_pcm,
27742b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#endif
27752b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang
27762b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
27772b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang	&bfin_tdm_pcm,
27782b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#endif
27792b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang
27802b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE)
27812b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang	&bfin_ac97_pcm,
27826f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#endif
27836f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
2784e0754d83ed5bfd9b1353f293964889252da682f2Scott Jiang#if defined(CONFIG_SND_SOC_AD73311) || defined(CONFIG_SND_SOC_AD73311_MODULE)
27856f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	&bfin_ad73311_codec_device,
27866f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#endif
27876f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
27886f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#if defined(CONFIG_SND_BF5XX_SOC_I2S) || defined(CONFIG_SND_BF5XX_SOC_I2S_MODULE)
2789336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	&bfin_i2s,
2790336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song#endif
2791336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song
27926f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#if defined(CONFIG_SND_BF5XX_SOC_TDM) || defined(CONFIG_SND_BF5XX_SOC_TDM_MODULE)
27938312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song	&bfin_tdm,
27948312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song#endif
2795336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song
27966f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#if defined(CONFIG_SND_BF5XX_SOC_AC97) || defined(CONFIG_SND_BF5XX_SOC_AC97_MODULE)
2797336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	&bfin_ac97,
2798336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song#endif
27996f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
2800f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_AD5398) || defined(CONFIG_REGULATOR_AD5398_MODULE)
2801f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_VIRTUAL_CONSUMER) || \
2802f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	defined(CONFIG_REGULATOR_VIRTUAL_CONSUMER_MODULE)
2803f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	&ad5398_virt_consumer_device,
2804f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
2805f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_USERSPACE_CONSUMER) || \
2806f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	defined(CONFIG_REGULATOR_USERSPACE_CONSUMER_MODULE)
2807f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	&ad5398_userspace_consumer_device,
2808f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
2809f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
2810f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
28111b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang#if defined(CONFIG_REGULATOR_FIXED_VOLTAGE) || defined(CONFIG_REGULATOR_FIXED_VOLTAGE_MODULE)
2812f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	&adp_switch_device,
2813f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#if defined(CONFIG_REGULATOR_USERSPACE_CONSUMER) || \
2814f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	defined(CONFIG_REGULATOR_USERSPACE_CONSUMER_MODULE)
2815f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	&adp122_userspace_consumer_device,
2816f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#endif
2817f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#endif
28180891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
28190891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_IIO_GPIO_TRIGGER) || \
28200891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	defined(CONFIG_IIO_GPIO_TRIGGER_MODULE)
28210891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	&iio_gpio_trigger,
28220891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
28232fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen
2824af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1373) || \
2825af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen	defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1373_MODULE)
2826af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen	&bf5xx_adau1373_device,
2827af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen#endif
2828af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen
28292fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701) || \
28302fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen	defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701_MODULE)
28312fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen	&bf5xx_adau1701_device,
28322fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen#endif
2833080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen
2834080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAV80X) || \
2835080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen	defined(CONFIG_SND_SOC_BFIN_EVAL_ADAV80X_MODULE)
2836080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen	&bfin_eval_adav801_device,
2837080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen#endif
28381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
28391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
28409be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysingerstatic int __init net2272_init(void)
28419be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger{
28429be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
28439be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	int ret;
28449be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger
28459be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	ret = gpio_request(GPIO_PF6, "net2272");
28469be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	if (ret)
28479be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger		return ret;
28489be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger
28499be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	/* Reset the USB chip */
28509be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	gpio_direction_output(GPIO_PF6, 0);
28519be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	mdelay(2);
28529be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	gpio_set_value(GPIO_PF6, 1);
28539be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger#endif
28549be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger
28559be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	return 0;
28569be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger}
28579be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger
28581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic int __init stamp_init(void)
28591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu{
2860b85d858b40a28107ee50ca9e89f57c0e35c251c6Harvey Harrison	printk(KERN_INFO "%s(): registering device resources\n", __func__);
2861fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	bfin_plat_nand_init();
28620531c467da6438f278e9420a30f73eea2fdb73bdMike Frysinger	adf702x_mac_init();
28631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
2864df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	i2c_register_board_info(0, bfin_i2c_board_info,
2865df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang				ARRAY_SIZE(bfin_i2c_board_info));
28665bda27235b24146cf870de663141ee4fbfa8a70bMike Frysinger	spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
2867c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
28689be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	if (net2272_init())
28699be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger		pr_warning("unable to configure net2272; it probably won't work\n");
28709be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger
28711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	return 0;
28721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}
28731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
28741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wuarch_initcall(stamp_init);
2875c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
2876c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang
2877c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhangstatic struct platform_device *stamp_early_devices[] __initdata = {
2878c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
2879c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART0
2880c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang	&bfin_uart0_device,
2881c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif
2882c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART1
2883c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang	&bfin_uart1_device,
2884c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif
2885c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif
2886c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang
2887c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
2888c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
2889c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang	&bfin_sport0_uart_device,
2890c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif
2891c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
2892c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang	&bfin_sport1_uart_device,
2893c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif
2894c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif
2895c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang};
2896c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang
2897c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhangvoid __init native_machine_early_platform_add_devices(void)
2898c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang{
2899c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang	printk(KERN_INFO "register early platform devices\n");
2900c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang	early_platform_add_devices(stamp_early_devices,
2901c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang		ARRAY_SIZE(stamp_early_devices));
2902c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang}
2903c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang
2904c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wuvoid native_machine_restart(char *cmd)
2905c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu{
2906c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	/* workaround reboot hang when booting from SPI */
2907c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	if ((bfin_read_SYSCR() & 0x7) == 0x3)
2908b52dae3139066765a7d96563e9cd33d9e60efe33Sonic Zhang		bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS);
2909c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu}
2910137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger
2911137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger/*
2912137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger * Currently the MAC address is saved in Flash by U-Boot
2913137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger */
2914137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger#define FLASH_MAC	0x203f0000
29159862cc5278aabd82230369a142c817e37a42caa3Mike Frysingervoid bfin_get_ether_addr(char *addr)
2916137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger{
2917137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger	*(u32 *)(&(addr[0])) = bfin_read32(FLASH_MAC);
2918137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger	*(u16 *)(&(addr[4])) = bfin_read16(FLASH_MAC + 4);
2919137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger}
29209862cc5278aabd82230369a142c817e37a42caa3Mike FrysingerEXPORT_SYMBOL(bfin_get_ether_addr);
2921