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>
10905905432868fa513f0f783fb9e5724536f4ee1fLars-Peter Clausen#include <linux/export.h>
11fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#include <linux/kernel.h>
121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/platform_device.h>
136e3647554e2bf7d7a898ccfc35941adbecd888e7Barry Song#include <linux/io.h>
141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/mtd/mtd.h>
15fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#include <linux/mtd/nand.h>
161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/mtd/partitions.h>
17fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#include <linux/mtd/plat-ram.h>
18de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger#include <linux/mtd/physmap.h>
191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/spi/spi.h>
201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/spi/flash.h>
211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
22f02bcec5986870b3ddae26f6be1cde0703abfd8aMike Frysinger#include <linux/usb/isp1362.h>
231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
247a9cc48907e05e61033b953a3860e55703625950Sonic Zhang#include <linux/i2c.h>
257a9cc48907e05e61033b953a3860e55703625950Sonic Zhang#include <linux/i2c/adp5588.h>
260531c467da6438f278e9420a30f73eea2fdb73bdMike Frysinger#include <linux/etherdevice.h>
270a87e3e92b299e0f1a69b36664ecde2fc296c40aJeff Garzik#include <linux/ata_platform.h>
281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/irq.h>
291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/interrupt.h>
3027f5d75afaa1b65e4cc1e4ac8a2a5095d24f1576David Brownell#include <linux/usb/sl811.h>
31f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#include <linux/spi/mmc_spi.h>
3278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#include <linux/leds.h>
3378756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#include <linux/input.h>
34c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#include <asm/dma.h>
351f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger#include <asm/bfin5xx_spi.h>
36c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#include <asm/reboot.h>
375d448dd50712ae42f8176b5bb8db4703bef6f0f5Bryan Wu#include <asm/portmux.h>
3814b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich#include <asm/dpmc.h>
396f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#include <asm/bfin_sport.h>
401b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang#ifdef CONFIG_REGULATOR_FIXED_VOLTAGE
411b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang#include <linux/regulator/fixed.h>
42f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#endif
431b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang#include <linux/regulator/machine.h>
44f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#include <linux/regulator/consumer.h>
45f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#include <linux/regulator/userspace-consumer.h>
461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/*
481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Name the Board for the /proc/cpuinfo
491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */
50fe85cad25e56aad5e020ea5cab50a100892f645bMike Frysingerconst char bfin_board_name[] = "ADI BF537-STAMP";
511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/*
531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu *  Driver needs to know address, irq and flag pin.
541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */
551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
573f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich#include <linux/usb/isp1760.h>
583f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerichstatic struct resource bfin_isp1760_resources[] = {
591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	[0] = {
603f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich		.start  = 0x203C0000,
613f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich		.end    = 0x203C0000 + 0x000fffff,
621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags  = IORESOURCE_MEM,
631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	[1] = {
653f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich		.start  = IRQ_PF7,
663f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich		.end    = IRQ_PF7,
676a6be3d1882743a382f18da9821a410bb29964a2Michael Hennerich		.flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL,
681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
713f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerichstatic struct isp1760_platform_data isp1760_priv = {
723f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.is_isp1761 = 0,
733f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.bus_width_16 = 1,
743f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.port1_otg = 0,
753f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.analog_oc = 0,
763f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.dack_polarity_high = 0,
773f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.dreq_polarity_high = 0,
781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
803f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerichstatic struct platform_device bfin_isp1760_device = {
81c6feb7682885f732a264ef589ee44edb1a3d45f2Michael Hennerich	.name           = "isp1760",
823f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.id             = 0,
833f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.dev = {
843f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich		.platform_data = &isp1760_priv,
853f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	},
863f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.num_resources  = ARRAY_SIZE(bfin_isp1760_resources),
873f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	.resource       = bfin_isp1760_resources,
881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
912463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
922463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich#include <linux/gpio_keys.h>
932463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich
942463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerichstatic struct gpio_keys_button bfin_gpio_keys_table[] = {
952463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	{BTN_0, GPIO_PF2, 1, "gpio-keys: BTN0"},
962463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	{BTN_1, GPIO_PF3, 1, "gpio-keys: BTN1"},
972463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	{BTN_2, GPIO_PF4, 1, "gpio-keys: BTN2"},
982463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	{BTN_3, GPIO_PF5, 1, "gpio-keys: BTN3"},
992463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich};
1002463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich
1012463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerichstatic struct gpio_keys_platform_data bfin_gpio_keys_data = {
1022463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	.buttons        = bfin_gpio_keys_table,
1032463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	.nbuttons       = ARRAY_SIZE(bfin_gpio_keys_table),
1042463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich};
1052463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich
1062463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerichstatic struct platform_device bfin_device_gpiokeys = {
1072463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	.name      = "gpio-keys",
1082463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	.dev = {
1092463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich		.platform_data = &bfin_gpio_keys_data,
1102463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	},
1112463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich};
1122463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich#endif
1132463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich
1141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE)
1151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource bfin_pcmcia_cf_resources[] = {
1161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
1171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = 0x20310000, /* IO PORT */
1181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = 0x20312000,
1191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
1201f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
121d2d50aa97d695d83ccb2341488d977e8cfe36555Simon Arlott		.start = 0x20311000, /* Attribute Memory */
1221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = 0x20311FFF,
1231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
1241f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
1251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = IRQ_PF4,
1261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = IRQ_PF4,
1271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL,
1281f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
1291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = 6, /* Card Detect PF6 */
1301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = 6,
1311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_IRQ,
1321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
1331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
1341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_pcmcia_cf_device = {
1361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "bfin_cf_pcmcia",
1371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = -1,
1381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.num_resources = ARRAY_SIZE(bfin_pcmcia_cf_resources),
1391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.resource = bfin_pcmcia_cf_resources,
1401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
1411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
1421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
1441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device rtc_device = {
1451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "rtc-bfin",
1461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id   = -1,
1471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
1481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
1491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
15161f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich#include <linux/smc91x.h>
15261f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich
15361f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerichstatic struct smc91x_platdata smc91x_info = {
15461f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich	.flags = SMC91X_USE_16BIT | SMC91X_NOWAIT,
15561f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich	.leda = RPC_LED_100_10,
15661f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich	.ledb = RPC_LED_TX_RX,
15761f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich};
15861f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich
1591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource smc91x_resources[] = {
1601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
1611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.name = "smc91x-regs",
1621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = 0x20300300,
1631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = 0x20300300 + 16,
1641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
1651f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
1661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = IRQ_PF7,
1681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = IRQ_PF7,
1691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
1701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
1711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
1721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device smc91x_device = {
1731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "smc91x",
1741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = 0,
1751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.num_resources = ARRAY_SIZE(smc91x_resources),
1761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.resource = smc91x_resources,
17761f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich	.dev	= {
17861f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich		.platform_data	= &smc91x_info,
17961f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich	},
1801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
1811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
1821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
183f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
184f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landaustatic struct resource dm9000_resources[] = {
185f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau	[0] = {
186f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau		.start	= 0x203FB800,
187b3dec4a4ff495248170358cb3b8254a814e5b096Barry Song		.end	= 0x203FB800 + 1,
188f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau		.flags	= IORESOURCE_MEM,
189f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau	},
190f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau	[1] = {
191b3dec4a4ff495248170358cb3b8254a814e5b096Barry Song		.start	= 0x203FB804,
192b3dec4a4ff495248170358cb3b8254a814e5b096Barry Song		.end	= 0x203FB804 + 1,
193b3dec4a4ff495248170358cb3b8254a814e5b096Barry Song		.flags	= IORESOURCE_MEM,
194b3dec4a4ff495248170358cb3b8254a814e5b096Barry Song	},
195b3dec4a4ff495248170358cb3b8254a814e5b096Barry Song	[2] = {
196f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau		.start	= IRQ_PF9,
197f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau		.end	= IRQ_PF9,
198f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau		.flags	= (IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE),
199f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau	},
200f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau};
201f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau
202f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landaustatic struct platform_device dm9000_device = {
203f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau	.name		= "dm9000",
204f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau	.id		= -1,
205f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau	.num_resources	= ARRAY_SIZE(dm9000_resources),
206f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau	.resource	= dm9000_resources,
207f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau};
208f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau#endif
209f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau
2101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE)
2111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource sl811_hcd_resources[] = {
2121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
2131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = 0x20340000,
2141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = 0x20340000,
2151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
2161f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
2171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = 0x20340004,
2181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = 0x20340004,
2191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
2201f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
22101218654cd97a1e970034b1e080ec5459172c3f6Mike Frysinger		.start = IRQ_PF4,
22201218654cd97a1e970034b1e080ec5459172c3f6Mike Frysinger		.end = IRQ_PF4,
2231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
2241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
2251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
2261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
2271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS)
2281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wuvoid sl811_port_power(struct device *dev, int is_on)
2291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu{
230c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	gpio_request(CONFIG_USB_SL811_BFIN_GPIO_VBUS, "usb:SL811_VBUS");
231acbcd2631975cf6f0be5cd294cbfd12226cd9958Michael Hennerich	gpio_direction_output(CONFIG_USB_SL811_BFIN_GPIO_VBUS, is_on);
2321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}
2331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
2341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
2351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct sl811_platform_data sl811_priv = {
2361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.potpg = 10,
2371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.power = 250,       /* == 500mA */
2381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS)
2391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.port_power = &sl811_port_power,
2401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
2411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
2421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
2431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device sl811_hcd_device = {
2441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "sl811-hcd",
2451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = 0,
2461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.dev = {
2471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.platform_data = &sl811_priv,
2481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
2491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.num_resources = ARRAY_SIZE(sl811_hcd_resources),
2501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.resource = sl811_hcd_resources,
2511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
2521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
2531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
2541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
2551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource isp1362_hcd_resources[] = {
2561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
2571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = 0x20360000,
2581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = 0x20360000,
2591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
2601f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
2611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = 0x20360004,
2621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = 0x20360004,
2631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
2641f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
26521b03cfe4c50fd586bfebd06d852457c07f60c2bMike Frysinger		.start = IRQ_PF3,
26621b03cfe4c50fd586bfebd06d852457c07f60c2bMike Frysinger		.end = IRQ_PF3,
2679e75894c50d126bf3c8efb0efc91d5a93d6163ddMichael Hennerich		.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE,
2681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
2691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
2701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
2711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct isp1362_platform_data isp1362_priv = {
2721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.sel15Kres = 1,
2731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.clknotstop = 0,
2741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.oc_enable = 0,
2751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.int_act_high = 0,
2761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.int_edge_triggered = 0,
2771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.remote_wakeup_connected = 0,
2781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.no_power_switching = 1,
2791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.power_switching_mode = 0,
2801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
2811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
2821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device isp1362_hcd_device = {
2831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "isp1362-hcd",
2841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = 0,
2851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.dev = {
2861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.platform_data = &isp1362_priv,
2871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
2881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.num_resources = ARRAY_SIZE(isp1362_hcd_resources),
2891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.resource = isp1362_hcd_resources,
2901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
2911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
2921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
293706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song#if defined(CONFIG_CAN_BFIN) || defined(CONFIG_CAN_BFIN_MODULE)
294a8b19886097032df38bd521cece4bc538fee2266Mike Frysingerstatic unsigned short bfin_can_peripherals[] = {
295706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	P_CAN0_RX, P_CAN0_TX, 0
296706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song};
297706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song
298706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Songstatic struct resource bfin_can_resources[] = {
299706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	{
300706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.start = 0xFFC02A00,
301706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.end = 0xFFC02FFF,
302706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.flags = IORESOURCE_MEM,
303706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	},
304706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	{
305706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.start = IRQ_CAN_RX,
306706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.end = IRQ_CAN_RX,
307706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.flags = IORESOURCE_IRQ,
308706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	},
309706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	{
310706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.start = IRQ_CAN_TX,
311706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.end = IRQ_CAN_TX,
312706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.flags = IORESOURCE_IRQ,
313706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	},
314706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	{
315706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.start = IRQ_CAN_ERROR,
316706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.end = IRQ_CAN_ERROR,
317706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.flags = IORESOURCE_IRQ,
318706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	},
319706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song};
320706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song
321706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Songstatic struct platform_device bfin_can_device = {
322706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	.name = "bfin_can",
323706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	.num_resources = ARRAY_SIZE(bfin_can_resources),
324706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	.resource = bfin_can_resources,
325706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	.dev = {
326706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song		.platform_data = &bfin_can_peripherals, /* Passed to driver */
327706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	},
328706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song};
329706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song#endif
330706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song
3311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
33202460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang#include <linux/bfin_mac.h>
33302460d08930656b3a50381cfb119864efcd4eef9Sonic Zhangstatic const unsigned short bfin_mac_peripherals[] = P_MII0;
33402460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang
33502460d08930656b3a50381cfb119864efcd4eef9Sonic Zhangstatic struct bfin_phydev_platform_data bfin_phydev_data[] = {
33602460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	{
33702460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang		.addr = 1,
33802460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang		.irq = PHY_POLL, /* IRQ_MAC_PHYINT */
33902460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	},
34002460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang};
34102460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang
34202460d08930656b3a50381cfb119864efcd4eef9Sonic Zhangstatic struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
34302460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	.phydev_number = 1,
34402460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	.phydev_data = bfin_phydev_data,
34502460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	.phy_mode = PHY_INTERFACE_MODE_MII,
34602460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	.mac_peripherals = bfin_mac_peripherals,
34702460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang};
34802460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang
34965319628db2c7a630daadfeec4d371aaca788482Graf Yangstatic struct platform_device bfin_mii_bus = {
35065319628db2c7a630daadfeec4d371aaca788482Graf Yang	.name = "bfin_mii_bus",
35102460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	.dev = {
35202460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang		.platform_data = &bfin_mii_bus_data,
35302460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	}
35465319628db2c7a630daadfeec4d371aaca788482Graf Yang};
35565319628db2c7a630daadfeec4d371aaca788482Graf Yang
3561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_mac_device = {
3571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "bfin_mac",
35802460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	.dev = {
35902460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang		.platform_data = &bfin_mii_bus,
36002460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang	}
3611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
3621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
3631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
3641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
3651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource net2272_bfin_resources[] = {
3661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
3671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = 0x20300000,
3681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = 0x20300000 + 0x100,
3691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
3701f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
3719be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger		.start = 1,
3729be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger		.flags = IORESOURCE_BUS,
3739be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	}, {
3741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = IRQ_PF7,
3751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = IRQ_PF7,
3761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
3771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
3781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
3791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
3801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device net2272_bfin_device = {
3811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "net2272",
3821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = -1,
3831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.num_resources = ARRAY_SIZE(net2272_bfin_resources),
3841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.resource = net2272_bfin_resources,
3851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
3861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
3871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
388fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#if defined(CONFIG_MTD_NAND_PLATFORM) || defined(CONFIG_MTD_NAND_PLATFORM_MODULE)
389fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerconst char *part_probes[] = { "cmdlinepart", "RedBoot", NULL };
390fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
391fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic struct mtd_partition bfin_plat_nand_partitions[] = {
392fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	{
393aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name   = "linux kernel(nand)",
394fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.size   = 0x400000,
395fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.offset = 0,
396fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	}, {
397aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name   = "file system(nand)",
398fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.size   = MTDPART_SIZ_FULL,
399fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.offset = MTDPART_OFS_APPEND,
400fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	},
401fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger};
402fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
403fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#define BFIN_NAND_PLAT_CLE 2
404fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#define BFIN_NAND_PLAT_ALE 1
405fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic void bfin_plat_nand_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl)
406fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger{
407fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	struct nand_chip *this = mtd->priv;
408fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
409fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	if (cmd == NAND_CMD_NONE)
410fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		return;
411fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
412fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	if (ctrl & NAND_CLE)
413fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		writeb(cmd, this->IO_ADDR_W + (1 << BFIN_NAND_PLAT_CLE));
414fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	else
415fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		writeb(cmd, this->IO_ADDR_W + (1 << BFIN_NAND_PLAT_ALE));
416fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger}
417fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
418fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#define BFIN_NAND_PLAT_READY GPIO_PF3
419fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic int bfin_plat_nand_dev_ready(struct mtd_info *mtd)
420fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger{
421fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	return gpio_get_value(BFIN_NAND_PLAT_READY);
422fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger}
423fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
424fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic struct platform_nand_data bfin_plat_nand_data = {
425fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.chip = {
426ef56609f9c7fdf5baa9d9f86f84a7bd8a717cd25Marek Vasut		.nr_chips = 1,
427fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.chip_delay = 30,
428fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.part_probe_types = part_probes,
429fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.partitions = bfin_plat_nand_partitions,
430fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.nr_partitions = ARRAY_SIZE(bfin_plat_nand_partitions),
431fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	},
432fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.ctrl = {
433fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.cmd_ctrl  = bfin_plat_nand_cmd_ctrl,
434fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.dev_ready = bfin_plat_nand_dev_ready,
435fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	},
436fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger};
437fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
438fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#define MAX(x, y) (x > y ? x : y)
439fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic struct resource bfin_plat_nand_resources = {
440fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.start = 0x20212000,
441fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.end   = 0x20212000 + (1 << MAX(BFIN_NAND_PLAT_CLE, BFIN_NAND_PLAT_ALE)),
44267d9963bd79b8f861387982ac5c0ff796f12be61Mike Frysinger	.flags = IORESOURCE_MEM,
443fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger};
444fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
445fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic struct platform_device bfin_async_nand_device = {
446fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.name = "gen_nand",
447fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.id = -1,
448fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.num_resources = 1,
449fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.resource = &bfin_plat_nand_resources,
450fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.dev = {
451fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.platform_data = &bfin_plat_nand_data,
452fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	},
453fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger};
454fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
455fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic void bfin_plat_nand_init(void)
456fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger{
457fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	gpio_request(BFIN_NAND_PLAT_READY, "bfin_nand_plat");
458fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger}
459fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#else
460fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic void bfin_plat_nand_init(void) {}
461fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#endif
462fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
463793dc27b51b2ffff95b72408e2ef44e0995c185bMike Frysinger#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
464de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysingerstatic struct mtd_partition stamp_partitions[] = {
465de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	{
466aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name       = "bootloader(nor)",
467edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger		.size       = 0x40000,
468de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.offset     = 0,
469de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	}, {
470aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name       = "linux kernel(nor)",
4716ecb5b6dbc01b958fdce7008f297a5c7ba2d8105Grace Pan		.size       = 0x180000,
472de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.offset     = MTDPART_OFS_APPEND,
473de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	}, {
474aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name       = "file system(nor)",
4756ecb5b6dbc01b958fdce7008f297a5c7ba2d8105Grace Pan		.size       = 0x400000 - 0x40000 - 0x180000 - 0x10000,
476de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.offset     = MTDPART_OFS_APPEND,
477de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	}, {
478aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name       = "MAC Address(nor)",
479de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.size       = MTDPART_SIZ_FULL,
480de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.offset     = 0x3F0000,
481de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.mask_flags = MTD_WRITEABLE,
482de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	}
483de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger};
484de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger
485de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysingerstatic struct physmap_flash_data stamp_flash_data = {
486de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.width      = 2,
487de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.parts      = stamp_partitions,
488de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.nr_parts   = ARRAY_SIZE(stamp_partitions),
48938e7673f24e6c19aba9ecff86760cb7981b91464Barry Song#ifdef CONFIG_ROMKERNEL
49038e7673f24e6c19aba9ecff86760cb7981b91464Barry Song	.probe_type = "map_rom",
49138e7673f24e6c19aba9ecff86760cb7981b91464Barry Song#endif
492de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger};
493de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger
494de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysingerstatic struct resource stamp_flash_resource = {
495de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.start = 0x20000000,
496de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.end   = 0x203fffff,
497de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.flags = IORESOURCE_MEM,
498de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger};
499de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger
500de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysingerstatic struct platform_device stamp_flash_device = {
501de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.name          = "physmap-flash",
502de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.id            = 0,
503de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.dev = {
504de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.platform_data = &stamp_flash_data,
505de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	},
506de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.num_resources = 1,
507de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.resource      = &stamp_flash_resource,
508de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger};
509793dc27b51b2ffff95b72408e2ef44e0995c185bMike Frysinger#endif
510de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger
5111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_MTD_M25P80) \
5121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	|| defined(CONFIG_MTD_M25P80_MODULE)
5131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct mtd_partition bfin_spi_flash_partitions[] = {
5141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
515aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name = "bootloader(spi)",
516edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger		.size = 0x00040000,
5171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.offset = 0,
5181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.mask_flags = MTD_CAP_ROM
5191f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
520aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name = "linux kernel(spi)",
5216ecb5b6dbc01b958fdce7008f297a5c7ba2d8105Grace Pan		.size = 0x180000,
522edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger		.offset = MTDPART_OFS_APPEND,
5231f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
524aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name = "file system(spi)",
525edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger		.size = MTDPART_SIZ_FULL,
526edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger		.offset = MTDPART_OFS_APPEND,
5271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	}
5281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
5291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
5301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct flash_platform_data bfin_spi_flash_data = {
5311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "m25p80",
5321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.parts = bfin_spi_flash_partitions,
5331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.nr_parts = ARRAY_SIZE(bfin_spi_flash_partitions),
53488a8078b3b31349e9cbf09215eab6891fb1aed0fMichael Hennerich	/* .type = "m25p64", */
5351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
5361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
5371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* SPI flash chip (m25p64) */
5381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip spi_flash_chip_info = {
5391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.enable_dma = 0,         /* use dma transfer with this chip*/
540a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li};
541a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li#endif
542a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li
5435b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger#if defined(CONFIG_INPUT_AD714X_SPI) || defined(CONFIG_INPUT_AD714X_SPI_MODULE)
544427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#include <linux/input/ad714x.h>
545427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song
5465b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysingerstatic struct ad714x_slider_plat ad7147_spi_slider_plat[] = {
547427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
548427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.start_stage = 0,
549427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.end_stage = 7,
550427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.max_coord = 128,
551427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
552427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song};
553427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song
5545b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysingerstatic struct ad714x_button_plat ad7147_spi_button_plat[] = {
555427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
556427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_FORWARD,
557427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0,
558427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x600,
559427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
560427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
561427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_LEFT,
562427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0,
563427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x500,
564427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
565427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
566427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_MIDDLE,
567427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0,
568427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x800,
569427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
570427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
571427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_RIGHT,
572427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0x100,
573427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x400,
574427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
575427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
576427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_BACK,
577427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0x200,
578427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x400,
579427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
580427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song};
5815b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysingerstatic struct ad714x_platform_data ad7147_spi_platform_data = {
582427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.slider_num = 1,
583427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.button_num = 5,
5845b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger	.slider = ad7147_spi_slider_plat,
5855b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger	.button = ad7147_spi_button_plat,
586427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.stage_cfg_reg =  {
587427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFBFF, 0x1FFF, 0, 0x2626, 1600, 1600, 1600, 1600},
588427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xEFFF, 0x1FFF, 0, 0x2626, 1650, 1650, 1650, 1650},
589427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x1FFE, 0, 0x2626, 1650, 1650, 1650, 1650},
590427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x1FFB, 0, 0x2626, 1650, 1650, 1650, 1650},
591427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x1FEF, 0, 0x2626, 1650, 1650, 1650, 1650},
592427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x1FBF, 0, 0x2626, 1650, 1650, 1650, 1650},
593427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x1EFF, 0, 0x2626, 1650, 1650, 1650, 1650},
594427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x1BFF, 0, 0x2626, 1600, 1600, 1600, 1600},
595427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFF7B, 0x3FFF, 0x506,  0x2626, 1100, 1100, 1150, 1150},
596427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFDFE, 0x3FFF, 0x606,  0x2626, 1100, 1100, 1150, 1150},
597427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFEBA, 0x1FFF, 0x1400, 0x2626, 1200, 1200, 1300, 1300},
598427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFEF, 0x1FFF, 0x0,    0x2626, 1100, 1100, 1150, 1150},
599427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
600427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.sys_cfg_reg = {0x2B2, 0x0, 0x3233, 0x819, 0x832, 0xCFF, 0xCFF, 0x0},
601427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song};
602427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#endif
603427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song
6045b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger#if defined(CONFIG_INPUT_AD714X_I2C) || defined(CONFIG_INPUT_AD714X_I2C_MODULE)
605427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#include <linux/input/ad714x.h>
6065b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysingerstatic struct ad714x_button_plat ad7142_i2c_button_plat[] = {
607427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
608427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_1,
609427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0,
610427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x1,
611427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
612427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
613427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_2,
614427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0,
615427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x2,
616427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
617427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
618427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_3,
619427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0,
620427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x4,
621427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
622427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
623427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_4,
624427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0x0,
625427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x8,
626427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
627427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song};
6285b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysingerstatic struct ad714x_platform_data ad7142_i2c_platform_data = {
629427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.button_num = 4,
6305b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger	.button = ad7142_i2c_button_plat,
631427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.stage_cfg_reg =  {
632427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		/* fixme: figure out right setting for all comoponent according
633427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		 * to hardware feature of EVAL-AD7142EB board */
634427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xE7FF, 0x3FFF, 0x0005, 0x2626, 0x01F4, 0x01F4, 0x028A, 0x028A},
635427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFDBF, 0x3FFF, 0x0001, 0x2626, 0x01F4, 0x01F4, 0x028A, 0x028A},
636427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x2DFF, 0x0001, 0x2626, 0x01F4, 0x01F4, 0x028A, 0x028A},
637427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x37BF, 0x0001, 0x2626, 0x01F4, 0x01F4, 0x028A, 0x028A},
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		{0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320},
646427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
647427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.sys_cfg_reg = {0x0B2, 0x0, 0x690, 0x664, 0x290F, 0xF, 0xF, 0x0},
648427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song};
649427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#endif
650427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song
651f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang#if defined(CONFIG_AD2S90) || defined(CONFIG_AD2S90_MODULE)
652f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yangstatic struct bfin5xx_spi_chip ad2s90_spi_chip_info = {
653f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang	.enable_dma = 0,
654f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang};
655f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang#endif
656f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang
657df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang#if defined(CONFIG_AD2S120X) || defined(CONFIG_AD2S120X_MODULE)
658a8b19886097032df38bd521cece4bc538fee2266Mike Frysingerstatic unsigned short ad2s120x_platform_data[] = {
659df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang	/* used as SAMPLE and RDVEL */
660df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang	GPIO_PF5, GPIO_PF6, 0
661df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang};
662df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang
663df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yangstatic struct bfin5xx_spi_chip ad2s120x_spi_chip_info = {
664df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang	.enable_dma = 0,
665df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang};
666df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang#endif
667df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang
668848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang#if defined(CONFIG_AD2S1210) || defined(CONFIG_AD2S1210_MODULE)
669a8b19886097032df38bd521cece4bc538fee2266Mike Frysingerstatic unsigned short ad2s1210_platform_data[] = {
670848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	/* use as SAMPLE, A0, A1 */
671848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	GPIO_PF7, GPIO_PF8, GPIO_PF9,
672848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang# if defined(CONFIG_AD2S1210_GPIO_INPUT) || defined(CONFIG_AD2S1210_GPIO_OUTPUT)
673848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	/* the RES0 and RES1 pins */
674848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	GPIO_PF4, GPIO_PF5,
675848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang# endif
676848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	0,
677848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang};
678848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang
679848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yangstatic struct bfin5xx_spi_chip ad2s1210_spi_chip_info = {
680848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	.enable_dma = 0,
681848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang};
682848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang#endif
683848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang
6840891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_AD7314) || defined(CONFIG_AD7314_MODULE)
6850891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic struct bfin5xx_spi_chip ad7314_spi_chip_info = {
6860891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	.enable_dma = 0,
6870891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
6880891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
6890891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
6900891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_AD7816) || defined(CONFIG_AD7816_MODULE)
6910891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic unsigned short ad7816_platform_data[] = {
6920891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	GPIO_PF4, /* rdwr_pin */
6930891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	GPIO_PF5, /* convert_pin */
6940891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	GPIO_PF7, /* busy_pin */
6950891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	0,
6960891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
6970891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
6980891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic struct bfin5xx_spi_chip ad7816_spi_chip_info = {
6990891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	.enable_dma = 0,
7000891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
7010891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
7020891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
7030891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADT7310) || defined(CONFIG_ADT7310_MODULE)
7040891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic unsigned long adt7310_platform_data[3] = {
7050891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich/* INT bound temperature alarm event. line 1 */
7060891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	IRQ_PG4, IRQF_TRIGGER_LOW,
7070891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich/* CT bound temperature alarm event irq_flags. line 0 */
7080891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	IRQF_TRIGGER_LOW,
7090891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
7100891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
7110891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic struct bfin5xx_spi_chip adt7310_spi_chip_info = {
7120891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	.enable_dma = 0,
7130891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
7140891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
7150891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
7160891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_AD7298) || defined(CONFIG_AD7298_MODULE)
7170891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic unsigned short ad7298_platform_data[] = {
7180891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	GPIO_PF7, /* busy_pin */
7190891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	0,
7200891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
7210891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
7220891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
7230891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADT7316_SPI) || defined(CONFIG_ADT7316_SPI_MODULE)
7240891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic unsigned long adt7316_spi_data[2] = {
7250891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	IRQF_TRIGGER_LOW, /* interrupt flags */
7260891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	GPIO_PF7, /* ldac_pin, 0 means DAC/LDAC registers control DAC update */
7270891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
7280891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
7290891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic struct bfin5xx_spi_chip adt7316_spi_chip_info = {
7300891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	.enable_dma = 0,
7310891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
7320891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
7330891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
734f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
735f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#define MMC_SPI_CARD_DETECT_INT IRQ_PF5
736f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li
737f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Listatic int bfin_mmc_spi_init(struct device *dev,
738f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	irqreturn_t (*detect_int)(int, void *), void *data)
739f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li{
740f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	return request_irq(MMC_SPI_CARD_DETECT_INT, detect_int,
741f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		IRQF_TRIGGER_FALLING, "mmc-spi-detect", data);
742f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li}
743f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li
744f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Listatic void bfin_mmc_spi_exit(struct device *dev, void *data)
745f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li{
746f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	free_irq(MMC_SPI_CARD_DETECT_INT, data);
747f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li}
748f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li
749f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Listatic struct mmc_spi_platform_data bfin_mmc_spi_pdata = {
750f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	.init = bfin_mmc_spi_init,
751f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	.exit = bfin_mmc_spi_exit,
752f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	.detect_delay = 100, /* msecs */
753f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li};
754f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li
755f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Listatic struct bfin5xx_spi_chip  mmc_spi_chip_info = {
756f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	.enable_dma = 0,
757e68d1ebc30e033612bb69f949da654d72beae57dYi Li	.pio_interrupt = 0,
758f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li};
759f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#endif
760f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li
7611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
76246aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#include <linux/spi/ad7877.h>
7631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic const struct ad7877_platform_data bfin_ad7877_ts_info = {
7641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.model			= 7877,
7651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.vref_delay_usecs	= 50,	/* internal, no capacitor */
7661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.x_plate_ohms		= 419,
7671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.y_plate_ohms		= 486,
7681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.pressure_max		= 1000,
7691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.pressure_min		= 0,
7706ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.stopacq_polarity	= 1,
7716ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.first_conversion_delay	= 3,
7726ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.acquisition_time	= 1,
7736ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.averaging		= 1,
7746ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.pen_down_acc_interval	= 1,
7751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
7761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
7771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
77846aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_AD7879) || defined(CONFIG_TOUCHSCREEN_AD7879_MODULE)
77946aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#include <linux/spi/ad7879.h>
78046aa04f9b678d1d6f3558429109326775ca87715Michael Hennerichstatic const struct ad7879_platform_data bfin_ad7879_ts_info = {
78146aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	.model			= 7879,	/* Model = AD7879 */
78246aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	.x_plate_ohms		= 620,	/* 620 Ohm from the touch datasheet */
78346aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	.pressure_max		= 10000,
78446aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	.pressure_min		= 0,
7856ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.first_conversion_delay	= 3,	/* wait 512us before do a first conversion */
7866ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.acquisition_time	= 1,	/* 4us acquisition time per sample */
78746aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	.median			= 2,	/* do 8 measurements */
7886ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.averaging		= 1,	/* take the average of 4 middle samples */
7896ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.pen_down_acc_interval	= 255,	/* 9.4 ms */
790244d34230b7447fba95221dbf39b39e94257939cMichael Hennerich	.gpio_export		= 1,	/* Export GPIO to gpiolib */
791244d34230b7447fba95221dbf39b39e94257939cMichael Hennerich	.gpio_base		= -1,	/* Dynamic allocation */
79246aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich};
79346aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#endif
79446aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich
795ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich#if defined(CONFIG_INPUT_ADXL34X) || defined(CONFIG_INPUT_ADXL34X_MODULE)
79657af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich#include <linux/input/adxl34x.h>
797ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerichstatic const struct adxl34x_platform_data adxl34x_info = {
798ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.x_axis_offset = 0,
799ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.y_axis_offset = 0,
800ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.z_axis_offset = 0,
801ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.tap_threshold = 0x31,
802ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.tap_duration = 0x10,
803ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.tap_latency = 0x60,
804ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.tap_window = 0xF0,
805ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.tap_axis_control = ADXL_TAP_X_EN | ADXL_TAP_Y_EN | ADXL_TAP_Z_EN,
806ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.act_axis_control = 0xFF,
807ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.activity_threshold = 5,
808ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.inactivity_threshold = 3,
809ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.inactivity_time = 4,
810ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.free_fall_threshold = 0x7,
811ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.free_fall_time = 0x20,
812ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.data_rate = 0x8,
813ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.data_range = ADXL_FULL_RES,
814ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich
815ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.ev_type = EV_ABS,
816ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.ev_code_x = ABS_X,		/* EV_REL */
817ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.ev_code_y = ABS_Y,		/* EV_REL */
818ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.ev_code_z = ABS_Z,		/* EV_REL */
819ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich
82057af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich	.ev_code_tap = {BTN_TOUCH, BTN_TOUCH, BTN_TOUCH}, /* EV_KEY x,y,z */
821ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich
822ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich/*	.ev_code_ff = KEY_F,*/		/* EV_KEY */
823ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich/*	.ev_code_act_inactivity = KEY_A,*/	/* EV_KEY */
824ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.power_mode = ADXL_AUTO_SLEEP | ADXL_LINK,
825ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.fifo_mode = ADXL_FIFO_STREAM,
8266ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.orientation_enable = ADXL_EN_ORIENTATION_3D,
8276ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.deadzone_angle = ADXL_DEADZONE_ANGLE_10p8,
8286ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.divisor_length =  ADXL_LP_FILTER_DIVISOR_16,
8296ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	/* EV_KEY {+Z, +Y, +X, -X, -Y, -Z} */
8306ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.ev_codes_orient_3d = {BTN_Z, BTN_Y, BTN_X, BTN_A, BTN_B, BTN_C},
831ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich};
832ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich#endif
833ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich
83485a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich#if defined(CONFIG_ENC28J60) || defined(CONFIG_ENC28J60_MODULE)
83585a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerichstatic struct bfin5xx_spi_chip enc28j60_spi_chip_info = {
83685a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich	.enable_dma	= 1,
83785a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich};
83885a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich#endif
83985a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich
840efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich#if defined(CONFIG_ADF702X) || defined(CONFIG_ADF702X_MODULE)
841efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich#include <linux/spi/adf702x.h>
842efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich#define TXREG 0x0160A470
843efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerichstatic const u32 adf7021_regs[] = {
844efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x09608FA0,
845efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x00575011,
846efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x00A7F092,
847efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x2B141563,
848efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x81F29E94,
849efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x00003155,
850efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x050A4F66,
851efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x00000007,
852efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x00000008,
853efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x000231E9,
854efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x3296354A,
855efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x891A2B3B,
856efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x00000D9C,
857efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x0000000D,
858efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x0000000E,
859efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x0000000F,
860efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich};
861efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich
862efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerichstatic struct adf702x_platform_data adf7021_platform_data = {
863efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.regs_base = (void *)SPORT1_TCR1,
864efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.dma_ch_rx = CH_SPORT1_RX,
865efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.dma_ch_tx = CH_SPORT1_TX,
866efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.irq_sport_err = IRQ_SPORT1_ERROR,
867efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.gpio_int_rfs = GPIO_PF8,
868efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.pin_req = {P_SPORT1_DTPRI, P_SPORT1_RFS, P_SPORT1_DRPRI,
869efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich			P_SPORT1_RSCLK, P_SPORT1_TSCLK, 0},
870efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.adf702x_model = MODEL_ADF7021,
871efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.adf702x_regs = adf7021_regs,
872efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.tx_reg = TXREG,
873efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich};
8740531c467da6438f278e9420a30f73eea2fdb73bdMike Frysingerstatic inline void adf702x_mac_init(void)
8750531c467da6438f278e9420a30f73eea2fdb73bdMike Frysinger{
8760531c467da6438f278e9420a30f73eea2fdb73bdMike Frysinger	random_ether_addr(adf7021_platform_data.mac_addr);
8770531c467da6438f278e9420a30f73eea2fdb73bdMike Frysinger}
8780531c467da6438f278e9420a30f73eea2fdb73bdMike Frysinger#else
8790531c467da6438f278e9420a30f73eea2fdb73bdMike Frysingerstatic inline void adf702x_mac_init(void) {}
880efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich#endif
881efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich
882fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
883fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich#include <linux/spi/ads7846.h>
884fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerichstatic int ads7873_get_pendown_state(void)
885fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich{
886fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	return gpio_get_value(GPIO_PF6);
887fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich}
888fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich
889fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerichstatic struct ads7846_platform_data __initdata ad7873_pdata = {
890fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.model		= 7873,		/* AD7873 */
891fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.x_max		= 0xfff,
892fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.y_max		= 0xfff,
893fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.x_plate_ohms	= 620,
894fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.debounce_max	= 1,
895fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.debounce_rep	= 0,
896fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.debounce_tol	= (~0),
897fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.get_pendown_state = ads7873_get_pendown_state,
898fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich};
899fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich#endif
900fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich
9018e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich#if defined(CONFIG_MTD_DATAFLASH) \
9028e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich	|| defined(CONFIG_MTD_DATAFLASH_MODULE)
903ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich
904ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerichstatic struct mtd_partition bfin_spi_dataflash_partitions[] = {
905ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	{
906ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.name = "bootloader(spi)",
907ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.size = 0x00040000,
908ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.offset = 0,
909ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.mask_flags = MTD_CAP_ROM
910ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	}, {
911ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.name = "linux kernel(spi)",
9126ecb5b6dbc01b958fdce7008f297a5c7ba2d8105Grace Pan		.size = 0x180000,
913ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.offset = MTDPART_OFS_APPEND,
914ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	}, {
915ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.name = "file system(spi)",
916ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.size = MTDPART_SIZ_FULL,
917ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.offset = MTDPART_OFS_APPEND,
918ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	}
919ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich};
920ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich
921ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerichstatic struct flash_platform_data bfin_spi_dataflash_data = {
922ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	.name = "SPI Dataflash",
923ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	.parts = bfin_spi_dataflash_partitions,
924ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	.nr_parts = ARRAY_SIZE(bfin_spi_dataflash_partitions),
925ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich};
926ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich
9278e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich/* DataFlash chip */
9288e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerichstatic struct bfin5xx_spi_chip data_flash_chip_info = {
9298e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich	.enable_dma = 0,         /* use dma transfer with this chip*/
93057af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich};
93157af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich#endif
93257af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich
9330891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_AD7476) || defined(CONFIG_AD7476_MODULE)
9340891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic struct bfin5xx_spi_chip spi_ad7476_chip_info = {
9350891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	.enable_dma = 0,         /* use dma transfer with this chip*/
9360891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
9370891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
9380891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
9391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct spi_board_info bfin_spi_board_info[] __initdata = {
9401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_MTD_M25P80) \
9411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	|| defined(CONFIG_MTD_M25P80_MODULE)
9421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
9431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		/* the modalias must be the same as spi device driver name */
9441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.modalias = "m25p80", /* Name of spi_driver for this device */
9451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.max_speed_hz = 25000000,     /* max spi clock (SCK) speed in HZ */
946c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.bus_num = 0, /* Framework bus number */
9471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.chip_select = 1, /* Framework chip select. On STAMP537 it is SPISSEL1*/
9481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.platform_data = &bfin_spi_flash_data,
9491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.controller_data = &spi_flash_chip_info,
9501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.mode = SPI_MODE_3,
9511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
9521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
9538e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich#if defined(CONFIG_MTD_DATAFLASH) \
9548e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich	|| defined(CONFIG_MTD_DATAFLASH_MODULE)
9558e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich	{	/* DataFlash chip */
9568e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich		.modalias = "mtd_dataflash",
957ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.max_speed_hz = 33250000,     /* max spi clock (SCK) speed in HZ */
9588e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich		.bus_num = 0, /* Framework bus number */
9598e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich		.chip_select = 1, /* Framework chip select. On STAMP537 it is SPISSEL1*/
960ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.platform_data = &bfin_spi_dataflash_data,
9618e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich		.controller_data = &data_flash_chip_info,
9628e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich		.mode = SPI_MODE_3,
9638e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich	},
9648e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich#endif
9651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
966d0556363064f06eaf1380cd529051ad5add43ba8Scott Jiang#if defined(CONFIG_SND_BF5XX_SOC_AD1836) \
967d0556363064f06eaf1380cd529051ad5add43ba8Scott Jiang	|| defined(CONFIG_SND_BF5XX_SOC_AD1836_MODULE)
9681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
969d0556363064f06eaf1380cd529051ad5add43ba8Scott Jiang		.modalias = "ad1836",
9701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.max_speed_hz = 3125000,     /* max spi clock (SCK) speed in HZ */
971c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.bus_num = 0,
9727ba80063e90302287625a105c546c2fc318fcfbfBarry Song		.chip_select = 4,
973d40bd71f88e7be193ce4feb4b92572c70024b9c2Barry Song		.platform_data = "ad1836", /* only includes chip name for the moment */
9748312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song		.mode = SPI_MODE_3,
9751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
9761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
977d4b834c13940b5433d16ae3605794b3d74804348Barry Song
97857084ede395bb3c9da7905701d34a3b7d33c9356Bob Liu#ifdef CONFIG_SND_SOC_AD193X_SPI
979d4b834c13940b5433d16ae3605794b3d74804348Barry Song	{
9803b82790c12f8122d3df07cc387d2d74355e54c75Barry Song		.modalias = "ad193x",
981d4b834c13940b5433d16ae3605794b3d74804348Barry Song		.max_speed_hz = 3125000,     /* max spi clock (SCK) speed in HZ */
982d4b834c13940b5433d16ae3605794b3d74804348Barry Song		.bus_num = 0,
98308a54bffaf7d5dc9391518323234ce9f9ea4be8eBarry Song		.chip_select = 5,
984d4b834c13940b5433d16ae3605794b3d74804348Barry Song		.mode = SPI_MODE_3,
985d4b834c13940b5433d16ae3605794b3d74804348Barry Song	},
986d4b834c13940b5433d16ae3605794b3d74804348Barry Song#endif
987d4b834c13940b5433d16ae3605794b3d74804348Barry Song
988080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen#if defined(CONFIG_SND_SOC_ADAV80X) || defined(CONFIG_SND_SOC_ADV80X_MODULE)
989a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li	{
990080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen		.modalias = "adav801",
991a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li		.max_speed_hz = 3125000,     /* max spi clock (SCK) speed in HZ */
992a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li		.bus_num = 0,
993a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li		.chip_select = 1,
994a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li		.mode = SPI_MODE_3,
995a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li	},
996a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li#endif
997a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li
9985b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger#if defined(CONFIG_INPUT_AD714X_SPI) || defined(CONFIG_INPUT_AD714X_SPI_MODULE)
999427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
1000427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.modalias = "ad714x_captouch",
1001427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
1002427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.irq = IRQ_PF4,
1003427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.bus_num = 0,
1004427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.chip_select = 5,
1005427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.mode = SPI_MODE_3,
10065b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger		.platform_data = &ad7147_spi_platform_data,
1007427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
1008427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#endif
1009427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song
1010f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang#if defined(CONFIG_AD2S90) || defined(CONFIG_AD2S90_MODULE)
1011f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang	{
1012f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang		.modalias = "ad2s90",
1013f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang		.bus_num = 0,
1014f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang		.chip_select = 3,            /* change it for your board */
10156fbfa0c41878a5284156d4678dc514c92524e0b9Barry Song		.mode = SPI_MODE_3,
1016f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang		.platform_data = NULL,
1017f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang		.controller_data = &ad2s90_spi_chip_info,
1018f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang	},
1019f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang#endif
1020f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang
1021df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang#if defined(CONFIG_AD2S120X) || defined(CONFIG_AD2S120X_MODULE)
1022df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang	{
1023df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang		.modalias = "ad2s120x",
1024df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang		.bus_num = 0,
1025df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang		.chip_select = 4,            /* CS, change it for your board */
1026df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang		.platform_data = ad2s120x_platform_data,
1027df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang		.controller_data = &ad2s120x_spi_chip_info,
1028df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang	},
1029df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang#endif
1030df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang
1031848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang#if defined(CONFIG_AD2S1210) || defined(CONFIG_AD2S1210_MODULE)
1032848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	{
1033848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang		.modalias = "ad2s1210",
1034848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang		.max_speed_hz = 8192000,
1035848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang		.bus_num = 0,
1036848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang		.chip_select = 4,            /* CS, change it for your board */
1037848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang		.platform_data = ad2s1210_platform_data,
1038848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang		.controller_data = &ad2s1210_spi_chip_info,
1039848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	},
1040848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang#endif
1041848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang
10420891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_AD7314) || defined(CONFIG_AD7314_MODULE)
10430891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
10440891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "ad7314",
10450891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,
10460891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
10470891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 4,            /* CS, change it for your board */
10480891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.controller_data = &ad7314_spi_chip_info,
10490891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_1,
10500891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
10510891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
10520891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
10530891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_AD7816) || defined(CONFIG_AD7816_MODULE)
10540891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
10550891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "ad7818",
10560891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,
10570891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
10580891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 4,            /* CS, change it for your board */
10590891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = ad7816_platform_data,
10600891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.controller_data = &ad7816_spi_chip_info,
10610891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
10620891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
10630891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
10640891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
10650891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADT7310) || defined(CONFIG_ADT7310_MODULE)
10660891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
10670891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adt7310",
10680891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,
10690891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PG5,		/* CT alarm event. Line 0 */
10700891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
10710891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 4,	/* CS, change it for your board */
10720891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = adt7310_platform_data,
10730891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.controller_data = &adt7310_spi_chip_info,
10740891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
10750891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
10760891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
10770891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
10780891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_AD7298) || defined(CONFIG_AD7298_MODULE)
10790891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
10800891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "ad7298",
10810891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,
10820891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
10830891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 4,            /* CS, change it for your board */
10840891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = ad7298_platform_data,
10850891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
10860891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
10870891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
10880891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
10890891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADT7316_SPI) || defined(CONFIG_ADT7316_SPI_MODULE)
10900891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
10910891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adt7316",
10920891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,
10930891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PG5,		/* interrupt line */
10940891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
10950891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 4,	/* CS, change it for your board */
10960891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = adt7316_spi_data,
10970891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.controller_data = &adt7316_spi_chip_info,
10980891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
10990891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
11000891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
11010891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
1102f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
1103f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	{
1104f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.modalias = "mmc_spi",
1105f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.max_speed_hz = 20000000,     /* max spi clock (SCK) speed in HZ */
1106f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.bus_num = 0,
1107f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.chip_select = 4,
1108f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.platform_data = &bfin_mmc_spi_pdata,
1109f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.controller_data = &mmc_spi_chip_info,
1110f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.mode = SPI_MODE_3,
1111f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	},
1112f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#endif
11131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
11141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
11151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.modalias		= "ad7877",
11161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.platform_data		= &bfin_ad7877_ts_info,
11171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.irq			= IRQ_PF6,
11181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.max_speed_hz	= 12500000,     /* max spi clock (SCK) speed in HZ */
1119c7d4896621d42c84956911afd5f10a5d317c781aMichael Hennerich		.bus_num	= 0,
11201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.chip_select  = 1,
11211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
11221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
1123f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_AD7879_SPI) || defined(CONFIG_TOUCHSCREEN_AD7879_SPI_MODULE)
112446aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	{
112546aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.modalias = "ad7879",
112646aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.platform_data = &bfin_ad7879_ts_info,
112746aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.irq = IRQ_PF7,
112846aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.max_speed_hz = 5000000,     /* max spi clock (SCK) speed in HZ */
112946aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.bus_num = 0,
113046aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.chip_select = 1,
113146aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.mode = SPI_CPHA | SPI_CPOL,
113246aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	},
113346aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#endif
11346e668936db12550ab5a6a758f236140101e5a644Michael Hennerich#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE)
11356e668936db12550ab5a6a758f236140101e5a644Michael Hennerich	{
11366e668936db12550ab5a6a758f236140101e5a644Michael Hennerich		.modalias = "spidev",
11376e668936db12550ab5a6a758f236140101e5a644Michael Hennerich		.max_speed_hz = 3125000,     /* max spi clock (SCK) speed in HZ */
11386e668936db12550ab5a6a758f236140101e5a644Michael Hennerich		.bus_num = 0,
11396e668936db12550ab5a6a758f236140101e5a644Michael Hennerich		.chip_select = 1,
11406e668936db12550ab5a6a758f236140101e5a644Michael Hennerich	},
11416e668936db12550ab5a6a758f236140101e5a644Michael Hennerich#endif
11422043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
11432043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	{
11442043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.modalias = "bfin-lq035q1-spi",
11452043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.max_speed_hz = 20000000,     /* max spi clock (SCK) speed in HZ */
11462043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.bus_num = 0,
114746aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.chip_select = 2,
11482043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.mode = SPI_CPHA | SPI_CPOL,
11492043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	},
11502043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#endif
115185a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich#if defined(CONFIG_ENC28J60) || defined(CONFIG_ENC28J60_MODULE)
115285a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich	{
115385a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich		.modalias = "enc28j60",
115485a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich		.max_speed_hz = 20000000,     /* max spi clock (SCK) speed in HZ */
115585a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich		.irq = IRQ_PF6,
115685a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich		.bus_num = 0,
1157f9f0e3b1f7ac4e9fa822e87dd4bbb38f8c389487Barry Song		.chip_select = GPIO_PF10 + MAX_CTRL_CS,	/* GPIO controlled SSEL */
115885a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich		.controller_data = &enc28j60_spi_chip_info,
115985a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich		.mode = SPI_MODE_0,
116085a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich	},
116185a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich#endif
116257af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich#if defined(CONFIG_INPUT_ADXL34X_SPI) || defined(CONFIG_INPUT_ADXL34X_SPI_MODULE)
116357af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich	{
116457af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.modalias	= "adxl34x",
116557af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.platform_data	= &adxl34x_info,
116657af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.irq		= IRQ_PF6,
116757af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.max_speed_hz	= 5000000,    /* max spi clock (SCK) speed in HZ */
116857af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.bus_num	= 0,
116957af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.chip_select	= 2,
117057af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.mode = SPI_MODE_3,
117157af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich	},
117257af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich#endif
1173efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich#if defined(CONFIG_ADF702X) || defined(CONFIG_ADF702X_MODULE)
1174efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	{
1175efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich		.modalias = "adf702x",
1176efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich		.max_speed_hz = 16000000,     /* max spi clock (SCK) speed in HZ */
1177efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich		.bus_num = 0,
1178f9f0e3b1f7ac4e9fa822e87dd4bbb38f8c389487Barry Song		.chip_select = GPIO_PF10 + MAX_CTRL_CS,	/* GPIO controlled SSEL */
1179efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich		.platform_data = &adf7021_platform_data,
1180efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich		.mode = SPI_MODE_0,
1181efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	},
1182efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich#endif
1183fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
1184fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	{
1185fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.modalias = "ads7846",
1186fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.max_speed_hz = 2000000,     /* max spi clock (SCK) speed in HZ */
1187fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.bus_num = 0,
1188fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.irq = IRQ_PF6,
1189fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.chip_select = GPIO_PF10 + MAX_CTRL_CS,	/* GPIO controlled SSEL */
1190fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.platform_data = &ad7873_pdata,
1191fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.mode = SPI_MODE_0,
1192fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	},
1193fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich#endif
11940891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_AD7476) \
11950891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_AD7476_MODULE)
11960891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
11970891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "ad7476", /* Name of spi_driver for this device */
11980891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 6250000,     /* max spi clock (SCK) speed in HZ */
11990891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0, /* Framework bus number */
12000891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 1, /* Framework chip select. */
12010891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12020891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.controller_data = &spi_ad7476_chip_info,
12030891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
12040891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
12050891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
12060891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADE7753) \
12070891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADE7753_MODULE)
12080891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
12090891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "ade7753",
12100891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
12110891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
12120891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 1, /* CS, change it for your board */
12130891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12140891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_1,
12150891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
12160891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
12170891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADE7754) \
12180891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADE7754_MODULE)
12190891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
12200891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "ade7754",
12210891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
12220891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
12230891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 1, /* CS, change it for your board */
12240891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12250891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_1,
12260891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
12270891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
12280891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADE7758) \
12290891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADE7758_MODULE)
12300891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
12310891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "ade7758",
12320891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
12330891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
12340891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 1, /* CS, change it for your board */
12350891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12360891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_1,
12370891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
12380891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
12390891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADE7759) \
12400891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADE7759_MODULE)
12410891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
12420891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "ade7759",
12430891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
12440891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
12450891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 1, /* CS, change it for your board */
12460891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12470891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_1,
12480891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
12490891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
12500891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADE7854_SPI) \
12510891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADE7854_SPI_MODULE)
12520891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
12530891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "ade7854",
12540891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
12550891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
12560891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 1, /* CS, change it for your board */
12570891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12580891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
12590891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
12600891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
12610891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16060) \
12620891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16060_MODULE)
12630891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
12640891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16060_r",
12650891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 2900000,     /* max spi clock (SCK) speed in HZ */
12660891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
12670891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = MAX_CTRL_CS + 1, /* CS for read, change it for your board */
12680891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12690891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_0,
12700891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
12710891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
12720891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16060_w",
12730891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 2900000,     /* max spi clock (SCK) speed in HZ */
12740891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
12750891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 2, /* CS for write, change it for your board */
12760891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12770891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_1,
12780891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
12790891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
12800891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16130) \
12810891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16130_MODULE)
12820891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
12830891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16130",
12840891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
12850891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
12860891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 1, /* CS for read, change it for your board */
12870891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12880891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
12890891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
12900891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
12910891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16201) \
12920891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16201_MODULE)
12930891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
12940891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16201",
12950891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
12960891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
12970891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 5, /* CS, change it for your board */
12980891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
12990891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
13000891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PF4,
13010891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
13020891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
13030891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16203) \
13040891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16203_MODULE)
13050891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
13060891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16203",
13070891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
13080891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
13090891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 5, /* CS, change it for your board */
13100891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
13110891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
13120891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PF4,
13130891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
13140891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
13150891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16204) \
13160891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16204_MODULE)
13170891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
13180891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16204",
13190891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
13200891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
13210891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 5, /* CS, change it for your board */
13220891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
13230891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
13240891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PF4,
13250891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
13260891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
13270891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16209) \
13280891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16209_MODULE)
13290891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
13300891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16209",
13310891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
13320891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
13330891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 5, /* CS, change it for your board */
13340891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
13350891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
13360891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PF4,
13370891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
13380891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
13390891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16220) \
13400891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16220_MODULE)
13410891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
13420891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16220",
13430891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 2000000,     /* max spi clock (SCK) speed in HZ */
13440891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
13450891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 5, /* CS, change it for your board */
13460891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
13470891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
13480891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PF4,
13490891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
13500891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
13510891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16240) \
13520891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16240_MODULE)
13530891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
13540891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16240",
13550891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1500000,     /* max spi clock (SCK) speed in HZ */
13560891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
13570891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 5, /* CS, change it for your board */
13580891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
13590891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
13600891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PF4,
13610891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
13620891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
13630891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16260) \
13640891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16260_MODULE)
13650891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
13660891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16260",
13670891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1500000,     /* max spi clock (SCK) speed in HZ */
13680891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
13690891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 5, /* CS, change it for your board */
13700891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
13710891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
13720891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PF4,
13730891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
13740891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
13750891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16261) \
13760891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16261_MODULE)
13770891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
13780891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16261",
13790891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 2500000,     /* max spi clock (SCK) speed in HZ */
13800891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
13810891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 1, /* CS, change it for your board */
13820891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
13830891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
13840891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
13850891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
13860891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16300) \
13870891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16300_MODULE)
13880891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
13890891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16300",
13900891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
13910891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
13920891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 5, /* CS, change it for your board */
13930891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
13940891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
13950891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PF4,
13960891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
13970891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
13980891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16350) \
13990891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16350_MODULE)
14000891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
14010891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16364",
14020891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
14030891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
14040891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 5, /* CS, change it for your board */
14050891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
14060891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
14070891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PF4,
14080891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
14090891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
14100891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADIS16400) \
14110891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	|| defined(CONFIG_ADIS16400_MODULE)
14120891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
14130891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.modalias = "adis16400",
14140891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
14150891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.bus_num = 0,
14160891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.chip_select = 1, /* CS, change it for your board */
14170891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = NULL, /* No spi_driver specific config */
14180891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.mode = SPI_MODE_3,
14190891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
14200891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
14211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
14221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
14237d157fb02bc3f4dc74e6830725864ba501d92da7Sonic Zhang#if defined(CONFIG_SPI_BFIN5XX) || defined(CONFIG_SPI_BFIN5XX_MODULE)
14241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* SPI controller data */
1425c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct bfin5xx_spi_master bfin_spi0_info = {
1426f9f0e3b1f7ac4e9fa822e87dd4bbb38f8c389487Barry Song	.num_chipselect = MAX_CTRL_CS + MAX_BLACKFIN_GPIOS,
14271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.enable_dma = 1,  /* master has the ability to do dma transfer */
14285d448dd50712ae42f8176b5bb8db4703bef6f0f5Bryan Wu	.pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
14291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
14301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1431c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu/* SPI (0) */
1432c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct resource bfin_spi0_resource[] = {
1433c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	[0] = {
1434c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = SPI0_REGBASE,
1435c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end   = SPI0_REGBASE + 0xFF,
1436c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_MEM,
1437c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		},
1438c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	[1] = {
1439c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = CH_SPI,
1440c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end   = CH_SPI,
1441e68d1ebc30e033612bb69f949da654d72beae57dYi Li		.flags = IORESOURCE_DMA,
1442e68d1ebc30e033612bb69f949da654d72beae57dYi Li	},
1443e68d1ebc30e033612bb69f949da654d72beae57dYi Li	[2] = {
1444e68d1ebc30e033612bb69f949da654d72beae57dYi Li		.start = IRQ_SPI,
1445e68d1ebc30e033612bb69f949da654d72beae57dYi Li		.end   = IRQ_SPI,
1446c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_IRQ,
1447c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	},
1448c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu};
1449c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
1450c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct platform_device bfin_spi0_device = {
1451c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.name = "bfin-spi",
1452c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.id = 0, /* Bus number */
1453c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.num_resources = ARRAY_SIZE(bfin_spi0_resource),
1454c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.resource = bfin_spi0_resource,
14551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.dev = {
1456c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.platform_data = &bfin_spi0_info, /* Passed to driver */
14571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
14581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
14591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif  /* spi master and devices */
14601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
14611e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai#if defined(CONFIG_SPI_BFIN_SPORT) || defined(CONFIG_SPI_BFIN_SPORT_MODULE)
14621e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
14631e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai/* SPORT SPI controller data */
14641e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct bfin5xx_spi_master bfin_sport_spi0_info = {
14658ded9709a171a52199c5ac64912c52f7290870a0Scott Jiang	.num_chipselect = MAX_BLACKFIN_GPIOS,
14661e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.enable_dma = 0,  /* master don't support DMA */
14671e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.pin_req = {P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_DRPRI,
14681e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		P_SPORT0_RSCLK, P_SPORT0_TFS, P_SPORT0_RFS, 0},
14691e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai};
14701e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
14711e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct resource bfin_sport_spi0_resource[] = {
14721e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	[0] = {
14731e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.start = SPORT0_TCR1,
14741e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.end   = SPORT0_TCR1 + 0xFF,
14751e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.flags = IORESOURCE_MEM,
14761e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		},
14771e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	[1] = {
14781e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.start = IRQ_SPORT0_ERROR,
14791e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.end   = IRQ_SPORT0_ERROR,
14801e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.flags = IORESOURCE_IRQ,
14811e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		},
14821e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai};
14831e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
14841e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct platform_device bfin_sport_spi0_device = {
14851e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.name = "bfin-sport-spi",
14861e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.id = 1, /* Bus number */
14871e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.num_resources = ARRAY_SIZE(bfin_sport_spi0_resource),
14881e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.resource = bfin_sport_spi0_resource,
14891e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.dev = {
14901e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.platform_data = &bfin_sport_spi0_info, /* Passed to driver */
14911e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	},
14921e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai};
14931e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
14941e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct bfin5xx_spi_master bfin_sport_spi1_info = {
14958ded9709a171a52199c5ac64912c52f7290870a0Scott Jiang	.num_chipselect = MAX_BLACKFIN_GPIOS,
14961e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.enable_dma = 0,  /* master don't support DMA */
14971e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.pin_req = {P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_DRPRI,
14981e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		P_SPORT1_RSCLK, P_SPORT1_TFS, P_SPORT1_RFS, 0},
14991e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai};
15001e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
15011e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct resource bfin_sport_spi1_resource[] = {
15021e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	[0] = {
15031e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.start = SPORT1_TCR1,
15041e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.end   = SPORT1_TCR1 + 0xFF,
15051e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.flags = IORESOURCE_MEM,
15061e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		},
15071e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	[1] = {
15081e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.start = IRQ_SPORT1_ERROR,
15091e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.end   = IRQ_SPORT1_ERROR,
15101e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.flags = IORESOURCE_IRQ,
15111e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		},
15121e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai};
15131e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
15141e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct platform_device bfin_sport_spi1_device = {
15151e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.name = "bfin-sport-spi",
15161e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.id = 2, /* Bus number */
15171e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.num_resources = ARRAY_SIZE(bfin_sport_spi1_resource),
15181e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.resource = bfin_sport_spi1_resource,
15191e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.dev = {
15201e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.platform_data = &bfin_sport_spi1_info, /* Passed to driver */
15211e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	},
15221e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai};
15231e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
15241e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai#endif  /* sport spi master and devices */
15251e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
15261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_FB_BF537_LQ035) || defined(CONFIG_FB_BF537_LQ035_MODULE)
15271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_fb_device = {
1528c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.name = "bf537-lq035",
1529c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu};
1530c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif
1531c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
15322043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
15332043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#include <asm/bfin-lq035q1.h>
15342043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich
15352043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerichstatic struct bfin_lq035q1fb_disp_info bfin_lq035q1_data = {
1536d94a1aa44ed6bfe8d8ab36c02de652d4fcf0d2c3Michael Hennerich	.mode = LQ035_NORM | LQ035_RGB | LQ035_RL | LQ035_TB,
1537d94a1aa44ed6bfe8d8ab36c02de652d4fcf0d2c3Michael Hennerich	.ppi_mode = USE_RGB565_16_BIT_PPI,
1538d94a1aa44ed6bfe8d8ab36c02de652d4fcf0d2c3Michael Hennerich	.use_bl = 0,	/* let something else control the LCD Blacklight */
1539d94a1aa44ed6bfe8d8ab36c02de652d4fcf0d2c3Michael Hennerich	.gpio_bl = GPIO_PF7,
15402043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich};
15412043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich
15422043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerichstatic struct resource bfin_lq035q1_resources[] = {
15432043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	{
15442043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.start = IRQ_PPI_ERROR,
15452043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.end = IRQ_PPI_ERROR,
15462043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.flags = IORESOURCE_IRQ,
15472043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	},
15482043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich};
15492043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich
15502043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerichstatic struct platform_device bfin_lq035q1_device = {
15512043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	.name		= "bfin-lq035q1",
15522043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	.id		= -1,
1553d94a1aa44ed6bfe8d8ab36c02de652d4fcf0d2c3Michael Hennerich	.num_resources	= ARRAY_SIZE(bfin_lq035q1_resources),
1554d94a1aa44ed6bfe8d8ab36c02de652d4fcf0d2c3Michael Hennerich	.resource	= bfin_lq035q1_resources,
15552043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	.dev		= {
15562043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.platform_data = &bfin_lq035q1_data,
15572043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	},
15582043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich};
15592043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#endif
15602043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich
1561bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu#if defined(CONFIG_VIDEO_BLACKFIN_CAPTURE) \
1562bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	|| defined(CONFIG_VIDEO_BLACKFIN_CAPTURE_MODULE)
1563bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu#include <linux/videodev2.h>
1564bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu#include <media/blackfin/bfin_capture.h>
1565bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu#include <media/blackfin/ppi.h>
1566bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu
1567bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liustatic const unsigned short ppi_req[] = {
1568bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	P_PPI0_D0, P_PPI0_D1, P_PPI0_D2, P_PPI0_D3,
1569bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	P_PPI0_D4, P_PPI0_D5, P_PPI0_D6, P_PPI0_D7,
1570bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	P_PPI0_CLK, P_PPI0_FS1, P_PPI0_FS2,
1571bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	0,
1572bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu};
1573bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu
1574bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liustatic const struct ppi_info ppi_info = {
1575bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	.type = PPI_TYPE_PPI,
1576bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	.dma_ch = CH_PPI,
1577bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	.irq_err = IRQ_PPI_ERROR,
1578bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	.base = (void __iomem *)PPI_CONTROL,
1579bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	.pin_req = ppi_req,
1580bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu};
1581bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu
1582bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu#if defined(CONFIG_VIDEO_VS6624) \
1583bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	|| defined(CONFIG_VIDEO_VS6624_MODULE)
1584bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liustatic struct v4l2_input vs6624_inputs[] = {
1585bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	{
1586bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu		.index = 0,
1587bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu		.name = "Camera",
1588bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu		.type = V4L2_INPUT_TYPE_CAMERA,
1589bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu		.std = V4L2_STD_UNKNOWN,
1590bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	},
1591bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu};
1592bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu
1593bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liustatic struct bcap_route vs6624_routes[] = {
1594bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	{
1595bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu		.input = 0,
1596bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu		.output = 0,
1597bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	},
1598bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu};
1599bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu
1600bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liustatic const unsigned vs6624_ce_pin = GPIO_PF10;
1601bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu
1602bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liustatic struct bfin_capture_config bfin_capture_data = {
1603bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	.card_name = "BF537",
1604bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	.inputs = vs6624_inputs,
1605bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	.num_inputs = ARRAY_SIZE(vs6624_inputs),
1606bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	.routes = vs6624_routes,
1607bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	.i2c_adapter_id = 0,
1608bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	.board_info = {
1609bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu		.type = "vs6624",
1610bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu		.addr = 0x10,
1611bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu		.platform_data = (void *)&vs6624_ce_pin,
1612bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	},
1613bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	.ppi_info = &ppi_info,
1614bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	.ppi_control = (PACK_EN | DLEN_8 | XFR_TYPE | 0x0020),
1615bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu};
1616bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu#endif
1617bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu
1618bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liustatic struct platform_device bfin_capture_device = {
1619bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	.name = "bfin_capture",
1620bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	.dev = {
1621bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu		.platform_data = &bfin_capture_data,
1622bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	},
1623bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu};
1624bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu#endif
1625bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu
16261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
1627233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART0
16286bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhangstatic struct resource bfin_uart0_resources[] = {
16291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
16306bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = UART0_THR,
16316bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = UART0_GCTL+2,
16321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
1633233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang	},
16346bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
1635edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang		.start = IRQ_UART0_TX,
1636edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang		.end = IRQ_UART0_TX,
1637edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang		.flags = IORESOURCE_IRQ,
1638edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang	},
1639edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang	{
16406bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = IRQ_UART0_RX,
1641edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang		.end = IRQ_UART0_RX,
16426bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_IRQ,
16436bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
16446bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
16456bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = IRQ_UART0_ERROR,
16466bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = IRQ_UART0_ERROR,
16476bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_IRQ,
16486bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
16496bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
16506bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = CH_UART0_TX,
16516bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = CH_UART0_TX,
16526bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_DMA,
16536bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
16546bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
16556bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = CH_UART0_RX,
16566bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = CH_UART0_RX,
16576bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_DMA,
16586bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
16596bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#ifdef CONFIG_BFIN_UART0_CTSRTS
16606bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{	/* CTS pin */
16616bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = GPIO_PG7,
16626bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = GPIO_PG7,
16636bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_IO,
16646bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
16656bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{	/* RTS pin */
16666bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = GPIO_PG6,
16676bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = GPIO_PG6,
16686bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_IO,
16696bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
16706bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#endif
16716bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang};
16726bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang
1673a8b19886097032df38bd521cece4bc538fee2266Mike Frysingerstatic unsigned short bfin_uart0_peripherals[] = {
16746bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	P_UART0_TX, P_UART0_RX, 0
16756bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang};
16766bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang
16776bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhangstatic struct platform_device bfin_uart0_device = {
16786bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.name = "bfin-uart",
16796bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.id = 0,
16806bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.num_resources = ARRAY_SIZE(bfin_uart0_resources),
16816bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.resource = bfin_uart0_resources,
16826bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.dev = {
16836bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.platform_data = &bfin_uart0_peripherals, /* Passed to driver */
16846bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
16856bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang};
1686233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang#endif
1687233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART1
16886bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhangstatic struct resource bfin_uart1_resources[] = {
1689233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang	{
16906bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = UART1_THR,
16916bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = UART1_GCTL+2,
16921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
16931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
16946bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
1695edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang		.start = IRQ_UART1_TX,
1696edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang		.end = IRQ_UART1_TX,
1697edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang		.flags = IORESOURCE_IRQ,
1698edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang	},
1699edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang	{
17006bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = IRQ_UART1_RX,
1701edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang		.end = IRQ_UART1_RX,
17026bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_IRQ,
17036bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
17046bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
17056bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = IRQ_UART1_ERROR,
17066bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = IRQ_UART1_ERROR,
17076bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_IRQ,
17086bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
17096bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
17106bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = CH_UART1_TX,
17116bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = CH_UART1_TX,
17126bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_DMA,
17136bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
17146bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
17156bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = CH_UART1_RX,
17166bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = CH_UART1_RX,
17176bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_DMA,
17186bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
17196bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang};
17206bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang
1721a8b19886097032df38bd521cece4bc538fee2266Mike Frysingerstatic unsigned short bfin_uart1_peripherals[] = {
17226bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	P_UART1_TX, P_UART1_RX, 0
17231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
17241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
17256bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhangstatic struct platform_device bfin_uart1_device = {
17261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "bfin-uart",
17271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = 1,
17286bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.num_resources = ARRAY_SIZE(bfin_uart1_resources),
17296bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.resource = bfin_uart1_resources,
17306bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.dev = {
17316bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.platform_data = &bfin_uart1_peripherals, /* Passed to driver */
17326bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
17331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
17341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
17356bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#endif
17361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
17375be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
17385be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#ifdef CONFIG_BFIN_SIR0
173942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct resource bfin_sir0_resources[] = {
17405be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang	{
17415be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang		.start = 0xFFC00400,
17425be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang		.end = 0xFFC004FF,
17435be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang		.flags = IORESOURCE_MEM,
17445be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang	},
174542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	{
174642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.start = IRQ_UART0_RX,
174742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.end = IRQ_UART0_RX+1,
174842bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.flags = IORESOURCE_IRQ,
174942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	},
175042bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	{
175142bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.start = CH_UART0_RX,
175242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.end = CH_UART0_RX+1,
175342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.flags = IORESOURCE_DMA,
175442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	},
175542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang};
175642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang
175742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct platform_device bfin_sir0_device = {
175842bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.name = "bfin_sir",
175942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.id = 0,
176042bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.num_resources = ARRAY_SIZE(bfin_sir0_resources),
176142bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.resource = bfin_sir0_resources,
176242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang};
17635be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#endif
17645be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#ifdef CONFIG_BFIN_SIR1
176542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct resource bfin_sir1_resources[] = {
17665be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang	{
17675be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang		.start = 0xFFC02000,
17685be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang		.end = 0xFFC020FF,
17695be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang		.flags = IORESOURCE_MEM,
17705be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang	},
177142bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	{
177242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.start = IRQ_UART1_RX,
177342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.end = IRQ_UART1_RX+1,
177442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.flags = IORESOURCE_IRQ,
177542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	},
177642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	{
177742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.start = CH_UART1_RX,
177842bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.end = CH_UART1_RX+1,
177942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.flags = IORESOURCE_DMA,
178042bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	},
17815be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang};
17825be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang
178342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct platform_device bfin_sir1_device = {
17845be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang	.name = "bfin_sir",
178542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.id = 1,
178642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.num_resources = ARRAY_SIZE(bfin_sir1_resources),
178742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.resource = bfin_sir1_resources,
17885be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang};
17895be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#endif
179042bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#endif
17915be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang
17921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
1793c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct resource bfin_twi0_resource[] = {
1794c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	[0] = {
1795c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = TWI0_REGBASE,
1796c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end   = TWI0_REGBASE,
1797c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_MEM,
1798c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	},
1799c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	[1] = {
1800c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = IRQ_TWI,
1801c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end   = IRQ_TWI,
1802c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_IRQ,
1803c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	},
1804c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu};
1805c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
18061394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device i2c_bfin_twi_device = {
18071394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "i2c-bfin-twi",
18081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = 0,
1809c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.num_resources = ARRAY_SIZE(bfin_twi0_resource),
1810c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.resource = bfin_twi0_resource,
18111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
18121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
18131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
181451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich#if defined(CONFIG_KEYBOARD_ADP5588) || defined(CONFIG_KEYBOARD_ADP5588_MODULE)
181551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerichstatic const unsigned short adp5588_keymap[ADP5588_KEYMAPSIZE] = {
181651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[0]	 = KEY_GRAVE,
181751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[1]	 = KEY_1,
181851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[2]	 = KEY_2,
181951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[3]	 = KEY_3,
182051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[4]	 = KEY_4,
182151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[5]	 = KEY_5,
182251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[6]	 = KEY_6,
182351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[7]	 = KEY_7,
182451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[8]	 = KEY_8,
182551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[9]	 = KEY_9,
182651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[10]	 = KEY_0,
182751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[11]	 = KEY_MINUS,
182851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[12]	 = KEY_EQUAL,
182951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[13]	 = KEY_BACKSLASH,
183051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[15]	 = KEY_KP0,
183151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[16]	 = KEY_Q,
183251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[17]	 = KEY_W,
183351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[18]	 = KEY_E,
183451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[19]	 = KEY_R,
183551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[20]	 = KEY_T,
183651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[21]	 = KEY_Y,
183751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[22]	 = KEY_U,
183851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[23]	 = KEY_I,
183951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[24]	 = KEY_O,
184051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[25]	 = KEY_P,
184151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[26]	 = KEY_LEFTBRACE,
184251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[27]	 = KEY_RIGHTBRACE,
184351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[29]	 = KEY_KP1,
184451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[30]	 = KEY_KP2,
184551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[31]	 = KEY_KP3,
184651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[32]	 = KEY_A,
184751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[33]	 = KEY_S,
184851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[34]	 = KEY_D,
184951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[35]	 = KEY_F,
185051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[36]	 = KEY_G,
185151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[37]	 = KEY_H,
185251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[38]	 = KEY_J,
185351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[39]	 = KEY_K,
185451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[40]	 = KEY_L,
185551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[41]	 = KEY_SEMICOLON,
185651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[42]	 = KEY_APOSTROPHE,
185751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[43]	 = KEY_BACKSLASH,
185851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[45]	 = KEY_KP4,
185951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[46]	 = KEY_KP5,
186051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[47]	 = KEY_KP6,
186151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[48]	 = KEY_102ND,
186251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[49]	 = KEY_Z,
186351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[50]	 = KEY_X,
186451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[51]	 = KEY_C,
186551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[52]	 = KEY_V,
186651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[53]	 = KEY_B,
186751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[54]	 = KEY_N,
186851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[55]	 = KEY_M,
186951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[56]	 = KEY_COMMA,
187051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[57]	 = KEY_DOT,
187151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[58]	 = KEY_SLASH,
187251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[60]	 = KEY_KPDOT,
187351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[61]	 = KEY_KP7,
187451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[62]	 = KEY_KP8,
187551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[63]	 = KEY_KP9,
187651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[64]	 = KEY_SPACE,
187751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[65]	 = KEY_BACKSPACE,
187851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[66]	 = KEY_TAB,
187951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[67]	 = KEY_KPENTER,
188051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[68]	 = KEY_ENTER,
188151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[69]	 = KEY_ESC,
188251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[70]	 = KEY_DELETE,
188351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[74]	 = KEY_KPMINUS,
188451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[76]	 = KEY_UP,
188551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[77]	 = KEY_DOWN,
188651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[78]	 = KEY_RIGHT,
188751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[79]	 = KEY_LEFT,
188851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich};
188951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich
189051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerichstatic struct adp5588_kpad_platform_data adp5588_kpad_data = {
189151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	.rows		= 8,
189251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	.cols		= 10,
189351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	.keymap		= adp5588_keymap,
189451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	.keymapsize	= ARRAY_SIZE(adp5588_keymap),
189551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	.repeat		= 0,
189651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich};
189751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich#endif
189851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich
18993ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#if defined(CONFIG_PMIC_ADP5520) || defined(CONFIG_PMIC_ADP5520_MODULE)
19003ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#include <linux/mfd/adp5520.h>
19013ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
19023ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	/*
19033ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 *  ADP5520/5501 Backlight Data
19043ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 */
19053ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
19061d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerichstatic struct adp5520_backlight_platform_data adp5520_backlight_data = {
19071d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.fade_in		= ADP5520_FADE_T_1200ms,
19081d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.fade_out		= ADP5520_FADE_T_1200ms,
19091d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.fade_led_law		= ADP5520_BL_LAW_LINEAR,
19101d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.en_ambl_sens		= 1,
19111d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.abml_filt		= ADP5520_BL_AMBL_FILT_640ms,
19121d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l1_daylight_max	= ADP5520_BL_CUR_mA(15),
19131d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l1_daylight_dim	= ADP5520_BL_CUR_mA(0),
19141d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l2_office_max		= ADP5520_BL_CUR_mA(7),
19151d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l2_office_dim		= ADP5520_BL_CUR_mA(0),
19161d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l3_dark_max		= ADP5520_BL_CUR_mA(3),
19171d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l3_dark_dim		= ADP5520_BL_CUR_mA(0),
19181d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l2_trip		= ADP5520_L2_COMP_CURR_uA(700),
19191d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l2_hyst		= ADP5520_L2_COMP_CURR_uA(50),
19201d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l3_trip		= ADP5520_L3_COMP_CURR_uA(80),
19211d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l3_hyst		= ADP5520_L3_COMP_CURR_uA(20),
19223ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich};
19233ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
19243ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	/*
19253ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 *  ADP5520/5501 LEDs Data
19263ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 */
19273ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
19283ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerichstatic struct led_info adp5520_leds[] = {
19293ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	{
19303ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.name = "adp5520-led1",
19313ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.default_trigger = "none",
19321d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich		.flags = FLAG_ID_ADP5520_LED1_ADP5501_LED0 | ADP5520_LED_OFFT_600ms,
19333ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	},
19343ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#ifdef ADP5520_EN_ALL_LEDS
19353ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	{
19363ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.name = "adp5520-led2",
19373ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.default_trigger = "none",
19383ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.flags = FLAG_ID_ADP5520_LED2_ADP5501_LED1,
19393ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	},
19403ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	{
19413ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.name = "adp5520-led3",
19423ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.default_trigger = "none",
19433ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.flags = FLAG_ID_ADP5520_LED3_ADP5501_LED2,
19443ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	},
19453ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#endif
19463ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich};
19473ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
19481d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerichstatic struct adp5520_leds_platform_data adp5520_leds_data = {
19493ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	.num_leds = ARRAY_SIZE(adp5520_leds),
19503ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	.leds = adp5520_leds,
19511d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.fade_in = ADP5520_FADE_T_600ms,
19521d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.fade_out = ADP5520_FADE_T_600ms,
19531d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.led_on_time = ADP5520_LED_ONT_600ms,
19543ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich};
19553ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
19563ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	/*
19573ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 *  ADP5520 GPIO Data
19583ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 */
19593ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
19601d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerichstatic struct adp5520_gpio_platform_data adp5520_gpio_data = {
19613ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	.gpio_start = 50,
19621d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.gpio_en_mask = ADP5520_GPIO_C1 | ADP5520_GPIO_C2 | ADP5520_GPIO_R2,
19631d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.gpio_pullup_mask = ADP5520_GPIO_C1 | ADP5520_GPIO_C2 | ADP5520_GPIO_R2,
19643ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich};
19653ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
19663ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	/*
19673ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 *  ADP5520 Keypad Data
19683ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 */
19693ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
19703ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerichstatic const unsigned short adp5520_keymap[ADP5520_KEYMAPSIZE] = {
19711d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(0, 0)]	= KEY_GRAVE,
19721d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(0, 1)]	= KEY_1,
19731d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(0, 2)]	= KEY_2,
19741d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(0, 3)]	= KEY_3,
19751d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(1, 0)]	= KEY_4,
19761d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(1, 1)]	= KEY_5,
19771d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(1, 2)]	= KEY_6,
19781d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(1, 3)]	= KEY_7,
19791d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(2, 0)]	= KEY_8,
19801d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(2, 1)]	= KEY_9,
19811d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(2, 2)]	= KEY_0,
19821d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(2, 3)]	= KEY_MINUS,
19831d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(3, 0)]	= KEY_EQUAL,
19841d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(3, 1)]	= KEY_BACKSLASH,
19851d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(3, 2)]	= KEY_BACKSPACE,
19861d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(3, 3)]	= KEY_ENTER,
19871d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich};
19881d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich
19891d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerichstatic struct adp5520_keys_platform_data adp5520_keys_data = {
19901d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.rows_en_mask	= ADP5520_ROW_R3 | ADP5520_ROW_R2 | ADP5520_ROW_R1 | ADP5520_ROW_R0,
19911d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.cols_en_mask	= ADP5520_COL_C3 | ADP5520_COL_C2 | ADP5520_COL_C1 | ADP5520_COL_C0,
19923ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	.keymap		= adp5520_keymap,
19933ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	.keymapsize	= ARRAY_SIZE(adp5520_keymap),
19943ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	.repeat		= 0,
19953ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich};
19963ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
19973ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	/*
1998eef35c2d41ddcc653c20d26b977acaa45c811e1fStefan Weil	 *  ADP5520/5501 Multifunction Device Init Data
19993ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 */
20003ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
20013ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerichstatic struct adp5520_platform_data adp5520_pdev_data = {
20021d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.backlight = &adp5520_backlight_data,
20031d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.leds = &adp5520_leds_data,
20041d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.gpio = &adp5520_gpio_data,
20051d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.keys = &adp5520_keys_data,
20063ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich};
20073ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
20083ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#endif
20093ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
2010ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich#if defined(CONFIG_GPIO_ADP5588) || defined(CONFIG_GPIO_ADP5588_MODULE)
20111d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerichstatic struct adp5588_gpio_platform_data adp5588_gpio_data = {
2012ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich	.gpio_start = 50,
2013ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich	.pullup_dis_mask = 0,
2014ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich};
2015ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich#endif
2016ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich
201778756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#if defined(CONFIG_BACKLIGHT_ADP8870) || defined(CONFIG_BACKLIGHT_ADP8870_MODULE)
201878756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#include <linux/i2c/adp8870.h>
201978756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerichstatic struct led_info adp8870_leds[] = {
202078756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	{
202178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich		.name = "adp8870-led7",
202278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich		.default_trigger = "none",
202378756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich		.flags = ADP8870_LED_D7 | ADP8870_LED_OFFT_600ms,
202478756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	},
202578756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich};
202678756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
202778756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
202878756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerichstatic struct adp8870_backlight_platform_data adp8870_pdata = {
202978756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.bl_led_assign = ADP8870_BL_D1 | ADP8870_BL_D2 | ADP8870_BL_D3 |
203078756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich			 ADP8870_BL_D4 | ADP8870_BL_D5 | ADP8870_BL_D6,	/* 1 = Backlight 0 = Individual LED */
203178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.pwm_assign = 0,				/* 1 = Enables PWM mode */
203278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
203378756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.bl_fade_in = ADP8870_FADE_T_1200ms,		/* Backlight Fade-In Timer */
203478756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.bl_fade_out = ADP8870_FADE_T_1200ms,		/* Backlight Fade-Out Timer */
203578756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.bl_fade_law = ADP8870_FADE_LAW_CUBIC1,		/* fade-on/fade-off transfer characteristic */
203678756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
203778756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.en_ambl_sens = 1,				/* 1 = enable ambient light sensor */
203878756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.abml_filt = ADP8870_BL_AMBL_FILT_320ms,	/* Light sensor filter time */
203978756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
204078756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l1_daylight_max = ADP8870_BL_CUR_mA(20),	/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
204178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l1_daylight_dim = ADP8870_BL_CUR_mA(0),	/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
204278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l2_bright_max = ADP8870_BL_CUR_mA(14),		/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
204378756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l2_bright_dim = ADP8870_BL_CUR_mA(0),		/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
204478756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l3_office_max = ADP8870_BL_CUR_mA(6),		/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
204578756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l3_office_dim = ADP8870_BL_CUR_mA(0),		/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
204678756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l4_indoor_max = ADP8870_BL_CUR_mA(3),		/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
204778756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l4_indor_dim = ADP8870_BL_CUR_mA(0),		/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
204878756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l5_dark_max = ADP8870_BL_CUR_mA(2),		/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
204978756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l5_dark_dim = ADP8870_BL_CUR_mA(0),		/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
205078756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
205178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l2_trip = ADP8870_L2_COMP_CURR_uA(710),	/* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
205278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l2_hyst = ADP8870_L2_COMP_CURR_uA(73),		/* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
205378756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l3_trip = ADP8870_L3_COMP_CURR_uA(389),	/* use L3_COMP_CURR_uA(I) 0 <= I <= 551 uA */
205478756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l3_hyst = ADP8870_L3_COMP_CURR_uA(54),		/* use L3_COMP_CURR_uA(I) 0 <= I <= 551 uA */
205578756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l4_trip = ADP8870_L4_COMP_CURR_uA(167),	/* use L4_COMP_CURR_uA(I) 0 <= I <= 275 uA */
205678756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l4_hyst = ADP8870_L4_COMP_CURR_uA(16),		/* use L4_COMP_CURR_uA(I) 0 <= I <= 275 uA */
205778756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l5_trip = ADP8870_L5_COMP_CURR_uA(43),		/* use L5_COMP_CURR_uA(I) 0 <= I <= 138 uA */
205878756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l5_hyst = ADP8870_L5_COMP_CURR_uA(11),		/* use L6_COMP_CURR_uA(I) 0 <= I <= 138 uA */
205978756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
206078756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.leds = adp8870_leds,
206178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.num_leds = ARRAY_SIZE(adp8870_leds),
206278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.led_fade_law = ADP8870_FADE_LAW_SQUARE,	/* fade-on/fade-off transfer characteristic */
206378756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.led_fade_in = ADP8870_FADE_T_600ms,
206478756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.led_fade_out = ADP8870_FADE_T_600ms,
206578756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.led_on_time = ADP8870_LED_ONT_200ms,
206678756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich};
206778756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#endif
206878756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
206972fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich#if defined(CONFIG_BACKLIGHT_ADP8860) || defined(CONFIG_BACKLIGHT_ADP8860_MODULE)
207072fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich#include <linux/i2c/adp8860.h>
207172fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerichstatic struct led_info adp8860_leds[] = {
207272fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	{
207372fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich		.name = "adp8860-led7",
207472fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich		.default_trigger = "none",
207572fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich		.flags = ADP8860_LED_D7 | ADP8860_LED_OFFT_600ms,
207672fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	},
207772fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich};
207872fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
207972fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerichstatic struct adp8860_backlight_platform_data adp8860_pdata = {
208072fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.bl_led_assign = ADP8860_BL_D1 | ADP8860_BL_D2 | ADP8860_BL_D3 |
208172fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich			 ADP8860_BL_D4 | ADP8860_BL_D5 | ADP8860_BL_D6,	/* 1 = Backlight 0 = Individual LED */
208272fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
208372fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.bl_fade_in = ADP8860_FADE_T_1200ms,		/* Backlight Fade-In Timer */
208472fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.bl_fade_out = ADP8860_FADE_T_1200ms,		/* Backlight Fade-Out Timer */
208572fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.bl_fade_law = ADP8860_FADE_LAW_CUBIC1,		/* fade-on/fade-off transfer characteristic */
208672fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
208772fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.en_ambl_sens = 1,				/* 1 = enable ambient light sensor */
208872fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.abml_filt = ADP8860_BL_AMBL_FILT_320ms,	/* Light sensor filter time */
208972fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
209072fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l1_daylight_max = ADP8860_BL_CUR_mA(20),	/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
209172fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l1_daylight_dim = ADP8860_BL_CUR_mA(0),	/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
209272fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l2_office_max = ADP8860_BL_CUR_mA(6),		/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
209372fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l2_office_dim = ADP8860_BL_CUR_mA(0),		/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
209472fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l3_dark_max = ADP8860_BL_CUR_mA(2),		/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
209572fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l3_dark_dim = ADP8860_BL_CUR_mA(0),		/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
209672fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
209772fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l2_trip = ADP8860_L2_COMP_CURR_uA(710),	/* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
209872fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l2_hyst = ADP8860_L2_COMP_CURR_uA(73),		/* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
209972fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l3_trip = ADP8860_L3_COMP_CURR_uA(43),		/* use L3_COMP_CURR_uA(I) 0 <= I <= 138 uA */
210072fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l3_hyst = ADP8860_L3_COMP_CURR_uA(11),		/* use L3_COMP_CURR_uA(I) 0 <= I <= 138 uA */
210172fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
210272fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.leds = adp8860_leds,
210372fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.num_leds = ARRAY_SIZE(adp8860_leds),
210472fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.led_fade_law = ADP8860_FADE_LAW_SQUARE,	/* fade-on/fade-off transfer characteristic */
210572fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.led_fade_in = ADP8860_FADE_T_600ms,
210672fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.led_fade_out = ADP8860_FADE_T_600ms,
210772fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.led_on_time = ADP8860_LED_ONT_200ms,
210872fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich};
210972fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich#endif
211072fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
2111f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_AD5398) || defined(CONFIG_REGULATOR_AD5398_MODULE)
2112f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhangstatic struct regulator_consumer_supply ad5398_consumer = {
2113f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.supply = "current",
2114f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang};
2115f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang
2116f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhangstatic struct regulator_init_data ad5398_regulator_data = {
2117f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.constraints = {
2118f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang		.name = "current range",
2119f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang		.max_uA = 120000,
2120f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang		.valid_ops_mask = REGULATOR_CHANGE_CURRENT | REGULATOR_CHANGE_STATUS,
2121f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	},
2122f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.num_consumer_supplies = 1,
2123f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.consumer_supplies     = &ad5398_consumer,
2124f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang};
2125f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang
2126f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_VIRTUAL_CONSUMER) || \
2127f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	defined(CONFIG_REGULATOR_VIRTUAL_CONSUMER_MODULE)
2128f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhangstatic struct platform_device ad5398_virt_consumer_device = {
2129f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.name = "reg-virt-consumer",
2130f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.id = 0,
2131f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.dev = {
2132f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang		.platform_data = "current", /* Passed to driver */
2133f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	},
2134f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang};
2135f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
2136f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_USERSPACE_CONSUMER) || \
2137f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	defined(CONFIG_REGULATOR_USERSPACE_CONSUMER_MODULE)
2138f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhangstatic struct regulator_bulk_data ad5398_bulk_data = {
2139f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.supply = "current",
2140f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang};
2141f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang
2142f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhangstatic struct regulator_userspace_consumer_data ad5398_userspace_comsumer_data = {
2143f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.name = "ad5398",
2144f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.num_supplies = 1,
2145f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.supplies = &ad5398_bulk_data,
2146f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang};
2147f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang
2148f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhangstatic struct platform_device ad5398_userspace_consumer_device = {
2149f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.name = "reg-userspace-consumer",
2150f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.id = 0,
2151f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.dev = {
2152f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang		.platform_data = &ad5398_userspace_comsumer_data,
2153f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	},
2154f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang};
2155f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
2156f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
2157f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang
21580891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADT7410) || defined(CONFIG_ADT7410_MODULE)
21590891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich/* INT bound temperature alarm event. line 1 */
21600891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic unsigned long adt7410_platform_data[2] = {
21610891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	IRQ_PG4, IRQF_TRIGGER_LOW,
21620891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
21630891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
21640891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
21650891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADT7316_I2C) || defined(CONFIG_ADT7316_I2C_MODULE)
21660891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich/* INT bound temperature alarm event. line 1 */
21670891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic unsigned long adt7316_i2c_data[2] = {
21680891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	IRQF_TRIGGER_LOW, /* interrupt flags */
21690891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	GPIO_PF4, /* ldac_pin, 0 means DAC/LDAC registers control DAC update */
21700891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
21710891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
21720891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
217381d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wustatic struct i2c_board_info __initdata bfin_i2c_board_info[] = {
217457084ede395bb3c9da7905701d34a3b7d33c9356Bob Liu#ifdef CONFIG_SND_SOC_AD193X_I2C
217592b20f7fb28e541d7f8efb4e3e8d81733aa8adfcBarry Song	{
217692b20f7fb28e541d7f8efb4e3e8d81733aa8adfcBarry Song		I2C_BOARD_INFO("ad1937", 0x04),
217792b20f7fb28e541d7f8efb4e3e8d81733aa8adfcBarry Song	},
217892b20f7fb28e541d7f8efb4e3e8d81733aa8adfcBarry Song#endif
217992b20f7fb28e541d7f8efb4e3e8d81733aa8adfcBarry Song
2180080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen#if defined(CONFIG_SND_SOC_ADAV80X) || defined(CONFIG_SND_SOC_ADAV80X_MODULE)
2181a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li	{
2182a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li		I2C_BOARD_INFO("adav803", 0x10),
2183a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li	},
2184a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li#endif
2185a65912ca57886fcfd2568e422fbc58f91b015c9eYi Li
21865b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger#if defined(CONFIG_INPUT_AD714X_I2C) || defined(CONFIG_INPUT_AD714X_I2C_MODULE)
218781d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu	{
2188427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		I2C_BOARD_INFO("ad7142_captouch", 0x2C),
21894c94c3e09adba9718218d6e3d35b2dfae81f3911Barry Song		.irq = IRQ_PG5,
21905b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger		.platform_data = (void *)&ad7142_i2c_platform_data,
219181d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu	},
219281d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu#endif
2193ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song
2194ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song#if defined(CONFIG_AD7150) || defined(CONFIG_AD7150_MODULE)
2195ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song	{
2196ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song		I2C_BOARD_INFO("ad7150", 0x48),
2197ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song		.irq = IRQ_PG5, /* fixme: use real interrupt number */
2198ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song	},
2199ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song#endif
2200ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song
2201ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song#if defined(CONFIG_AD7152) || defined(CONFIG_AD7152_MODULE)
2202ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song	{
2203ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song		I2C_BOARD_INFO("ad7152", 0x48),
2204ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song	},
2205ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song#endif
2206ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song
2207ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song#if defined(CONFIG_AD774X) || defined(CONFIG_AD774X_MODULE)
2208ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song	{
2209ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song		I2C_BOARD_INFO("ad774x", 0x48),
2210ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song	},
2211ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song#endif
2212ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song
22130891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADE7854_I2C) || defined(CONFIG_ADE7854_I2C_MODULE)
22140891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
22150891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		I2C_BOARD_INFO("ade7854", 0x38),
22160891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
22170891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
22180891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
22190891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADT75) || defined(CONFIG_ADT75_MODULE)
22200891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
22210891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		I2C_BOARD_INFO("adt75", 0x9),
22220891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PG5,
22230891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
22240891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
22250891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
22260891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADT7410) || defined(CONFIG_ADT7410_MODULE)
22270891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
22280891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		I2C_BOARD_INFO("adt7410", 0x48),
22290891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		/* CT critical temperature event. line 0 */
22300891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PG5,
22310891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = (void *)&adt7410_platform_data,
22320891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
22330891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
22340891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
22350891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_AD7291) || defined(CONFIG_AD7291_MODULE)
22360891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
22370891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		I2C_BOARD_INFO("ad7291", 0x20),
22380891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PG5,
22390891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
22400891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
22410891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
22420891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_ADT7316_I2C) || defined(CONFIG_ADT7316_I2C_MODULE)
22430891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	{
22440891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		I2C_BOARD_INFO("adt7316", 0x48),
22450891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.irq = IRQ_PG6,
22460891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.platform_data = (void *)&adt7316_i2c_data,
2247ef8873e06efdc023ee2e7f708787c79b78df3fcdSonic Zhang	},
2248ef8873e06efdc023ee2e7f708787c79b78df3fcdSonic Zhang#endif
2249ef8873e06efdc023ee2e7f708787c79b78df3fcdSonic Zhang
2250ebd5833327e3fb46eb55553d8f5432b5226bf897Michael Hennerich#if defined(CONFIG_BFIN_TWI_LCD) || defined(CONFIG_BFIN_TWI_LCD_MODULE)
225181d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu	{
225281d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu		I2C_BOARD_INFO("pcf8574_lcd", 0x22),
225381d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu	},
225481d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu#endif
2255204844ebd08cfb0c83689e55d6633dcd0230d36dMichael Hennerich#if defined(CONFIG_INPUT_PCF8574) || defined(CONFIG_INPUT_PCF8574_MODULE)
225681d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu	{
225781d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu		I2C_BOARD_INFO("pcf8574_keypad", 0x27),
2258f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich		.irq = IRQ_PG6,
2259f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich	},
2260f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich#endif
2261f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_AD7879_I2C) || defined(CONFIG_TOUCHSCREEN_AD7879_I2C_MODULE)
2262f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich	{
2263f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich		I2C_BOARD_INFO("ad7879", 0x2F),
2264f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich		.irq = IRQ_PG5,
2265f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich		.platform_data = (void *)&bfin_ad7879_ts_info,
226681d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu	},
226781d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu#endif
226851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich#if defined(CONFIG_KEYBOARD_ADP5588) || defined(CONFIG_KEYBOARD_ADP5588_MODULE)
226951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	{
227051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich		I2C_BOARD_INFO("adp5588-keys", 0x34),
227151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich		.irq = IRQ_PG0,
227251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich		.platform_data = (void *)&adp5588_kpad_data,
227351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	},
227451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich#endif
22753ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#if defined(CONFIG_PMIC_ADP5520) || defined(CONFIG_PMIC_ADP5520_MODULE)
22763ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	{
22773ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		I2C_BOARD_INFO("pmic-adp5520", 0x32),
22784f84b6e0bb9a7d92c791ba3607674c98f69418cbMike Frysinger		.irq = IRQ_PG0,
22793ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.platform_data = (void *)&adp5520_pdev_data,
22803ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	},
22813ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#endif
2282ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich#if defined(CONFIG_INPUT_ADXL34X_I2C) || defined(CONFIG_INPUT_ADXL34X_I2C_MODULE)
2283ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	{
2284ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich		I2C_BOARD_INFO("adxl34x", 0x53),
2285ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich		.irq = IRQ_PG3,
2286ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich		.platform_data = (void *)&adxl34x_info,
2287ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	},
2288ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich#endif
2289ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich#if defined(CONFIG_GPIO_ADP5588) || defined(CONFIG_GPIO_ADP5588_MODULE)
2290ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich	{
2291ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich		I2C_BOARD_INFO("adp5588-gpio", 0x34),
2292ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich		.platform_data = (void *)&adp5588_gpio_data,
2293ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich	},
2294ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich#endif
229550c4c0861a0a60cd4f414457fdbfc8d9a1eb1e31Michael Hennerich#if defined(CONFIG_FB_BFIN_7393) || defined(CONFIG_FB_BFIN_7393_MODULE)
229650c4c0861a0a60cd4f414457fdbfc8d9a1eb1e31Michael Hennerich	{
229750c4c0861a0a60cd4f414457fdbfc8d9a1eb1e31Michael Hennerich		I2C_BOARD_INFO("bfin-adv7393", 0x2B),
229850c4c0861a0a60cd4f414457fdbfc8d9a1eb1e31Michael Hennerich	},
229950c4c0861a0a60cd4f414457fdbfc8d9a1eb1e31Michael Hennerich#endif
2300ddcd7cb857cdf2a29c30125f71cb5d4d6744c99bMichael Hennerich#if defined(CONFIG_FB_BF537_LQ035) || defined(CONFIG_FB_BF537_LQ035_MODULE)
2301ddcd7cb857cdf2a29c30125f71cb5d4d6744c99bMichael Hennerich	{
2302948ca1a788e948379c7164e2cc08797929f17258Sonic Zhang		I2C_BOARD_INFO("bf537-lq035-ad5280", 0x2F),
2303ddcd7cb857cdf2a29c30125f71cb5d4d6744c99bMichael Hennerich	},
2304ddcd7cb857cdf2a29c30125f71cb5d4d6744c99bMichael Hennerich#endif
230578756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#if defined(CONFIG_BACKLIGHT_ADP8870) || defined(CONFIG_BACKLIGHT_ADP8870_MODULE)
230678756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	{
230778756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich		I2C_BOARD_INFO("adp8870", 0x2B),
230878756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich		.platform_data = (void *)&adp8870_pdata,
230978756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	},
231078756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#endif
2311d53127ffd6e19feb5f045da917207f9e6e2ed331Cliff Cai#if defined(CONFIG_SND_SOC_ADAU1371) || defined(CONFIG_SND_SOC_ADAU1371_MODULE)
2312d53127ffd6e19feb5f045da917207f9e6e2ed331Cliff Cai	{
2313d53127ffd6e19feb5f045da917207f9e6e2ed331Cliff Cai		I2C_BOARD_INFO("adau1371", 0x1A),
2314d53127ffd6e19feb5f045da917207f9e6e2ed331Cliff Cai	},
2315d53127ffd6e19feb5f045da917207f9e6e2ed331Cliff Cai#endif
231604267638e07f4430f902d7a304845634443caf1aCliff Cai#if defined(CONFIG_SND_SOC_ADAU1761) || defined(CONFIG_SND_SOC_ADAU1761_MODULE)
231704267638e07f4430f902d7a304845634443caf1aCliff Cai	{
231804267638e07f4430f902d7a304845634443caf1aCliff Cai		I2C_BOARD_INFO("adau1761", 0x38),
231904267638e07f4430f902d7a304845634443caf1aCliff Cai	},
232004267638e07f4430f902d7a304845634443caf1aCliff Cai#endif
2321c48d767569ec6449277bf4248295b4c165b57159Cliff Cai#if defined(CONFIG_SND_SOC_ADAU1361) || defined(CONFIG_SND_SOC_ADAU1361_MODULE)
2322c48d767569ec6449277bf4248295b4c165b57159Cliff Cai	{
2323c48d767569ec6449277bf4248295b4c165b57159Cliff Cai		I2C_BOARD_INFO("adau1361", 0x38),
2324c48d767569ec6449277bf4248295b4c165b57159Cliff Cai	},
2325c48d767569ec6449277bf4248295b4c165b57159Cliff Cai#endif
23262fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen#if defined(CONFIG_SND_SOC_ADAU1701) || defined(CONFIG_SND_SOC_ADAU1701_MODULE)
23272fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen	{
23282fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen		I2C_BOARD_INFO("adau1701", 0x34),
23292fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen	},
23302fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen#endif
23311f13f2fdca71408ad211936b85e673b72e91911aMichael Hennerich#if defined(CONFIG_AD525X_DPOT) || defined(CONFIG_AD525X_DPOT_MODULE)
23321f13f2fdca71408ad211936b85e673b72e91911aMichael Hennerich	{
23331f13f2fdca71408ad211936b85e673b72e91911aMichael Hennerich		I2C_BOARD_INFO("ad5258", 0x18),
23341f13f2fdca71408ad211936b85e673b72e91911aMichael Hennerich	},
23351f13f2fdca71408ad211936b85e673b72e91911aMichael Hennerich#endif
233629bb3bc0c71d867d50b18a0277bf28cd8dd3fca7Cliff Cai#if defined(CONFIG_SND_SOC_SSM2602) || defined(CONFIG_SND_SOC_SSM2602_MODULE)
233729bb3bc0c71d867d50b18a0277bf28cd8dd3fca7Cliff Cai	{
233829bb3bc0c71d867d50b18a0277bf28cd8dd3fca7Cliff Cai		I2C_BOARD_INFO("ssm2602", 0x1b),
233929bb3bc0c71d867d50b18a0277bf28cd8dd3fca7Cliff Cai	},
234029bb3bc0c71d867d50b18a0277bf28cd8dd3fca7Cliff Cai#endif
2341f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_AD5398) || defined(CONFIG_REGULATOR_AD5398_MODULE)
2342f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	{
2343f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang		I2C_BOARD_INFO("ad5398", 0xC),
234427e9f0b43600c19bb244aed588fbc25ba92d6343Sonic Zhang		.platform_data = (void *)&ad5398_regulator_data,
2345f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	},
2346f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
234772fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich#if defined(CONFIG_BACKLIGHT_ADP8860) || defined(CONFIG_BACKLIGHT_ADP8860_MODULE)
234872fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	{
234972fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich		I2C_BOARD_INFO("adp8860", 0x2A),
235072fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich		.platform_data = (void *)&adp8860_pdata,
235172fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	},
235272fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich#endif
23533cbcb1616c071543525e2ef2fab439848c8bac88Cliff Cai#if defined(CONFIG_SND_SOC_ADAU1373) || defined(CONFIG_SND_SOC_ADAU1373_MODULE)
23543cbcb1616c071543525e2ef2fab439848c8bac88Cliff Cai	{
23553cbcb1616c071543525e2ef2fab439848c8bac88Cliff Cai		I2C_BOARD_INFO("adau1373", 0x1A),
23563cbcb1616c071543525e2ef2fab439848c8bac88Cliff Cai	},
23573cbcb1616c071543525e2ef2fab439848c8bac88Cliff Cai#endif
235839d3c1ca1f9482faa7d216c09553a6b81b955930steven miao#if defined(CONFIG_BFIN_TWI_LCD) || defined(CONFIG_BFIN_TWI_LCD_MODULE)
235939d3c1ca1f9482faa7d216c09553a6b81b955930steven miao	{
236039d3c1ca1f9482faa7d216c09553a6b81b955930steven miao		I2C_BOARD_INFO("ad5252", 0x2e),
236139d3c1ca1f9482faa7d216c09553a6b81b955930steven miao	},
236239d3c1ca1f9482faa7d216c09553a6b81b955930steven miao#endif
236381d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu};
236481d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu
23651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
2366df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
2367df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhangstatic struct resource bfin_sport0_uart_resources[] = {
2368df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	{
2369df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.start = SPORT0_TCR1,
2370df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.end = SPORT0_MRCS3+4,
2371df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.flags = IORESOURCE_MEM,
2372df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
2373df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	{
2374df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.start = IRQ_SPORT0_RX,
2375df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.end = IRQ_SPORT0_RX+1,
2376df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.flags = IORESOURCE_IRQ,
2377df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
2378df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	{
2379df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.start = IRQ_SPORT0_ERROR,
2380df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.end = IRQ_SPORT0_ERROR,
2381df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.flags = IORESOURCE_IRQ,
2382df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
2383df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang};
2384df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang
2385a8b19886097032df38bd521cece4bc538fee2266Mike Frysingerstatic unsigned short bfin_sport0_peripherals[] = {
2386df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS,
2387e54b673081d12c46b47fdfe1772656cb2b43721dSonic Zhang	P_SPORT0_DRPRI, P_SPORT0_RSCLK, 0
2388df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang};
2389df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang
23901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_sport0_uart_device = {
23911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "bfin-sport-uart",
23921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = 0,
2393df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	.num_resources = ARRAY_SIZE(bfin_sport0_uart_resources),
2394df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	.resource = bfin_sport0_uart_resources,
2395df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	.dev = {
2396df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.platform_data = &bfin_sport0_peripherals, /* Passed to driver */
2397df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
2398df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang};
2399df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#endif
2400df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
2401df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhangstatic struct resource bfin_sport1_uart_resources[] = {
2402df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	{
2403df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.start = SPORT1_TCR1,
2404df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.end = SPORT1_MRCS3+4,
2405df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.flags = IORESOURCE_MEM,
2406df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
2407df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	{
2408df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.start = IRQ_SPORT1_RX,
2409df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.end = IRQ_SPORT1_RX+1,
2410df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.flags = IORESOURCE_IRQ,
2411df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
2412df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	{
2413df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.start = IRQ_SPORT1_ERROR,
2414df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.end = IRQ_SPORT1_ERROR,
2415df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.flags = IORESOURCE_IRQ,
2416df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
2417df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang};
2418df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang
2419a8b19886097032df38bd521cece4bc538fee2266Mike Frysingerstatic unsigned short bfin_sport1_peripherals[] = {
2420df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS,
2421e54b673081d12c46b47fdfe1772656cb2b43721dSonic Zhang	P_SPORT1_DRPRI, P_SPORT1_RSCLK, 0
24221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
24231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
24241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_sport1_uart_device = {
24251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "bfin-sport-uart",
24261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = 1,
2427df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	.num_resources = ARRAY_SIZE(bfin_sport1_uart_resources),
2428df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	.resource = bfin_sport1_uart_resources,
2429df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	.dev = {
2430df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.platform_data = &bfin_sport1_peripherals, /* Passed to driver */
2431df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
24321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
24331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
2434df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#endif
24351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
2436c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
24372c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#define CF_IDE_NAND_CARD_USE_HDD_INTERFACE
24382c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich/* #define CF_IDE_NAND_CARD_USE_CF_IN_COMMON_MEMORY_MODE */
2439c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
24402c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#ifdef CF_IDE_NAND_CARD_USE_HDD_INTERFACE
24412c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#define PATA_INT	IRQ_PF5
2442c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct pata_platform_info bfin_pata_platform_data = {
2443c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.ioport_shift = 1,
24447832bb5d450aefa45b6dac3b3140eade66bb12adYong Zhang	.irq_flags = IRQF_TRIGGER_HIGH,
2445c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu};
2446c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
2447c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct resource bfin_pata_resources[] = {
2448c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	{
2449c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = 0x20314020,
2450c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end = 0x2031403F,
2451c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_MEM,
2452c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	},
2453c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	{
2454c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = 0x2031401C,
2455c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end = 0x2031401F,
2456c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_MEM,
2457c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	},
2458c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	{
2459c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = PATA_INT,
2460c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end = PATA_INT,
2461c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_IRQ,
2462c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	},
2463c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu};
24642c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#elif defined(CF_IDE_NAND_CARD_USE_CF_IN_COMMON_MEMORY_MODE)
24652c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerichstatic struct pata_platform_info bfin_pata_platform_data = {
24662c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich	.ioport_shift = 0,
24672c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich};
246825985edcedea6396277003854657b5f3cb31a628Lucas De Marchi/* CompactFlash Storage Card Memory Mapped Addressing
2469648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich * /REG = A11 = 1
2470648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich */
24712c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerichstatic struct resource bfin_pata_resources[] = {
24722c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich	{
2473648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich		.start = 0x20211800,
2474648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich		.end = 0x20211807,
24752c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich		.flags = IORESOURCE_MEM,
24762c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich	},
24772c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich	{
2478648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich		.start = 0x2021180E,	/* Device Ctl */
2479648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich		.end = 0x2021180E,
24802c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich		.flags = IORESOURCE_MEM,
24812c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich	},
24822c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich};
24832c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#endif
2484c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
2485c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct platform_device bfin_pata_device = {
2486c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.name = "pata_platform",
2487c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.id = -1,
2488c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.num_resources = ARRAY_SIZE(bfin_pata_resources),
2489c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.resource = bfin_pata_resources,
2490c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.dev = {
2491c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.platform_data = &bfin_pata_platform_data,
2492c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	}
2493c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu};
2494c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif
2495c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
249614b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerichstatic const unsigned int cclk_vlev_datasheet[] =
249714b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich{
249814b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_085, 250000000),
249914b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_090, 376000000),
250014b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_095, 426000000),
250114b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_100, 426000000),
250214b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_105, 476000000),
250314b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_110, 476000000),
250414b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_115, 476000000),
250514b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_120, 500000000),
250614b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_125, 533000000),
250714b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_130, 600000000),
250814b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich};
250914b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich
251014b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerichstatic struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
251114b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	.tuple_tab = cclk_vlev_datasheet,
251214b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	.tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
251314b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	.vr_settling_time = 25 /* us */,
251414b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich};
251514b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich
251614b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerichstatic struct platform_device bfin_dpmc = {
251714b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	.name = "bfin dpmc",
251814b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	.dev = {
251914b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich		.platform_data = &bfin_dmpc_vreg_data,
252014b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	},
252114b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich};
252214b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich
25236f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE) || \
25246f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE) || \
25256f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE)
25266f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
25276f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#define SPORT_REQ(x) \
25286f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	[x] = {P_SPORT##x##_TFS, P_SPORT##x##_DTPRI, P_SPORT##x##_TSCLK, \
25296f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		P_SPORT##x##_RFS, P_SPORT##x##_DRPRI, P_SPORT##x##_RSCLK, 0}
25306f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
25316f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiangstatic const u16 bfin_snd_pin[][7] = {
25326f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	SPORT_REQ(0),
25336f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	SPORT_REQ(1),
25346f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang};
25356f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
25366f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiangstatic struct bfin_snd_platform_data bfin_snd_data[] = {
25376f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	{
25386f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		.pin_req = &bfin_snd_pin[0][0],
25396f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	},
25406f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	{
25416f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		.pin_req = &bfin_snd_pin[1][0],
25426f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	},
25436f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang};
25446f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
25456f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#define BFIN_SND_RES(x) \
25466f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	[x] = { \
25476f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		{ \
25486f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.start = SPORT##x##_TCR1, \
25496f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.end = SPORT##x##_TCR1, \
25506f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.flags = IORESOURCE_MEM \
25516f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		}, \
25526f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		{ \
25536f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.start = CH_SPORT##x##_RX, \
25546f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.end = CH_SPORT##x##_RX, \
25556f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.flags = IORESOURCE_DMA, \
25566f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		}, \
25576f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		{ \
25586f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.start = CH_SPORT##x##_TX, \
25596f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.end = CH_SPORT##x##_TX, \
25606f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.flags = IORESOURCE_DMA, \
25616f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		}, \
25626f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		{ \
25636f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.start = IRQ_SPORT##x##_ERROR, \
25646f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.end = IRQ_SPORT##x##_ERROR, \
25656f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang			.flags = IORESOURCE_IRQ, \
25666f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		} \
25676f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	}
25686f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
25696f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiangstatic struct resource bfin_snd_resources[][4] = {
25706f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	BFIN_SND_RES(0),
25716f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	BFIN_SND_RES(1),
25726f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang};
25732b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#endif
25742b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang
25752b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
25762b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiangstatic struct platform_device bfin_i2s_pcm = {
25772b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang	.name = "bfin-i2s-pcm-audio",
25782b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang	.id = -1,
25792b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang};
25802b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#endif
25812b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang
25822b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
25832b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiangstatic struct platform_device bfin_tdm_pcm = {
25842b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang	.name = "bfin-tdm-pcm-audio",
25852b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang	.id = -1,
25862b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang};
25872b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#endif
25886f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
25892b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE)
25902b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiangstatic struct platform_device bfin_ac97_pcm = {
25912b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang	.name = "bfin-ac97-pcm-audio",
25926f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.id = -1,
25936f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang};
25946f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#endif
25956f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
25963268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liu#if defined(CONFIG_SND_BF5XX_SOC_AD73311) || \
25973268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liu				defined(CONFIG_SND_BF5XX_SOC_AD73311_MODULE)
25983268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liustatic const unsigned ad73311_gpio[] = {
25993268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liu	GPIO_PF4,
26003268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liu};
26013268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liu
26023268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liustatic struct platform_device bfin_ad73311_machine = {
26033268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liu	.name = "bfin-snd-ad73311",
26043268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liu	.id = 1,
26053268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liu	.dev = {
26063268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liu		.platform_data = (void *)ad73311_gpio,
26073268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liu	},
26083268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liu};
26093268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liu#endif
26103268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liu
2611e0754d83ed5bfd9b1353f293964889252da682f2Scott Jiang#if defined(CONFIG_SND_SOC_AD73311) || defined(CONFIG_SND_SOC_AD73311_MODULE)
26126f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiangstatic struct platform_device bfin_ad73311_codec_device = {
26136f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.name = "ad73311",
26146f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.id = -1,
26156f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang};
26166f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#endif
26176f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
2618080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAV80X) || \
2619080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen	defined(CONFIG_SND_SOC_BFIN_EVAL_ADAV80X_MODULE)
2620080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausenstatic struct platform_device bfin_eval_adav801_device = {
2621080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen	.name = "bfin-eval-adav801",
2622080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen	.id = -1,
2623080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen};
2624080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen#endif
2625080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen
26266f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#if defined(CONFIG_SND_BF5XX_SOC_I2S) || defined(CONFIG_SND_BF5XX_SOC_I2S_MODULE)
2627336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Songstatic struct platform_device bfin_i2s = {
2628336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	.name = "bfin-i2s",
2629336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	.id = CONFIG_SND_BF5XX_SPORT_NUM,
26306f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.num_resources = ARRAY_SIZE(bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM]),
26316f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.resource = bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM],
26326f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.dev = {
26336f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		.platform_data = &bfin_snd_data[CONFIG_SND_BF5XX_SPORT_NUM],
26346f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	},
2635336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song};
2636336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song#endif
2637336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song
26386f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#if defined(CONFIG_SND_BF5XX_SOC_TDM) || defined(CONFIG_SND_BF5XX_SOC_TDM_MODULE)
26398312440e05ea74feabc648ad8f36c823af4ddd8eBarry Songstatic struct platform_device bfin_tdm = {
26408312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song	.name = "bfin-tdm",
2641336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	.id = CONFIG_SND_BF5XX_SPORT_NUM,
26426f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.num_resources = ARRAY_SIZE(bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM]),
26436f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.resource = bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM],
26446f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.dev = {
26456f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		.platform_data = &bfin_snd_data[CONFIG_SND_BF5XX_SPORT_NUM],
26466f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	},
2647336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song};
2648336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song#endif
2649336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song
26506f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#if defined(CONFIG_SND_BF5XX_SOC_AC97) || defined(CONFIG_SND_BF5XX_SOC_AC97_MODULE)
2651336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Songstatic struct platform_device bfin_ac97 = {
2652336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	.name = "bfin-ac97",
2653336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	.id = CONFIG_SND_BF5XX_SPORT_NUM,
26546f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.num_resources = ARRAY_SIZE(bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM]),
26556f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.resource = bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM],
26566f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	.dev = {
26576f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang		.platform_data = &bfin_snd_data[CONFIG_SND_BF5XX_SPORT_NUM],
26586f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	},
26598312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song};
26608312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song#endif
26618312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song
26621b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang#if defined(CONFIG_REGULATOR_FIXED_VOLTAGE) || defined(CONFIG_REGULATOR_FIXED_VOLTAGE_MODULE)
26631b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang#define REGULATOR_ADP122	"adp122"
26641b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang#define REGULATOR_ADP122_UV	2500000
2665f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2666f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct regulator_consumer_supply adp122_consumers = {
2667f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		.supply = REGULATOR_ADP122,
2668f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2669f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
26701b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhangstatic struct regulator_init_data adp_switch_regulator_data = {
26711b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.constraints = {
26721b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang		.name = REGULATOR_ADP122,
26731b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang		.valid_ops_mask = REGULATOR_CHANGE_STATUS,
26741b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang		.min_uV = REGULATOR_ADP122_UV,
26751b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang		.max_uV = REGULATOR_ADP122_UV,
26761b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang		.min_uA = 0,
26771b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang		.max_uA = 300000,
2678f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	},
26791b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.num_consumer_supplies = 1,	/* only 1 */
26801b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.consumer_supplies     = &adp122_consumers,
2681f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2682f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
26831b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhangstatic struct fixed_voltage_config adp_switch_pdata = {
26841b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.supply_name = REGULATOR_ADP122,
26851b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.microvolts = REGULATOR_ADP122_UV,
26861b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.gpio = GPIO_PF2,
26871b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.enable_high = 1,
26881b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.enabled_at_boot = 0,
26891b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.init_data = &adp_switch_regulator_data,
2690f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2691f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2692f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct platform_device adp_switch_device = {
26931b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang	.name = "reg-fixed-voltage",
2694f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.id = 0,
2695f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.dev = {
2696f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		.platform_data = &adp_switch_pdata,
2697f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	},
2698f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2699f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2700f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#if defined(CONFIG_REGULATOR_USERSPACE_CONSUMER) || \
2701f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	defined(CONFIG_REGULATOR_USERSPACE_CONSUMER_MODULE)
2702f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct regulator_bulk_data adp122_bulk_data = {
2703f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.supply = REGULATOR_ADP122,
2704f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2705f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2706f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct regulator_userspace_consumer_data adp122_userspace_comsumer_data = {
2707f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.name = REGULATOR_ADP122,
2708f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.num_supplies = 1,
2709f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.supplies = &adp122_bulk_data,
2710f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2711f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2712f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct platform_device adp122_userspace_consumer_device = {
2713f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.name = "reg-userspace-consumer",
2714f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.id = 0,
2715f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.dev = {
2716f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		.platform_data = &adp122_userspace_comsumer_data,
2717f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	},
2718f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2719f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#endif
2720f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#endif
2721f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
27220891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_IIO_GPIO_TRIGGER) || \
27230891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	defined(CONFIG_IIO_GPIO_TRIGGER_MODULE)
27240891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
27250891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic struct resource iio_gpio_trigger_resources[] = {
27260891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	[0] = {
27270891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.start  = IRQ_PF5,
27280891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.end    = IRQ_PF5,
27290891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich		.flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE,
27300891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	},
27310891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
27320891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
27330891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerichstatic struct platform_device iio_gpio_trigger = {
27340891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	.name = "iio_gpio_trigger",
27350891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	.num_resources = ARRAY_SIZE(iio_gpio_trigger_resources),
27360891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	.resource = iio_gpio_trigger_resources,
27370891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich};
27380891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
2739f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2740af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1373) || \
2741af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen	defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1373_MODULE)
2742af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausenstatic struct platform_device bf5xx_adau1373_device = {
2743af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen	.name = "bfin-eval-adau1373",
2744af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen};
2745af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen#endif
2746af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen
27472fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701) || \
27482fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen	defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701_MODULE)
27492fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausenstatic struct platform_device bf5xx_adau1701_device = {
27502fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen	.name = "bfin-eval-adau1701",
27512fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen};
27522fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen#endif
27532fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen
27541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device *stamp_devices[] __initdata = {
275514b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich
275614b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	&bfin_dpmc,
275714b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich
27581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE)
27591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&bfin_pcmcia_cf_device,
27601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
27611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
27621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
27631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&rtc_device,
27641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
27651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
27661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE)
27671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&sl811_hcd_device,
27681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
27691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
27701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
27711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&isp1362_hcd_device,
27721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
27731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
27743f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
27753f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	&bfin_isp1760_device,
27763f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich#endif
27773f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich
27781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
27791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&smc91x_device,
27801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
27811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
2782f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
2783f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau	&dm9000_device,
2784f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau#endif
2785f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau
2786706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song#if defined(CONFIG_CAN_BFIN) || defined(CONFIG_CAN_BFIN_MODULE)
2787706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	&bfin_can_device,
2788706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song#endif
2789706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song
27901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
279165319628db2c7a630daadfeec4d371aaca788482Graf Yang	&bfin_mii_bus,
27921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&bfin_mac_device,
27931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
27941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
27951394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
27961394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&net2272_bfin_device,
27971394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
27981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
27997d157fb02bc3f4dc74e6830725864ba501d92da7Sonic Zhang#if defined(CONFIG_SPI_BFIN5XX) || defined(CONFIG_SPI_BFIN5XX_MODULE)
2800c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	&bfin_spi0_device,
28011394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
28021394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
28031e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai#if defined(CONFIG_SPI_BFIN_SPORT) || defined(CONFIG_SPI_BFIN_SPORT_MODULE)
28041e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	&bfin_sport_spi0_device,
28051e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	&bfin_sport_spi1_device,
28061e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai#endif
28071e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
28081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_FB_BF537_LQ035) || defined(CONFIG_FB_BF537_LQ035_MODULE)
28091394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&bfin_fb_device,
28101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
28111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
28122043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
28132043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	&bfin_lq035q1_device,
28142043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#endif
28152043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich
2816bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu#if defined(CONFIG_VIDEO_BLACKFIN_CAPTURE) \
2817bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	|| defined(CONFIG_VIDEO_BLACKFIN_CAPTURE_MODULE)
2818bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu	&bfin_capture_device,
2819bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu#endif
2820bd5fd095fb0042614dd0d46e7ef05898121bb5f7Bob Liu
28211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
28226bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART0
28236bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	&bfin_uart0_device,
28246bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#endif
28256bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART1
28266bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	&bfin_uart1_device,
28276bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#endif
28281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
28291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
28305be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
283142bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#ifdef CONFIG_BFIN_SIR0
283242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	&bfin_sir0_device,
283342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#endif
283442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#ifdef CONFIG_BFIN_SIR1
283542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	&bfin_sir1_device,
283642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#endif
28375be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#endif
28385be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang
28391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
28401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&i2c_bfin_twi_device,
28411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
28421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
28431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
2844df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
28451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&bfin_sport0_uart_device,
2846df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#endif
2847df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
28481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&bfin_sport1_uart_device,
28491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
2850df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#endif
2851c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
2852c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
2853c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	&bfin_pata_device,
2854c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif
28552463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich
28562463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
28572463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	&bfin_device_gpiokeys,
28582463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich#endif
2859cad2ab65dd1c7d65153ffccd71c90db028fd62f0Mike Frysinger
2860fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#if defined(CONFIG_MTD_NAND_PLATFORM) || defined(CONFIG_MTD_NAND_PLATFORM_MODULE)
2861fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	&bfin_async_nand_device,
2862fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#endif
2863fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
2864793dc27b51b2ffff95b72408e2ef44e0995c185bMike Frysinger#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
2865de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	&stamp_flash_device,
2866793dc27b51b2ffff95b72408e2ef44e0995c185bMike Frysinger#endif
28678312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song
28682b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
28692b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang	&bfin_i2s_pcm,
28702b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#endif
28712b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang
28722b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
28732b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang	&bfin_tdm_pcm,
28742b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#endif
28752b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang
28762b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang#if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE)
28772b6678c552ea05e7732fa1486ae1f56cb4a45f47Scott Jiang	&bfin_ac97_pcm,
28786f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#endif
28796f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
28803268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liu#if defined(CONFIG_SND_BF5XX_SOC_AD73311) || \
28813268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liu		defined(CONFIG_SND_BF5XX_SOC_AD73311_MODULE)
28823268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liu	&bfin_ad73311_machine,
28833268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liu#endif
28843268968ddc978f12a4b72c8ebe8eafba68c26aa1Bob Liu
2885e0754d83ed5bfd9b1353f293964889252da682f2Scott Jiang#if defined(CONFIG_SND_SOC_AD73311) || defined(CONFIG_SND_SOC_AD73311_MODULE)
28866f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang	&bfin_ad73311_codec_device,
28876f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#endif
28886f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
28896f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#if defined(CONFIG_SND_BF5XX_SOC_I2S) || defined(CONFIG_SND_BF5XX_SOC_I2S_MODULE)
2890336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	&bfin_i2s,
2891336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song#endif
2892336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song
28936f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#if defined(CONFIG_SND_BF5XX_SOC_TDM) || defined(CONFIG_SND_BF5XX_SOC_TDM_MODULE)
28948312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song	&bfin_tdm,
28958312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song#endif
2896336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song
28976f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang#if defined(CONFIG_SND_BF5XX_SOC_AC97) || defined(CONFIG_SND_BF5XX_SOC_AC97_MODULE)
2898336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	&bfin_ac97,
2899336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song#endif
29006f53dbbb7fa9d29a5c8aa843f319ed10a8cde5bdScott Jiang
2901f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_AD5398) || defined(CONFIG_REGULATOR_AD5398_MODULE)
2902f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_VIRTUAL_CONSUMER) || \
2903f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	defined(CONFIG_REGULATOR_VIRTUAL_CONSUMER_MODULE)
2904f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	&ad5398_virt_consumer_device,
2905f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
2906f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_USERSPACE_CONSUMER) || \
2907f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	defined(CONFIG_REGULATOR_USERSPACE_CONSUMER_MODULE)
2908f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	&ad5398_userspace_consumer_device,
2909f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
2910f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
2911f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
29121b04cbeabdbda802c53f4bf85cd9db0c82643152Sonic Zhang#if defined(CONFIG_REGULATOR_FIXED_VOLTAGE) || defined(CONFIG_REGULATOR_FIXED_VOLTAGE_MODULE)
2913f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	&adp_switch_device,
2914f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#if defined(CONFIG_REGULATOR_USERSPACE_CONSUMER) || \
2915f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	defined(CONFIG_REGULATOR_USERSPACE_CONSUMER_MODULE)
2916f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	&adp122_userspace_consumer_device,
2917f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#endif
2918f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#endif
29190891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich
29200891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#if defined(CONFIG_IIO_GPIO_TRIGGER) || \
29210891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	defined(CONFIG_IIO_GPIO_TRIGGER_MODULE)
29220891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich	&iio_gpio_trigger,
29230891baef7d2e1777b81e780c3b8cfcc169d6979fMichael Hennerich#endif
29242fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen
2925af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1373) || \
2926af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen	defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1373_MODULE)
2927af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen	&bf5xx_adau1373_device,
2928af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen#endif
2929af80d0dec558658818248213ec8b62e4554a444aLars-Peter Clausen
29302fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701) || \
29312fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen	defined(CONFIG_SND_SOC_BFIN_EVAL_ADAU1701_MODULE)
29322fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen	&bf5xx_adau1701_device,
29332fba06f2b8a7fe69c0eff94389834821f54ada10Lars-Peter Clausen#endif
2934080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen
2935080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen#if defined(CONFIG_SND_SOC_BFIN_EVAL_ADAV80X) || \
2936080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen	defined(CONFIG_SND_SOC_BFIN_EVAL_ADAV80X_MODULE)
2937080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen	&bfin_eval_adav801_device,
2938080ae07cb7c74e0a6fd4f69f56433f8456338d20Lars-Peter Clausen#endif
29391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
29401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
29419be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysingerstatic int __init net2272_init(void)
29429be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger{
29439be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
29449be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	int ret;
29459be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger
29469be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	ret = gpio_request(GPIO_PF6, "net2272");
29479be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	if (ret)
29489be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger		return ret;
29499be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger
29509be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	/* Reset the USB chip */
29519be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	gpio_direction_output(GPIO_PF6, 0);
29529be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	mdelay(2);
29539be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	gpio_set_value(GPIO_PF6, 1);
29549be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger#endif
29559be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger
29569be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	return 0;
29579be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger}
29589be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger
29591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic int __init stamp_init(void)
29601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu{
2961b85d858b40a28107ee50ca9e89f57c0e35c251c6Harvey Harrison	printk(KERN_INFO "%s(): registering device resources\n", __func__);
2962fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	bfin_plat_nand_init();
29630531c467da6438f278e9420a30f73eea2fdb73bdMike Frysinger	adf702x_mac_init();
29641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
2965df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	i2c_register_board_info(0, bfin_i2c_board_info,
2966df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang				ARRAY_SIZE(bfin_i2c_board_info));
29675bda27235b24146cf870de663141ee4fbfa8a70bMike Frysinger	spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
2968c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
29699be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger	if (net2272_init())
29709be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger		pr_warning("unable to configure net2272; it probably won't work\n");
29719be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger
29721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	return 0;
29731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}
29741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
29751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wuarch_initcall(stamp_init);
2976c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
2977c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang
2978c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhangstatic struct platform_device *stamp_early_devices[] __initdata = {
2979c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
2980c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART0
2981c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang	&bfin_uart0_device,
2982c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif
2983c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART1
2984c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang	&bfin_uart1_device,
2985c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif
2986c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif
2987c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang
2988c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
2989c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
2990c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang	&bfin_sport0_uart_device,
2991c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif
2992c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
2993c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang	&bfin_sport1_uart_device,
2994c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif
2995c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif
2996c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang};
2997c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang
2998c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhangvoid __init native_machine_early_platform_add_devices(void)
2999c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang{
3000c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang	printk(KERN_INFO "register early platform devices\n");
3001c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang	early_platform_add_devices(stamp_early_devices,
3002c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang		ARRAY_SIZE(stamp_early_devices));
3003c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang}
3004c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang
3005c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wuvoid native_machine_restart(char *cmd)
3006c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu{
3007c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	/* workaround reboot hang when booting from SPI */
3008c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	if ((bfin_read_SYSCR() & 0x7) == 0x3)
3009b52dae3139066765a7d96563e9cd33d9e60efe33Sonic Zhang		bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS);
3010c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu}
3011137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger
3012137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger/*
3013137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger * Currently the MAC address is saved in Flash by U-Boot
3014137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger */
3015137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger#define FLASH_MAC	0x203f0000
30160eceb82f55a9e3756cada9e60ecc3a9b7b5979f5Danny Kukawkaint bfin_get_ether_addr(char *addr)
3017137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger{
3018137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger	*(u32 *)(&(addr[0])) = bfin_read32(FLASH_MAC);
3019137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger	*(u16 *)(&(addr[4])) = bfin_read16(FLASH_MAC + 4);
30200eceb82f55a9e3756cada9e60ecc3a9b7b5979f5Danny Kukawka	return 0;
3021137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger}
30229862cc5278aabd82230369a142c817e37a42caa3Mike FrysingerEXPORT_SYMBOL(bfin_get_ether_addr);
3023