stamp.c revision 67d9963bd79b8f861387982ac5c0ff796f12be61
11394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/*
296f1050d3df105c9ae6c6ac224f370199ea82fcdRobin Getz * Copyright 2004-2009 Analog Devices Inc.
396f1050d3df105c9ae6c6ac224f370199ea82fcdRobin Getz *                2005 National ICT Australia (NICTA)
496f1050d3df105c9ae6c6ac224f370199ea82fcdRobin Getz *                      Aidan Williams <aidan@nicta.com.au>
51394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu *
696f1050d3df105c9ae6c6ac224f370199ea82fcdRobin Getz * Licensed under the GPL-2 or later.
71394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */
81394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
91394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/device.h>
10fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#include <linux/kernel.h>
111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/platform_device.h>
126e3647554e2bf7d7a898ccfc35941adbecd888e7Barry Song#include <linux/io.h>
131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/mtd/mtd.h>
14fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#include <linux/mtd/nand.h>
151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/mtd/partitions.h>
16fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#include <linux/mtd/plat-ram.h>
17de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger#include <linux/mtd/physmap.h>
181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/spi/spi.h>
191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/spi/flash.h>
201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
21f02bcec5986870b3ddae26f6be1cde0703abfd8aMike Frysinger#include <linux/usb/isp1362.h>
221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
237a9cc48907e05e61033b953a3860e55703625950Sonic Zhang#include <linux/i2c.h>
247a9cc48907e05e61033b953a3860e55703625950Sonic Zhang#include <linux/i2c/adp5588.h>
250531c467da6438f278e9420a30f73eea2fdb73bdMike Frysinger#include <linux/etherdevice.h>
260a87e3e92b299e0f1a69b36664ecde2fc296c40aJeff Garzik#include <linux/ata_platform.h>
271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/irq.h>
281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/interrupt.h>
2927f5d75afaa1b65e4cc1e4ac8a2a5095d24f1576David Brownell#include <linux/usb/sl811.h>
30f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#include <linux/spi/mmc_spi.h>
3178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#include <linux/leds.h>
3278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#include <linux/input.h>
33c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#include <asm/dma.h>
341f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger#include <asm/bfin5xx_spi.h>
35c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#include <asm/reboot.h>
365d448dd50712ae42f8176b5bb8db4703bef6f0f5Bryan Wu#include <asm/portmux.h>
3714b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich#include <asm/dpmc.h>
38f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#ifdef CONFIG_REGULATOR_ADP_SWITCH
39f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#include <linux/regulator/adp_switch.h>
40f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#endif
41f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#ifdef CONFIG_REGULATOR_AD5398
42f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#include <linux/regulator/ad5398.h>
43f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
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)
294706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Songunsigned 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)
33265319628db2c7a630daadfeec4d371aaca788482Graf Yangstatic struct platform_device bfin_mii_bus = {
33365319628db2c7a630daadfeec4d371aaca788482Graf Yang	.name = "bfin_mii_bus",
33465319628db2c7a630daadfeec4d371aaca788482Graf Yang};
33565319628db2c7a630daadfeec4d371aaca788482Graf Yang
3361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_mac_device = {
3371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "bfin_mac",
33865319628db2c7a630daadfeec4d371aaca788482Graf Yang	.dev.platform_data = &bfin_mii_bus,
3391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
3401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
3411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
3421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
3431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource net2272_bfin_resources[] = {
3441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
3451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = 0x20300000,
3461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = 0x20300000 + 0x100,
3471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
3481f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
3491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.start = IRQ_PF7,
3501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.end = IRQ_PF7,
3511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
3521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
3531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
3541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
3551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device net2272_bfin_device = {
3561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "net2272",
3571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = -1,
3581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.num_resources = ARRAY_SIZE(net2272_bfin_resources),
3591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.resource = net2272_bfin_resources,
3601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
3611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
3621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
363fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#if defined(CONFIG_MTD_NAND_PLATFORM) || defined(CONFIG_MTD_NAND_PLATFORM_MODULE)
364fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#ifdef CONFIG_MTD_PARTITIONS
365fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerconst char *part_probes[] = { "cmdlinepart", "RedBoot", NULL };
366fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
367fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic struct mtd_partition bfin_plat_nand_partitions[] = {
368fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	{
369aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name   = "linux kernel(nand)",
370fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.size   = 0x400000,
371fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.offset = 0,
372fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	}, {
373aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name   = "file system(nand)",
374fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.size   = MTDPART_SIZ_FULL,
375fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.offset = MTDPART_OFS_APPEND,
376fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	},
377fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger};
378fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#endif
379fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
380fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#define BFIN_NAND_PLAT_CLE 2
381fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#define BFIN_NAND_PLAT_ALE 1
382fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic void bfin_plat_nand_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl)
383fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger{
384fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	struct nand_chip *this = mtd->priv;
385fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
386fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	if (cmd == NAND_CMD_NONE)
387fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		return;
388fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
389fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	if (ctrl & NAND_CLE)
390fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		writeb(cmd, this->IO_ADDR_W + (1 << BFIN_NAND_PLAT_CLE));
391fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	else
392fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		writeb(cmd, this->IO_ADDR_W + (1 << BFIN_NAND_PLAT_ALE));
393fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger}
394fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
395fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#define BFIN_NAND_PLAT_READY GPIO_PF3
396fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic int bfin_plat_nand_dev_ready(struct mtd_info *mtd)
397fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger{
398fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	return gpio_get_value(BFIN_NAND_PLAT_READY);
399fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger}
400fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
401fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic struct platform_nand_data bfin_plat_nand_data = {
402fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.chip = {
403ef56609f9c7fdf5baa9d9f86f84a7bd8a717cd25Marek Vasut		.nr_chips = 1,
404fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.chip_delay = 30,
405fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#ifdef CONFIG_MTD_PARTITIONS
406fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.part_probe_types = part_probes,
407fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.partitions = bfin_plat_nand_partitions,
408fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.nr_partitions = ARRAY_SIZE(bfin_plat_nand_partitions),
409fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#endif
410fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	},
411fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.ctrl = {
412fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.cmd_ctrl  = bfin_plat_nand_cmd_ctrl,
413fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.dev_ready = bfin_plat_nand_dev_ready,
414fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	},
415fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger};
416fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
417fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#define MAX(x, y) (x > y ? x : y)
418fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic struct resource bfin_plat_nand_resources = {
419fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.start = 0x20212000,
420fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.end   = 0x20212000 + (1 << MAX(BFIN_NAND_PLAT_CLE, BFIN_NAND_PLAT_ALE)),
42167d9963bd79b8f861387982ac5c0ff796f12be61Mike Frysinger	.flags = IORESOURCE_MEM,
422fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger};
423fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
424fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic struct platform_device bfin_async_nand_device = {
425fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.name = "gen_nand",
426fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.id = -1,
427fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.num_resources = 1,
428fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.resource = &bfin_plat_nand_resources,
429fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	.dev = {
430fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger		.platform_data = &bfin_plat_nand_data,
431fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	},
432fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger};
433fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
434fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic void bfin_plat_nand_init(void)
435fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger{
436fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	gpio_request(BFIN_NAND_PLAT_READY, "bfin_nand_plat");
437fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger}
438fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#else
439fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysingerstatic void bfin_plat_nand_init(void) {}
440fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#endif
441fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
442793dc27b51b2ffff95b72408e2ef44e0995c185bMike Frysinger#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
443de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysingerstatic struct mtd_partition stamp_partitions[] = {
444de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	{
445aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name       = "bootloader(nor)",
446edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger		.size       = 0x40000,
447de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.offset     = 0,
448de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	}, {
449aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name       = "linux kernel(nor)",
4506ecb5b6dbc01b958fdce7008f297a5c7ba2d8105Grace Pan		.size       = 0x180000,
451de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.offset     = MTDPART_OFS_APPEND,
452de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	}, {
453aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name       = "file system(nor)",
4546ecb5b6dbc01b958fdce7008f297a5c7ba2d8105Grace Pan		.size       = 0x400000 - 0x40000 - 0x180000 - 0x10000,
455de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.offset     = MTDPART_OFS_APPEND,
456de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	}, {
457aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name       = "MAC Address(nor)",
458de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.size       = MTDPART_SIZ_FULL,
459de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.offset     = 0x3F0000,
460de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.mask_flags = MTD_WRITEABLE,
461de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	}
462de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger};
463de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger
464de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysingerstatic struct physmap_flash_data stamp_flash_data = {
465de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.width      = 2,
466de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.parts      = stamp_partitions,
467de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.nr_parts   = ARRAY_SIZE(stamp_partitions),
46838e7673f24e6c19aba9ecff86760cb7981b91464Barry Song#ifdef CONFIG_ROMKERNEL
46938e7673f24e6c19aba9ecff86760cb7981b91464Barry Song	.probe_type = "map_rom",
47038e7673f24e6c19aba9ecff86760cb7981b91464Barry Song#endif
471de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger};
472de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger
473de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysingerstatic struct resource stamp_flash_resource = {
474de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.start = 0x20000000,
475de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.end   = 0x203fffff,
476de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.flags = IORESOURCE_MEM,
477de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger};
478de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger
479de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysingerstatic struct platform_device stamp_flash_device = {
480de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.name          = "physmap-flash",
481de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.id            = 0,
482de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.dev = {
483de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger		.platform_data = &stamp_flash_data,
484de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	},
485de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.num_resources = 1,
486de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	.resource      = &stamp_flash_resource,
487de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger};
488793dc27b51b2ffff95b72408e2ef44e0995c185bMike Frysinger#endif
489de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger
4901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_MTD_M25P80) \
4911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	|| defined(CONFIG_MTD_M25P80_MODULE)
4921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct mtd_partition bfin_spi_flash_partitions[] = {
4931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
494aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name = "bootloader(spi)",
495edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger		.size = 0x00040000,
4961394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.offset = 0,
4971394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.mask_flags = MTD_CAP_ROM
4981f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
499aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name = "linux kernel(spi)",
5006ecb5b6dbc01b958fdce7008f297a5c7ba2d8105Grace Pan		.size = 0x180000,
501edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger		.offset = MTDPART_OFS_APPEND,
5021f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger	}, {
503aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz		.name = "file system(spi)",
504edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger		.size = MTDPART_SIZ_FULL,
505edf056417d11fe9321ec15a55bd128e4f4c73796Mike Frysinger		.offset = MTDPART_OFS_APPEND,
5061394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	}
5071394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
5081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
5091394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct flash_platform_data bfin_spi_flash_data = {
5101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "m25p80",
5111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.parts = bfin_spi_flash_partitions,
5121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.nr_parts = ARRAY_SIZE(bfin_spi_flash_partitions),
51388a8078b3b31349e9cbf09215eab6891fb1aed0fMichael Hennerich	/* .type = "m25p64", */
5141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
5151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
5161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* SPI flash chip (m25p64) */
5171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip spi_flash_chip_info = {
5181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.enable_dma = 0,         /* use dma transfer with this chip*/
5191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.bits_per_word = 8,
5201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
5211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
5221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
523a261eec0009b6093727fb7a59b12a10c6c981714Mike Frysinger#if defined(CONFIG_BFIN_SPI_ADC) \
524a261eec0009b6093727fb7a59b12a10c6c981714Mike Frysinger	|| defined(CONFIG_BFIN_SPI_ADC_MODULE)
5251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* SPI ADC chip */
5261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip spi_adc_chip_info = {
5271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.enable_dma = 1,         /* use dma transfer with this chip*/
5281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.bits_per_word = 16,
5291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
5301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
5311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
532d40bd71f88e7be193ce4feb4b92572c70024b9c2Barry Song#if defined(CONFIG_SND_BF5XX_SOC_AD183X) \
533d40bd71f88e7be193ce4feb4b92572c70024b9c2Barry Song	|| defined(CONFIG_SND_BF5XX_SOC_AD183X_MODULE)
5341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip ad1836_spi_chip_info = {
5351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.enable_dma = 0,
5361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.bits_per_word = 16,
5371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
5381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
5391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
5403b82790c12f8122d3df07cc387d2d74355e54c75Barry Song#if defined(CONFIG_SND_BF5XX_SOC_AD193X) \
5413b82790c12f8122d3df07cc387d2d74355e54c75Barry Song	|| defined(CONFIG_SND_BF5XX_SOC_AD193X_MODULE)
542d4b834c13940b5433d16ae3605794b3d74804348Barry Songstatic struct bfin5xx_spi_chip ad1938_spi_chip_info = {
543d4b834c13940b5433d16ae3605794b3d74804348Barry Song	.enable_dma = 0,
544d4b834c13940b5433d16ae3605794b3d74804348Barry Song	.bits_per_word = 8,
545d4b834c13940b5433d16ae3605794b3d74804348Barry Song};
546d4b834c13940b5433d16ae3605794b3d74804348Barry Song#endif
547d4b834c13940b5433d16ae3605794b3d74804348Barry Song
5485b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger#if defined(CONFIG_INPUT_AD714X_SPI) || defined(CONFIG_INPUT_AD714X_SPI_MODULE)
549427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#include <linux/input/ad714x.h>
550427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Songstatic struct bfin5xx_spi_chip ad7147_spi_chip_info = {
551427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.enable_dma = 0,
552427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.bits_per_word = 16,
553427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song};
554427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song
5555b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysingerstatic struct ad714x_slider_plat ad7147_spi_slider_plat[] = {
556427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
557427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.start_stage = 0,
558427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.end_stage = 7,
559427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.max_coord = 128,
560427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
561427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song};
562427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song
5635b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysingerstatic struct ad714x_button_plat ad7147_spi_button_plat[] = {
564427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
565427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_FORWARD,
566427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0,
567427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x600,
568427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
569427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
570427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_LEFT,
571427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0,
572427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x500,
573427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
574427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
575427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_MIDDLE,
576427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0,
577427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x800,
578427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
579427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
580427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_RIGHT,
581427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0x100,
582427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x400,
583427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
584427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
585427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_BACK,
586427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0x200,
587427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x400,
588427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
589427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song};
5905b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysingerstatic struct ad714x_platform_data ad7147_spi_platform_data = {
591427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.slider_num = 1,
592427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.button_num = 5,
5935b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger	.slider = ad7147_spi_slider_plat,
5945b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger	.button = ad7147_spi_button_plat,
595427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.stage_cfg_reg =  {
596427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFBFF, 0x1FFF, 0, 0x2626, 1600, 1600, 1600, 1600},
597427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xEFFF, 0x1FFF, 0, 0x2626, 1650, 1650, 1650, 1650},
598427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x1FFE, 0, 0x2626, 1650, 1650, 1650, 1650},
599427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x1FFB, 0, 0x2626, 1650, 1650, 1650, 1650},
600427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x1FEF, 0, 0x2626, 1650, 1650, 1650, 1650},
601427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x1FBF, 0, 0x2626, 1650, 1650, 1650, 1650},
602427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x1EFF, 0, 0x2626, 1650, 1650, 1650, 1650},
603427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x1BFF, 0, 0x2626, 1600, 1600, 1600, 1600},
604427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFF7B, 0x3FFF, 0x506,  0x2626, 1100, 1100, 1150, 1150},
605427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFDFE, 0x3FFF, 0x606,  0x2626, 1100, 1100, 1150, 1150},
606427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFEBA, 0x1FFF, 0x1400, 0x2626, 1200, 1200, 1300, 1300},
607427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFEF, 0x1FFF, 0x0,    0x2626, 1100, 1100, 1150, 1150},
608427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
609427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.sys_cfg_reg = {0x2B2, 0x0, 0x3233, 0x819, 0x832, 0xCFF, 0xCFF, 0x0},
610427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song};
611427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#endif
612427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song
6135b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger#if defined(CONFIG_INPUT_AD714X_I2C) || defined(CONFIG_INPUT_AD714X_I2C_MODULE)
614427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#include <linux/input/ad714x.h>
6155b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysingerstatic struct ad714x_button_plat ad7142_i2c_button_plat[] = {
616427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
617427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_1,
618427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0,
619427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x1,
620427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
621427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
622427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_2,
623427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0,
624427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x2,
625427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
626427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
627427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_3,
628427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0,
629427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x4,
630427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
631427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
632427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.keycode = BTN_4,
633427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.l_mask = 0x0,
634427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.h_mask = 0x8,
635427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
636427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song};
6375b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysingerstatic struct ad714x_platform_data ad7142_i2c_platform_data = {
638427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.button_num = 4,
6395b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger	.button = ad7142_i2c_button_plat,
640427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.stage_cfg_reg =  {
641427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		/* fixme: figure out right setting for all comoponent according
642427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		 * to hardware feature of EVAL-AD7142EB board */
643427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xE7FF, 0x3FFF, 0x0005, 0x2626, 0x01F4, 0x01F4, 0x028A, 0x028A},
644427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFDBF, 0x3FFF, 0x0001, 0x2626, 0x01F4, 0x01F4, 0x028A, 0x028A},
645427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x2DFF, 0x0001, 0x2626, 0x01F4, 0x01F4, 0x028A, 0x028A},
646427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x37BF, 0x0001, 0x2626, 0x01F4, 0x01F4, 0x028A, 0x028A},
647427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320},
648427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320},
649427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320},
650427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320},
651427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320},
652427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320},
653427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320},
654427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		{0xFFFF, 0x3FFF, 0x0000, 0x0606, 0x01F4, 0x01F4, 0x0320, 0x0320},
655427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
656427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	.sys_cfg_reg = {0x0B2, 0x0, 0x690, 0x664, 0x290F, 0xF, 0xF, 0x0},
657427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song};
658427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#endif
659427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song
660f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang#if defined(CONFIG_AD2S90) || defined(CONFIG_AD2S90_MODULE)
661f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yangstatic struct bfin5xx_spi_chip ad2s90_spi_chip_info = {
662f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang	.enable_dma = 0,
663f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang	.bits_per_word = 16,
664f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang};
665f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang#endif
666f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang
667df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang#if defined(CONFIG_AD2S120X) || defined(CONFIG_AD2S120X_MODULE)
668df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yangunsigned short ad2s120x_platform_data[] = {
669df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang	/* used as SAMPLE and RDVEL */
670df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang	GPIO_PF5, GPIO_PF6, 0
671df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang};
672df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang
673df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yangstatic struct bfin5xx_spi_chip ad2s120x_spi_chip_info = {
674df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang	.enable_dma = 0,
675df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang	.bits_per_word = 16,
676df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang};
677df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang#endif
678df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang
679848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang#if defined(CONFIG_AD2S1210) || defined(CONFIG_AD2S1210_MODULE)
680848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yangunsigned short ad2s1210_platform_data[] = {
681848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	/* use as SAMPLE, A0, A1 */
682848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	GPIO_PF7, GPIO_PF8, GPIO_PF9,
683848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang# if defined(CONFIG_AD2S1210_GPIO_INPUT) || defined(CONFIG_AD2S1210_GPIO_OUTPUT)
684848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	/* the RES0 and RES1 pins */
685848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	GPIO_PF4, GPIO_PF5,
686848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang# endif
687848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	0,
688848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang};
689848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang
690848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yangstatic struct bfin5xx_spi_chip ad2s1210_spi_chip_info = {
691848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	.enable_dma = 0,
692848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	.bits_per_word = 8,
693848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang};
694848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang#endif
695848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang
696f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
697f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#define MMC_SPI_CARD_DETECT_INT IRQ_PF5
698f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li
699f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Listatic int bfin_mmc_spi_init(struct device *dev,
700f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	irqreturn_t (*detect_int)(int, void *), void *data)
701f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li{
702f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	return request_irq(MMC_SPI_CARD_DETECT_INT, detect_int,
703f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		IRQF_TRIGGER_FALLING, "mmc-spi-detect", data);
704f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li}
705f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li
706f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Listatic void bfin_mmc_spi_exit(struct device *dev, void *data)
707f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li{
708f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	free_irq(MMC_SPI_CARD_DETECT_INT, data);
709f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li}
710f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li
711f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Listatic struct mmc_spi_platform_data bfin_mmc_spi_pdata = {
712f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	.init = bfin_mmc_spi_init,
713f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	.exit = bfin_mmc_spi_exit,
714f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	.detect_delay = 100, /* msecs */
715f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li};
716f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li
717f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Listatic struct bfin5xx_spi_chip  mmc_spi_chip_info = {
718f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	.enable_dma = 0,
719f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	.bits_per_word = 8,
720e68d1ebc30e033612bb69f949da654d72beae57dYi Li	.pio_interrupt = 0,
721f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li};
722f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#endif
723f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li
7241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
72546aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#include <linux/spi/ad7877.h>
7261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip spi_ad7877_chip_info = {
7271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.enable_dma = 0,
7281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.bits_per_word = 16,
7291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
7301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
7311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic const struct ad7877_platform_data bfin_ad7877_ts_info = {
7321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.model			= 7877,
7331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.vref_delay_usecs	= 50,	/* internal, no capacitor */
7341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.x_plate_ohms		= 419,
7351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.y_plate_ohms		= 486,
7361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.pressure_max		= 1000,
7371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.pressure_min		= 0,
7386ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.stopacq_polarity	= 1,
7396ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.first_conversion_delay	= 3,
7406ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.acquisition_time	= 1,
7416ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.averaging		= 1,
7426ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.pen_down_acc_interval	= 1,
7431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
7441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
7451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
74646aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_AD7879) || defined(CONFIG_TOUCHSCREEN_AD7879_MODULE)
74746aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#include <linux/spi/ad7879.h>
74846aa04f9b678d1d6f3558429109326775ca87715Michael Hennerichstatic const struct ad7879_platform_data bfin_ad7879_ts_info = {
74946aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	.model			= 7879,	/* Model = AD7879 */
75046aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	.x_plate_ohms		= 620,	/* 620 Ohm from the touch datasheet */
75146aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	.pressure_max		= 10000,
75246aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	.pressure_min		= 0,
7536ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.first_conversion_delay	= 3,	/* wait 512us before do a first conversion */
7546ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.acquisition_time	= 1,	/* 4us acquisition time per sample */
75546aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	.median			= 2,	/* do 8 measurements */
7566ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.averaging		= 1,	/* take the average of 4 middle samples */
7576ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.pen_down_acc_interval	= 255,	/* 9.4 ms */
758244d34230b7447fba95221dbf39b39e94257939cMichael Hennerich	.gpio_export		= 1,	/* Export GPIO to gpiolib */
759244d34230b7447fba95221dbf39b39e94257939cMichael Hennerich	.gpio_base		= -1,	/* Dynamic allocation */
76046aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich};
76146aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#endif
76246aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich
763ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich#if defined(CONFIG_INPUT_ADXL34X) || defined(CONFIG_INPUT_ADXL34X_MODULE)
76457af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich#include <linux/input/adxl34x.h>
765ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerichstatic const struct adxl34x_platform_data adxl34x_info = {
766ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.x_axis_offset = 0,
767ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.y_axis_offset = 0,
768ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.z_axis_offset = 0,
769ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.tap_threshold = 0x31,
770ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.tap_duration = 0x10,
771ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.tap_latency = 0x60,
772ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.tap_window = 0xF0,
773ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.tap_axis_control = ADXL_TAP_X_EN | ADXL_TAP_Y_EN | ADXL_TAP_Z_EN,
774ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.act_axis_control = 0xFF,
775ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.activity_threshold = 5,
776ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.inactivity_threshold = 3,
777ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.inactivity_time = 4,
778ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.free_fall_threshold = 0x7,
779ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.free_fall_time = 0x20,
780ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.data_rate = 0x8,
781ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.data_range = ADXL_FULL_RES,
782ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich
783ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.ev_type = EV_ABS,
784ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.ev_code_x = ABS_X,		/* EV_REL */
785ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.ev_code_y = ABS_Y,		/* EV_REL */
786ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.ev_code_z = ABS_Z,		/* EV_REL */
787ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich
78857af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich	.ev_code_tap = {BTN_TOUCH, BTN_TOUCH, BTN_TOUCH}, /* EV_KEY x,y,z */
789ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich
790ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich/*	.ev_code_ff = KEY_F,*/		/* EV_KEY */
791ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich/*	.ev_code_act_inactivity = KEY_A,*/	/* EV_KEY */
792ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.power_mode = ADXL_AUTO_SLEEP | ADXL_LINK,
793ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	.fifo_mode = ADXL_FIFO_STREAM,
7946ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.orientation_enable = ADXL_EN_ORIENTATION_3D,
7956ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.deadzone_angle = ADXL_DEADZONE_ANGLE_10p8,
7966ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.divisor_length =  ADXL_LP_FILTER_DIVISOR_16,
7976ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	/* EV_KEY {+Z, +Y, +X, -X, -Y, -Z} */
7986ba255f4a8a0785ea8a2b052837a7b91eeac1bb4Michael Hennerich	.ev_codes_orient_3d = {BTN_Z, BTN_Y, BTN_X, BTN_A, BTN_B, BTN_C},
799ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich};
800ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich#endif
801ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich
802f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_AD7879_SPI) || defined(CONFIG_TOUCHSCREEN_AD7879_SPI_MODULE)
803f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerichstatic struct bfin5xx_spi_chip spi_ad7879_chip_info = {
804f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich	.enable_dma = 0,
805f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich	.bits_per_word = 16,
806f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich};
807f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich#endif
808f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich
8096e668936db12550ab5a6a758f236140101e5a644Michael Hennerich#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE)
8106e668936db12550ab5a6a758f236140101e5a644Michael Hennerichstatic struct bfin5xx_spi_chip spidev_chip_info = {
8116e668936db12550ab5a6a758f236140101e5a644Michael Hennerich	.enable_dma = 0,
8126e668936db12550ab5a6a758f236140101e5a644Michael Hennerich	.bits_per_word = 8,
8136e668936db12550ab5a6a758f236140101e5a644Michael Hennerich};
8146e668936db12550ab5a6a758f236140101e5a644Michael Hennerich#endif
8156e668936db12550ab5a6a758f236140101e5a644Michael Hennerich
8162043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
8172043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerichstatic struct bfin5xx_spi_chip lq035q1_spi_chip_info = {
8182043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	.enable_dma	= 0,
8192043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	.bits_per_word	= 8,
8202043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich};
8212043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#endif
8222043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich
82385a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich#if defined(CONFIG_ENC28J60) || defined(CONFIG_ENC28J60_MODULE)
82485a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerichstatic struct bfin5xx_spi_chip enc28j60_spi_chip_info = {
82585a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich	.enable_dma	= 1,
82685a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich	.bits_per_word	= 8,
82785a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich};
82885a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich#endif
82985a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich
830efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich#if defined(CONFIG_ADF702X) || defined(CONFIG_ADF702X_MODULE)
831efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerichstatic struct bfin5xx_spi_chip adf7021_spi_chip_info = {
832efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.bits_per_word = 16,
833efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich};
834efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich
835efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich#include <linux/spi/adf702x.h>
836efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich#define TXREG 0x0160A470
837efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerichstatic const u32 adf7021_regs[] = {
838efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x09608FA0,
839efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x00575011,
840efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x00A7F092,
841efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x2B141563,
842efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x81F29E94,
843efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x00003155,
844efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x050A4F66,
845efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x00000007,
846efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x00000008,
847efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x000231E9,
848efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x3296354A,
849efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x891A2B3B,
850efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x00000D9C,
851efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x0000000D,
852efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x0000000E,
853efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	0x0000000F,
854efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich};
855efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich
856efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerichstatic struct adf702x_platform_data adf7021_platform_data = {
857efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.regs_base = (void *)SPORT1_TCR1,
858efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.dma_ch_rx = CH_SPORT1_RX,
859efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.dma_ch_tx = CH_SPORT1_TX,
860efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.irq_sport_err = IRQ_SPORT1_ERROR,
861efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.gpio_int_rfs = GPIO_PF8,
862efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.pin_req = {P_SPORT1_DTPRI, P_SPORT1_RFS, P_SPORT1_DRPRI,
863efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich			P_SPORT1_RSCLK, P_SPORT1_TSCLK, 0},
864efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.adf702x_model = MODEL_ADF7021,
865efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.adf702x_regs = adf7021_regs,
866efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	.tx_reg = TXREG,
867efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich};
8680531c467da6438f278e9420a30f73eea2fdb73bdMike Frysingerstatic inline void adf702x_mac_init(void)
8690531c467da6438f278e9420a30f73eea2fdb73bdMike Frysinger{
8700531c467da6438f278e9420a30f73eea2fdb73bdMike Frysinger	random_ether_addr(adf7021_platform_data.mac_addr);
8710531c467da6438f278e9420a30f73eea2fdb73bdMike Frysinger}
8720531c467da6438f278e9420a30f73eea2fdb73bdMike Frysinger#else
8730531c467da6438f278e9420a30f73eea2fdb73bdMike Frysingerstatic inline void adf702x_mac_init(void) {}
874efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich#endif
875efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich
876fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
877fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich#include <linux/spi/ads7846.h>
878fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerichstatic struct bfin5xx_spi_chip ad7873_spi_chip_info = {
879fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.bits_per_word	= 8,
880fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich};
881fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich
882fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerichstatic int ads7873_get_pendown_state(void)
883fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich{
884fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	return gpio_get_value(GPIO_PF6);
885fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich}
886fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich
887fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerichstatic struct ads7846_platform_data __initdata ad7873_pdata = {
888fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.model		= 7873,		/* AD7873 */
889fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.x_max		= 0xfff,
890fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.y_max		= 0xfff,
891fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.x_plate_ohms	= 620,
892fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.debounce_max	= 1,
893fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.debounce_rep	= 0,
894fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.debounce_tol	= (~0),
895fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	.get_pendown_state = ads7873_get_pendown_state,
896fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich};
897fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich#endif
898fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich
8998e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich#if defined(CONFIG_MTD_DATAFLASH) \
9008e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich	|| defined(CONFIG_MTD_DATAFLASH_MODULE)
901ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich
902ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerichstatic struct mtd_partition bfin_spi_dataflash_partitions[] = {
903ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	{
904ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.name = "bootloader(spi)",
905ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.size = 0x00040000,
906ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.offset = 0,
907ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.mask_flags = MTD_CAP_ROM
908ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	}, {
909ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.name = "linux kernel(spi)",
9106ecb5b6dbc01b958fdce7008f297a5c7ba2d8105Grace Pan		.size = 0x180000,
911ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.offset = MTDPART_OFS_APPEND,
912ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	}, {
913ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.name = "file system(spi)",
914ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.size = MTDPART_SIZ_FULL,
915ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich		.offset = MTDPART_OFS_APPEND,
916ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	}
917ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich};
918ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich
919ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerichstatic struct flash_platform_data bfin_spi_dataflash_data = {
920ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	.name = "SPI Dataflash",
921ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	.parts = bfin_spi_dataflash_partitions,
922ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich	.nr_parts = ARRAY_SIZE(bfin_spi_dataflash_partitions),
923ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich};
924ceac2651e9b7b77734d1c2b6f5d7d218d22f5427Michael Hennerich
9258e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich/* DataFlash chip */
9268e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerichstatic struct bfin5xx_spi_chip data_flash_chip_info = {
9278e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich	.enable_dma = 0,         /* use dma transfer with this chip*/
9288e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich	.bits_per_word = 8,
9298e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich};
9308e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich#endif
9318e9d5c7daff8b74bf3be62cfe0ba48b5af1fa12fMichael Hennerich
93257af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich#if defined(CONFIG_INPUT_ADXL34X_SPI) || defined(CONFIG_INPUT_ADXL34X_SPI_MODULE)
93357af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerichstatic struct bfin5xx_spi_chip spi_adxl34x_chip_info = {
93457af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich	.enable_dma = 0,         /* use dma transfer with this chip*/
93557af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich	.bits_per_word = 8,
93657af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich};
93757af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich#endif
93857af8edf3f0346aa0f942f245acbfe122bb75707Michael 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
965a261eec0009b6093727fb7a59b12a10c6c981714Mike Frysinger#if defined(CONFIG_BFIN_SPI_ADC) \
966a261eec0009b6093727fb7a59b12a10c6c981714Mike Frysinger	|| defined(CONFIG_BFIN_SPI_ADC_MODULE)
9671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
9681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.modalias = "bfin_spi_adc", /* Name of spi_driver for this device */
9691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.max_speed_hz = 6250000,     /* max spi clock (SCK) speed in HZ */
970c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.bus_num = 0, /* Framework bus number */
9711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.chip_select = 1, /* Framework chip select. */
9721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.platform_data = NULL, /* No spi_driver specific config */
9731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.controller_data = &spi_adc_chip_info,
9741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
9751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
9761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
977d40bd71f88e7be193ce4feb4b92572c70024b9c2Barry Song#if defined(CONFIG_SND_BF5XX_SOC_AD183X) \
978d40bd71f88e7be193ce4feb4b92572c70024b9c2Barry Song	|| defined(CONFIG_SND_BF5XX_SOC_AD183X_MODULE)
9791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
980d40bd71f88e7be193ce4feb4b92572c70024b9c2Barry Song		.modalias = "ad183x",
9811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.max_speed_hz = 3125000,     /* max spi clock (SCK) speed in HZ */
982c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.bus_num = 0,
9837ba80063e90302287625a105c546c2fc318fcfbfBarry Song		.chip_select = 4,
984d40bd71f88e7be193ce4feb4b92572c70024b9c2Barry Song		.platform_data = "ad1836", /* only includes chip name for the moment */
9851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.controller_data = &ad1836_spi_chip_info,
9868312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song		.mode = SPI_MODE_3,
9871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
9881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
989d4b834c13940b5433d16ae3605794b3d74804348Barry Song
9903b82790c12f8122d3df07cc387d2d74355e54c75Barry Song#if defined(CONFIG_SND_BF5XX_SOC_AD193X) || defined(CONFIG_SND_BF5XX_SOC_AD193X_MODULE)
991d4b834c13940b5433d16ae3605794b3d74804348Barry Song	{
9923b82790c12f8122d3df07cc387d2d74355e54c75Barry Song		.modalias = "ad193x",
993d4b834c13940b5433d16ae3605794b3d74804348Barry Song		.max_speed_hz = 3125000,     /* max spi clock (SCK) speed in HZ */
994d4b834c13940b5433d16ae3605794b3d74804348Barry Song		.bus_num = 0,
99508a54bffaf7d5dc9391518323234ce9f9ea4be8eBarry Song		.chip_select = 5,
996d4b834c13940b5433d16ae3605794b3d74804348Barry Song		.controller_data = &ad1938_spi_chip_info,
997d4b834c13940b5433d16ae3605794b3d74804348Barry Song		.mode = SPI_MODE_3,
998d4b834c13940b5433d16ae3605794b3d74804348Barry Song	},
999d4b834c13940b5433d16ae3605794b3d74804348Barry Song#endif
1000d4b834c13940b5433d16ae3605794b3d74804348Barry Song
10015b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger#if defined(CONFIG_INPUT_AD714X_SPI) || defined(CONFIG_INPUT_AD714X_SPI_MODULE)
1002427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	{
1003427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.modalias = "ad714x_captouch",
1004427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.max_speed_hz = 1000000,     /* max spi clock (SCK) speed in HZ */
1005427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.irq = IRQ_PF4,
1006427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.bus_num = 0,
1007427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.chip_select = 5,
1008427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.mode = SPI_MODE_3,
10095b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger		.platform_data = &ad7147_spi_platform_data,
1010427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		.controller_data = &ad7147_spi_chip_info,
1011427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song	},
1012427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song#endif
1013427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song
1014f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang#if defined(CONFIG_AD2S90) || defined(CONFIG_AD2S90_MODULE)
1015f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang	{
1016f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang		.modalias = "ad2s90",
1017f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang		.bus_num = 0,
1018f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang		.chip_select = 3,            /* change it for your board */
1019f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang		.platform_data = NULL,
1020f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang		.controller_data = &ad2s90_spi_chip_info,
1021f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang	},
1022f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang#endif
1023f5f9531c7e588ee62e3aeddb14613ea80e7c2ca2Graf Yang
1024df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang#if defined(CONFIG_AD2S120X) || defined(CONFIG_AD2S120X_MODULE)
1025df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang	{
1026df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang		.modalias = "ad2s120x",
1027df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang		.bus_num = 0,
1028df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang		.chip_select = 4,            /* CS, change it for your board */
1029df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang		.platform_data = ad2s120x_platform_data,
1030df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang		.controller_data = &ad2s120x_spi_chip_info,
1031df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang	},
1032df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang#endif
1033df6a949b4666780969fd90a2f3ac3db3b62552d6Graf Yang
1034848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang#if defined(CONFIG_AD2S1210) || defined(CONFIG_AD2S1210_MODULE)
1035848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	{
1036848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang		.modalias = "ad2s1210",
1037848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang		.max_speed_hz = 8192000,
1038848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang		.bus_num = 0,
1039848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang		.chip_select = 4,            /* CS, change it for your board */
1040848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang		.platform_data = ad2s1210_platform_data,
1041848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang		.controller_data = &ad2s1210_spi_chip_info,
1042848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang	},
1043848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang#endif
1044848c51ccee5c4d51b1dc1a029508cfbb73f8c260Graf Yang
1045f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
1046f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	{
1047f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.modalias = "mmc_spi",
1048f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.max_speed_hz = 20000000,     /* max spi clock (SCK) speed in HZ */
1049f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.bus_num = 0,
1050f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.chip_select = 4,
1051f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.platform_data = &bfin_mmc_spi_pdata,
1052f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.controller_data = &mmc_spi_chip_info,
1053f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li		.mode = SPI_MODE_3,
1054f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li	},
1055f79ea4cba00e2c2f5ffde9007e7ba0fe992b2e18Yi Li#endif
10561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
10571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
10581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.modalias		= "ad7877",
10591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.platform_data		= &bfin_ad7877_ts_info,
10601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.irq			= IRQ_PF6,
10611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.max_speed_hz	= 12500000,     /* max spi clock (SCK) speed in HZ */
1062c7d4896621d42c84956911afd5f10a5d317c781aMichael Hennerich		.bus_num	= 0,
10631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.chip_select  = 1,
10641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.controller_data = &spi_ad7877_chip_info,
10651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
10661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
1067f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_AD7879_SPI) || defined(CONFIG_TOUCHSCREEN_AD7879_SPI_MODULE)
106846aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	{
106946aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.modalias = "ad7879",
107046aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.platform_data = &bfin_ad7879_ts_info,
107146aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.irq = IRQ_PF7,
107246aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.max_speed_hz = 5000000,     /* max spi clock (SCK) speed in HZ */
107346aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.bus_num = 0,
107446aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.chip_select = 1,
107546aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.controller_data = &spi_ad7879_chip_info,
107646aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.mode = SPI_CPHA | SPI_CPOL,
107746aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich	},
107846aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich#endif
10796e668936db12550ab5a6a758f236140101e5a644Michael Hennerich#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE)
10806e668936db12550ab5a6a758f236140101e5a644Michael Hennerich	{
10816e668936db12550ab5a6a758f236140101e5a644Michael Hennerich		.modalias = "spidev",
10826e668936db12550ab5a6a758f236140101e5a644Michael Hennerich		.max_speed_hz = 3125000,     /* max spi clock (SCK) speed in HZ */
10836e668936db12550ab5a6a758f236140101e5a644Michael Hennerich		.bus_num = 0,
10846e668936db12550ab5a6a758f236140101e5a644Michael Hennerich		.chip_select = 1,
10856e668936db12550ab5a6a758f236140101e5a644Michael Hennerich		.controller_data = &spidev_chip_info,
10866e668936db12550ab5a6a758f236140101e5a644Michael Hennerich	},
10876e668936db12550ab5a6a758f236140101e5a644Michael Hennerich#endif
10882043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
10892043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	{
10902043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.modalias = "bfin-lq035q1-spi",
10912043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.max_speed_hz = 20000000,     /* max spi clock (SCK) speed in HZ */
10922043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.bus_num = 0,
109346aa04f9b678d1d6f3558429109326775ca87715Michael Hennerich		.chip_select = 2,
10942043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.controller_data = &lq035q1_spi_chip_info,
10952043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.mode = SPI_CPHA | SPI_CPOL,
10962043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	},
10972043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#endif
109885a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich#if defined(CONFIG_ENC28J60) || defined(CONFIG_ENC28J60_MODULE)
109985a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich	{
110085a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich		.modalias = "enc28j60",
110185a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich		.max_speed_hz = 20000000,     /* max spi clock (SCK) speed in HZ */
110285a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich		.irq = IRQ_PF6,
110385a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich		.bus_num = 0,
1104f9f0e3b1f7ac4e9fa822e87dd4bbb38f8c389487Barry Song		.chip_select = GPIO_PF10 + MAX_CTRL_CS,	/* GPIO controlled SSEL */
110585a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich		.controller_data = &enc28j60_spi_chip_info,
110685a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich		.mode = SPI_MODE_0,
110785a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich	},
110885a192e92dcb67552ee3fcdf2e36c11688b61955Michael Hennerich#endif
110957af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich#if defined(CONFIG_INPUT_ADXL34X_SPI) || defined(CONFIG_INPUT_ADXL34X_SPI_MODULE)
111057af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich	{
111157af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.modalias	= "adxl34x",
111257af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.platform_data	= &adxl34x_info,
111357af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.irq		= IRQ_PF6,
111457af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.max_speed_hz	= 5000000,    /* max spi clock (SCK) speed in HZ */
111557af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.bus_num	= 0,
111657af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.chip_select	= 2,
111757af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.controller_data = &spi_adxl34x_chip_info,
111857af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich		.mode = SPI_MODE_3,
111957af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich	},
112057af8edf3f0346aa0f942f245acbfe122bb75707Michael Hennerich#endif
1121efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich#if defined(CONFIG_ADF702X) || defined(CONFIG_ADF702X_MODULE)
1122efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	{
1123efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich		.modalias = "adf702x",
1124efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich		.max_speed_hz = 16000000,     /* max spi clock (SCK) speed in HZ */
1125efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich		.bus_num = 0,
1126f9f0e3b1f7ac4e9fa822e87dd4bbb38f8c389487Barry Song		.chip_select = GPIO_PF10 + MAX_CTRL_CS,	/* GPIO controlled SSEL */
1127efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich		.controller_data = &adf7021_spi_chip_info,
1128efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich		.platform_data = &adf7021_platform_data,
1129efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich		.mode = SPI_MODE_0,
1130efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich	},
1131efaf7cd9557712a72b5856af19d701783b654a63Michael Hennerich#endif
1132fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
1133fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	{
1134fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.modalias = "ads7846",
1135fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.max_speed_hz = 2000000,     /* max spi clock (SCK) speed in HZ */
1136fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.bus_num = 0,
1137fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.irq = IRQ_PF6,
1138fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.chip_select = GPIO_PF10 + MAX_CTRL_CS,	/* GPIO controlled SSEL */
1139fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.controller_data = &ad7873_spi_chip_info,
1140fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.platform_data = &ad7873_pdata,
1141fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich		.mode = SPI_MODE_0,
1142fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich	},
1143fe5b25c09873faee44077ee6ff8f23eee61b0fa0Michael Hennerich#endif
11441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
11451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
11465bda27235b24146cf870de663141ee4fbfa8a70bMike Frysinger#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
11471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* SPI controller data */
1148c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct bfin5xx_spi_master bfin_spi0_info = {
1149f9f0e3b1f7ac4e9fa822e87dd4bbb38f8c389487Barry Song	.num_chipselect = MAX_CTRL_CS + MAX_BLACKFIN_GPIOS,
11501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.enable_dma = 1,  /* master has the ability to do dma transfer */
11515d448dd50712ae42f8176b5bb8db4703bef6f0f5Bryan Wu	.pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
11521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
11531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1154c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu/* SPI (0) */
1155c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct resource bfin_spi0_resource[] = {
1156c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	[0] = {
1157c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = SPI0_REGBASE,
1158c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end   = SPI0_REGBASE + 0xFF,
1159c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_MEM,
1160c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		},
1161c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	[1] = {
1162c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = CH_SPI,
1163c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end   = CH_SPI,
1164e68d1ebc30e033612bb69f949da654d72beae57dYi Li		.flags = IORESOURCE_DMA,
1165e68d1ebc30e033612bb69f949da654d72beae57dYi Li	},
1166e68d1ebc30e033612bb69f949da654d72beae57dYi Li	[2] = {
1167e68d1ebc30e033612bb69f949da654d72beae57dYi Li		.start = IRQ_SPI,
1168e68d1ebc30e033612bb69f949da654d72beae57dYi Li		.end   = IRQ_SPI,
1169c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_IRQ,
1170c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	},
1171c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu};
1172c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
1173c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct platform_device bfin_spi0_device = {
1174c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.name = "bfin-spi",
1175c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.id = 0, /* Bus number */
1176c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.num_resources = ARRAY_SIZE(bfin_spi0_resource),
1177c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.resource = bfin_spi0_resource,
11781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.dev = {
1179c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.platform_data = &bfin_spi0_info, /* Passed to driver */
11801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
11811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
11821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif  /* spi master and devices */
11831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
11841e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai#if defined(CONFIG_SPI_BFIN_SPORT) || defined(CONFIG_SPI_BFIN_SPORT_MODULE)
11851e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
11861e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai/* SPORT SPI controller data */
11871e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct bfin5xx_spi_master bfin_sport_spi0_info = {
11881e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.num_chipselect = 1, /* master only supports one device */
11891e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.enable_dma = 0,  /* master don't support DMA */
11901e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.pin_req = {P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_DRPRI,
11911e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		P_SPORT0_RSCLK, P_SPORT0_TFS, P_SPORT0_RFS, 0},
11921e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai};
11931e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
11941e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct resource bfin_sport_spi0_resource[] = {
11951e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	[0] = {
11961e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.start = SPORT0_TCR1,
11971e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.end   = SPORT0_TCR1 + 0xFF,
11981e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.flags = IORESOURCE_MEM,
11991e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		},
12001e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	[1] = {
12011e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.start = IRQ_SPORT0_ERROR,
12021e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.end   = IRQ_SPORT0_ERROR,
12031e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.flags = IORESOURCE_IRQ,
12041e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		},
12051e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai};
12061e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
12071e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct platform_device bfin_sport_spi0_device = {
12081e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.name = "bfin-sport-spi",
12091e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.id = 1, /* Bus number */
12101e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.num_resources = ARRAY_SIZE(bfin_sport_spi0_resource),
12111e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.resource = bfin_sport_spi0_resource,
12121e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.dev = {
12131e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.platform_data = &bfin_sport_spi0_info, /* Passed to driver */
12141e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	},
12151e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai};
12161e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
12171e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct bfin5xx_spi_master bfin_sport_spi1_info = {
12181e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.num_chipselect = 1, /* master only supports one device */
12191e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.enable_dma = 0,  /* master don't support DMA */
12201e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.pin_req = {P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_DRPRI,
12211e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		P_SPORT1_RSCLK, P_SPORT1_TFS, P_SPORT1_RFS, 0},
12221e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai};
12231e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
12241e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct resource bfin_sport_spi1_resource[] = {
12251e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	[0] = {
12261e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.start = SPORT1_TCR1,
12271e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.end   = SPORT1_TCR1 + 0xFF,
12281e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.flags = IORESOURCE_MEM,
12291e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		},
12301e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	[1] = {
12311e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.start = IRQ_SPORT1_ERROR,
12321e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.end   = IRQ_SPORT1_ERROR,
12331e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.flags = IORESOURCE_IRQ,
12341e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		},
12351e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai};
12361e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
12371e9aa95526c3dfc50e55665c7129469a12593bebCliff Caistatic struct platform_device bfin_sport_spi1_device = {
12381e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.name = "bfin-sport-spi",
12391e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.id = 2, /* Bus number */
12401e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.num_resources = ARRAY_SIZE(bfin_sport_spi1_resource),
12411e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.resource = bfin_sport_spi1_resource,
12421e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	.dev = {
12431e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai		.platform_data = &bfin_sport_spi1_info, /* Passed to driver */
12441e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	},
12451e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai};
12461e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
12471e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai#endif  /* sport spi master and devices */
12481e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
12491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_FB_BF537_LQ035) || defined(CONFIG_FB_BF537_LQ035_MODULE)
12501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_fb_device = {
1251c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.name = "bf537-lq035",
1252c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu};
1253c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif
1254c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
12552043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
12562043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#include <asm/bfin-lq035q1.h>
12572043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich
12582043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerichstatic struct bfin_lq035q1fb_disp_info bfin_lq035q1_data = {
1259d94a1aa44ed6bfe8d8ab36c02de652d4fcf0d2c3Michael Hennerich	.mode = LQ035_NORM | LQ035_RGB | LQ035_RL | LQ035_TB,
1260d94a1aa44ed6bfe8d8ab36c02de652d4fcf0d2c3Michael Hennerich	.ppi_mode = USE_RGB565_16_BIT_PPI,
1261d94a1aa44ed6bfe8d8ab36c02de652d4fcf0d2c3Michael Hennerich	.use_bl = 0,	/* let something else control the LCD Blacklight */
1262d94a1aa44ed6bfe8d8ab36c02de652d4fcf0d2c3Michael Hennerich	.gpio_bl = GPIO_PF7,
12632043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich};
12642043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich
12652043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerichstatic struct resource bfin_lq035q1_resources[] = {
12662043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	{
12672043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.start = IRQ_PPI_ERROR,
12682043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.end = IRQ_PPI_ERROR,
12692043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.flags = IORESOURCE_IRQ,
12702043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	},
12712043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich};
12722043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich
12732043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerichstatic struct platform_device bfin_lq035q1_device = {
12742043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	.name		= "bfin-lq035q1",
12752043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	.id		= -1,
1276d94a1aa44ed6bfe8d8ab36c02de652d4fcf0d2c3Michael Hennerich	.num_resources	= ARRAY_SIZE(bfin_lq035q1_resources),
1277d94a1aa44ed6bfe8d8ab36c02de652d4fcf0d2c3Michael Hennerich	.resource	= bfin_lq035q1_resources,
12782043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	.dev		= {
12792043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich		.platform_data = &bfin_lq035q1_data,
12802043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	},
12812043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich};
12822043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#endif
12832043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich
12841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
1285233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART0
12866bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhangstatic struct resource bfin_uart0_resources[] = {
12871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	{
12886bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = UART0_THR,
12896bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = UART0_GCTL+2,
12901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
1291233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang	},
12926bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
12936bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = IRQ_UART0_RX,
12946bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = IRQ_UART0_RX+1,
12956bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_IRQ,
12966bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
12976bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
12986bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = IRQ_UART0_ERROR,
12996bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = IRQ_UART0_ERROR,
13006bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_IRQ,
13016bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
13026bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
13036bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = CH_UART0_TX,
13046bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = CH_UART0_TX,
13056bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_DMA,
13066bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
13076bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
13086bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = CH_UART0_RX,
13096bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = CH_UART0_RX,
13106bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_DMA,
13116bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
13126bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#ifdef CONFIG_BFIN_UART0_CTSRTS
13136bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{	/* CTS pin */
13146bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = GPIO_PG7,
13156bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = GPIO_PG7,
13166bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_IO,
13176bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
13186bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{	/* RTS pin */
13196bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = GPIO_PG6,
13206bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = GPIO_PG6,
13216bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_IO,
13226bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
13236bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#endif
13246bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang};
13256bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang
13266bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhangunsigned short bfin_uart0_peripherals[] = {
13276bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	P_UART0_TX, P_UART0_RX, 0
13286bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang};
13296bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang
13306bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhangstatic struct platform_device bfin_uart0_device = {
13316bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.name = "bfin-uart",
13326bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.id = 0,
13336bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.num_resources = ARRAY_SIZE(bfin_uart0_resources),
13346bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.resource = bfin_uart0_resources,
13356bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.dev = {
13366bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.platform_data = &bfin_uart0_peripherals, /* Passed to driver */
13376bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
13386bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang};
1339233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang#endif
1340233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART1
13416bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhangstatic struct resource bfin_uart1_resources[] = {
1342233b28a91caf7cff326e604c437a364eaf794106Sonic Zhang	{
13436bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = UART1_THR,
13446bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = UART1_GCTL+2,
13451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu		.flags = IORESOURCE_MEM,
13461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	},
13476bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
13486bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = IRQ_UART1_RX,
13496bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = IRQ_UART1_RX+1,
13506bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_IRQ,
13516bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
13526bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
13536bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = IRQ_UART1_ERROR,
13546bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = IRQ_UART1_ERROR,
13556bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_IRQ,
13566bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
13576bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
13586bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = CH_UART1_TX,
13596bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = CH_UART1_TX,
13606bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_DMA,
13616bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
13626bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	{
13636bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.start = CH_UART1_RX,
13646bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.end = CH_UART1_RX,
13656bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.flags = IORESOURCE_DMA,
13666bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
13676bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang};
13686bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang
13696bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhangunsigned short bfin_uart1_peripherals[] = {
13706bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	P_UART1_TX, P_UART1_RX, 0
13711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
13721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
13736bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhangstatic struct platform_device bfin_uart1_device = {
13741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "bfin-uart",
13751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = 1,
13766bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.num_resources = ARRAY_SIZE(bfin_uart1_resources),
13776bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.resource = bfin_uart1_resources,
13786bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	.dev = {
13796bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang		.platform_data = &bfin_uart1_peripherals, /* Passed to driver */
13806bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	},
13811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
13821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
13836bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#endif
13841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
13855be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
13865be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#ifdef CONFIG_BFIN_SIR0
138742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct resource bfin_sir0_resources[] = {
13885be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang	{
13895be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang		.start = 0xFFC00400,
13905be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang		.end = 0xFFC004FF,
13915be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang		.flags = IORESOURCE_MEM,
13925be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang	},
139342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	{
139442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.start = IRQ_UART0_RX,
139542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.end = IRQ_UART0_RX+1,
139642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.flags = IORESOURCE_IRQ,
139742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	},
139842bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	{
139942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.start = CH_UART0_RX,
140042bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.end = CH_UART0_RX+1,
140142bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.flags = IORESOURCE_DMA,
140242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	},
140342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang};
140442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang
140542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct platform_device bfin_sir0_device = {
140642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.name = "bfin_sir",
140742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.id = 0,
140842bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.num_resources = ARRAY_SIZE(bfin_sir0_resources),
140942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.resource = bfin_sir0_resources,
141042bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang};
14115be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#endif
14125be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#ifdef CONFIG_BFIN_SIR1
141342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct resource bfin_sir1_resources[] = {
14145be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang	{
14155be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang		.start = 0xFFC02000,
14165be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang		.end = 0xFFC020FF,
14175be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang		.flags = IORESOURCE_MEM,
14185be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang	},
141942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	{
142042bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.start = IRQ_UART1_RX,
142142bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.end = IRQ_UART1_RX+1,
142242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.flags = IORESOURCE_IRQ,
142342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	},
142442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	{
142542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.start = CH_UART1_RX,
142642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.end = CH_UART1_RX+1,
142742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang		.flags = IORESOURCE_DMA,
142842bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	},
14295be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang};
14305be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang
143142bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct platform_device bfin_sir1_device = {
14325be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang	.name = "bfin_sir",
143342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.id = 1,
143442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.num_resources = ARRAY_SIZE(bfin_sir1_resources),
143542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	.resource = bfin_sir1_resources,
14365be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang};
14375be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#endif
143842bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#endif
14395be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang
14401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
1441c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct resource bfin_twi0_resource[] = {
1442c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	[0] = {
1443c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = TWI0_REGBASE,
1444c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end   = TWI0_REGBASE,
1445c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_MEM,
1446c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	},
1447c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	[1] = {
1448c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = IRQ_TWI,
1449c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end   = IRQ_TWI,
1450c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_IRQ,
1451c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	},
1452c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu};
1453c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
14541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device i2c_bfin_twi_device = {
14551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "i2c-bfin-twi",
14561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = 0,
1457c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.num_resources = ARRAY_SIZE(bfin_twi0_resource),
1458c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.resource = bfin_twi0_resource,
14591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
14601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
14611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
146251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich#if defined(CONFIG_KEYBOARD_ADP5588) || defined(CONFIG_KEYBOARD_ADP5588_MODULE)
146351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerichstatic const unsigned short adp5588_keymap[ADP5588_KEYMAPSIZE] = {
146451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[0]	 = KEY_GRAVE,
146551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[1]	 = KEY_1,
146651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[2]	 = KEY_2,
146751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[3]	 = KEY_3,
146851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[4]	 = KEY_4,
146951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[5]	 = KEY_5,
147051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[6]	 = KEY_6,
147151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[7]	 = KEY_7,
147251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[8]	 = KEY_8,
147351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[9]	 = KEY_9,
147451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[10]	 = KEY_0,
147551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[11]	 = KEY_MINUS,
147651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[12]	 = KEY_EQUAL,
147751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[13]	 = KEY_BACKSLASH,
147851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[15]	 = KEY_KP0,
147951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[16]	 = KEY_Q,
148051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[17]	 = KEY_W,
148151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[18]	 = KEY_E,
148251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[19]	 = KEY_R,
148351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[20]	 = KEY_T,
148451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[21]	 = KEY_Y,
148551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[22]	 = KEY_U,
148651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[23]	 = KEY_I,
148751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[24]	 = KEY_O,
148851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[25]	 = KEY_P,
148951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[26]	 = KEY_LEFTBRACE,
149051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[27]	 = KEY_RIGHTBRACE,
149151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[29]	 = KEY_KP1,
149251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[30]	 = KEY_KP2,
149351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[31]	 = KEY_KP3,
149451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[32]	 = KEY_A,
149551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[33]	 = KEY_S,
149651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[34]	 = KEY_D,
149751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[35]	 = KEY_F,
149851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[36]	 = KEY_G,
149951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[37]	 = KEY_H,
150051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[38]	 = KEY_J,
150151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[39]	 = KEY_K,
150251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[40]	 = KEY_L,
150351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[41]	 = KEY_SEMICOLON,
150451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[42]	 = KEY_APOSTROPHE,
150551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[43]	 = KEY_BACKSLASH,
150651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[45]	 = KEY_KP4,
150751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[46]	 = KEY_KP5,
150851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[47]	 = KEY_KP6,
150951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[48]	 = KEY_102ND,
151051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[49]	 = KEY_Z,
151151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[50]	 = KEY_X,
151251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[51]	 = KEY_C,
151351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[52]	 = KEY_V,
151451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[53]	 = KEY_B,
151551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[54]	 = KEY_N,
151651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[55]	 = KEY_M,
151751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[56]	 = KEY_COMMA,
151851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[57]	 = KEY_DOT,
151951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[58]	 = KEY_SLASH,
152051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[60]	 = KEY_KPDOT,
152151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[61]	 = KEY_KP7,
152251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[62]	 = KEY_KP8,
152351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[63]	 = KEY_KP9,
152451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[64]	 = KEY_SPACE,
152551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[65]	 = KEY_BACKSPACE,
152651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[66]	 = KEY_TAB,
152751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[67]	 = KEY_KPENTER,
152851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[68]	 = KEY_ENTER,
152951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[69]	 = KEY_ESC,
153051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[70]	 = KEY_DELETE,
153151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[74]	 = KEY_KPMINUS,
153251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[76]	 = KEY_UP,
153351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[77]	 = KEY_DOWN,
153451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[78]	 = KEY_RIGHT,
153551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	[79]	 = KEY_LEFT,
153651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich};
153751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich
153851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerichstatic struct adp5588_kpad_platform_data adp5588_kpad_data = {
153951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	.rows		= 8,
154051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	.cols		= 10,
154151ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	.keymap		= adp5588_keymap,
154251ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	.keymapsize	= ARRAY_SIZE(adp5588_keymap),
154351ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	.repeat		= 0,
154451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich};
154551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich#endif
154651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich
15473ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#if defined(CONFIG_PMIC_ADP5520) || defined(CONFIG_PMIC_ADP5520_MODULE)
15483ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#include <linux/mfd/adp5520.h>
15493ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
15503ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	/*
15513ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 *  ADP5520/5501 Backlight Data
15523ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 */
15533ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
15541d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerichstatic struct adp5520_backlight_platform_data adp5520_backlight_data = {
15551d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.fade_in		= ADP5520_FADE_T_1200ms,
15561d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.fade_out		= ADP5520_FADE_T_1200ms,
15571d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.fade_led_law		= ADP5520_BL_LAW_LINEAR,
15581d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.en_ambl_sens		= 1,
15591d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.abml_filt		= ADP5520_BL_AMBL_FILT_640ms,
15601d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l1_daylight_max	= ADP5520_BL_CUR_mA(15),
15611d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l1_daylight_dim	= ADP5520_BL_CUR_mA(0),
15621d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l2_office_max		= ADP5520_BL_CUR_mA(7),
15631d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l2_office_dim		= ADP5520_BL_CUR_mA(0),
15641d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l3_dark_max		= ADP5520_BL_CUR_mA(3),
15651d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l3_dark_dim		= ADP5520_BL_CUR_mA(0),
15661d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l2_trip		= ADP5520_L2_COMP_CURR_uA(700),
15671d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l2_hyst		= ADP5520_L2_COMP_CURR_uA(50),
15681d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l3_trip		= ADP5520_L3_COMP_CURR_uA(80),
15691d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.l3_hyst		= ADP5520_L3_COMP_CURR_uA(20),
15703ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich};
15713ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
15723ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	/*
15733ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 *  ADP5520/5501 LEDs Data
15743ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 */
15753ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
15763ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerichstatic struct led_info adp5520_leds[] = {
15773ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	{
15783ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.name = "adp5520-led1",
15793ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.default_trigger = "none",
15801d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich		.flags = FLAG_ID_ADP5520_LED1_ADP5501_LED0 | ADP5520_LED_OFFT_600ms,
15813ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	},
15823ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#ifdef ADP5520_EN_ALL_LEDS
15833ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	{
15843ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.name = "adp5520-led2",
15853ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.default_trigger = "none",
15863ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.flags = FLAG_ID_ADP5520_LED2_ADP5501_LED1,
15873ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	},
15883ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	{
15893ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.name = "adp5520-led3",
15903ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.default_trigger = "none",
15913ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.flags = FLAG_ID_ADP5520_LED3_ADP5501_LED2,
15923ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	},
15933ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#endif
15943ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich};
15953ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
15961d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerichstatic struct adp5520_leds_platform_data adp5520_leds_data = {
15973ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	.num_leds = ARRAY_SIZE(adp5520_leds),
15983ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	.leds = adp5520_leds,
15991d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.fade_in = ADP5520_FADE_T_600ms,
16001d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.fade_out = ADP5520_FADE_T_600ms,
16011d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.led_on_time = ADP5520_LED_ONT_600ms,
16023ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich};
16033ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
16043ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	/*
16053ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 *  ADP5520 GPIO Data
16063ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 */
16073ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
16081d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerichstatic struct adp5520_gpio_platform_data adp5520_gpio_data = {
16093ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	.gpio_start = 50,
16101d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.gpio_en_mask = ADP5520_GPIO_C1 | ADP5520_GPIO_C2 | ADP5520_GPIO_R2,
16111d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.gpio_pullup_mask = ADP5520_GPIO_C1 | ADP5520_GPIO_C2 | ADP5520_GPIO_R2,
16123ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich};
16133ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
16143ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	/*
16153ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 *  ADP5520 Keypad Data
16163ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 */
16173ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
16183ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerichstatic const unsigned short adp5520_keymap[ADP5520_KEYMAPSIZE] = {
16191d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(0, 0)]	= KEY_GRAVE,
16201d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(0, 1)]	= KEY_1,
16211d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(0, 2)]	= KEY_2,
16221d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(0, 3)]	= KEY_3,
16231d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(1, 0)]	= KEY_4,
16241d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(1, 1)]	= KEY_5,
16251d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(1, 2)]	= KEY_6,
16261d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(1, 3)]	= KEY_7,
16271d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(2, 0)]	= KEY_8,
16281d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(2, 1)]	= KEY_9,
16291d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(2, 2)]	= KEY_0,
16301d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(2, 3)]	= KEY_MINUS,
16311d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(3, 0)]	= KEY_EQUAL,
16321d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(3, 1)]	= KEY_BACKSLASH,
16331d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(3, 2)]	= KEY_BACKSPACE,
16341d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	[ADP5520_KEY(3, 3)]	= KEY_ENTER,
16351d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich};
16361d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich
16371d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerichstatic struct adp5520_keys_platform_data adp5520_keys_data = {
16381d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.rows_en_mask	= ADP5520_ROW_R3 | ADP5520_ROW_R2 | ADP5520_ROW_R1 | ADP5520_ROW_R0,
16391d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.cols_en_mask	= ADP5520_COL_C3 | ADP5520_COL_C2 | ADP5520_COL_C1 | ADP5520_COL_C0,
16403ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	.keymap		= adp5520_keymap,
16413ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	.keymapsize	= ARRAY_SIZE(adp5520_keymap),
16423ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	.repeat		= 0,
16433ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich};
16443ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
16453ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	/*
16463ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 *  ADP5520/5501 Multifuction Device Init Data
16473ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	 */
16483ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
16493ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerichstatic struct adp5520_platform_data adp5520_pdev_data = {
16501d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.backlight = &adp5520_backlight_data,
16511d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.leds = &adp5520_leds_data,
16521d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.gpio = &adp5520_gpio_data,
16531d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerich	.keys = &adp5520_keys_data,
16543ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich};
16553ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
16563ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#endif
16573ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich
1658ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich#if defined(CONFIG_GPIO_ADP5588) || defined(CONFIG_GPIO_ADP5588_MODULE)
16591d23dc89f29b8ceea87bb6656172c13e4c9549deMichael Hennerichstatic struct adp5588_gpio_platform_data adp5588_gpio_data = {
1660ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich	.gpio_start = 50,
1661ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich	.pullup_dis_mask = 0,
1662ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich};
1663ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich#endif
1664ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich
166578756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#if defined(CONFIG_BACKLIGHT_ADP8870) || defined(CONFIG_BACKLIGHT_ADP8870_MODULE)
166678756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#include <linux/i2c/adp8870.h>
166778756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerichstatic struct led_info adp8870_leds[] = {
166878756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	{
166978756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich		.name = "adp8870-led7",
167078756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich		.default_trigger = "none",
167178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich		.flags = ADP8870_LED_D7 | ADP8870_LED_OFFT_600ms,
167278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	},
167378756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich};
167478756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
167578756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
167678756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerichstatic struct adp8870_backlight_platform_data adp8870_pdata = {
167778756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.bl_led_assign = ADP8870_BL_D1 | ADP8870_BL_D2 | ADP8870_BL_D3 |
167878756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich			 ADP8870_BL_D4 | ADP8870_BL_D5 | ADP8870_BL_D6,	/* 1 = Backlight 0 = Individual LED */
167978756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.pwm_assign = 0,				/* 1 = Enables PWM mode */
168078756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
168178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.bl_fade_in = ADP8870_FADE_T_1200ms,		/* Backlight Fade-In Timer */
168278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.bl_fade_out = ADP8870_FADE_T_1200ms,		/* Backlight Fade-Out Timer */
168378756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.bl_fade_law = ADP8870_FADE_LAW_CUBIC1,		/* fade-on/fade-off transfer characteristic */
168478756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
168578756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.en_ambl_sens = 1,				/* 1 = enable ambient light sensor */
168678756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.abml_filt = ADP8870_BL_AMBL_FILT_320ms,	/* Light sensor filter time */
168778756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
168878756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l1_daylight_max = ADP8870_BL_CUR_mA(20),	/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
168978756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l1_daylight_dim = ADP8870_BL_CUR_mA(0),	/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
169078756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l2_bright_max = ADP8870_BL_CUR_mA(14),		/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
169178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l2_bright_dim = ADP8870_BL_CUR_mA(0),		/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
169278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l3_office_max = ADP8870_BL_CUR_mA(6),		/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
169378756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l3_office_dim = ADP8870_BL_CUR_mA(0),		/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
169478756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l4_indoor_max = ADP8870_BL_CUR_mA(3),		/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
169578756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l4_indor_dim = ADP8870_BL_CUR_mA(0),		/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
169678756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l5_dark_max = ADP8870_BL_CUR_mA(2),		/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
169778756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l5_dark_dim = ADP8870_BL_CUR_mA(0),		/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
169878756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
169978756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l2_trip = ADP8870_L2_COMP_CURR_uA(710),	/* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
170078756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l2_hyst = ADP8870_L2_COMP_CURR_uA(73),		/* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
170178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l3_trip = ADP8870_L3_COMP_CURR_uA(389),	/* use L3_COMP_CURR_uA(I) 0 <= I <= 551 uA */
170278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l3_hyst = ADP8870_L3_COMP_CURR_uA(54),		/* use L3_COMP_CURR_uA(I) 0 <= I <= 551 uA */
170378756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l4_trip = ADP8870_L4_COMP_CURR_uA(167),	/* use L4_COMP_CURR_uA(I) 0 <= I <= 275 uA */
170478756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l4_hyst = ADP8870_L4_COMP_CURR_uA(16),		/* use L4_COMP_CURR_uA(I) 0 <= I <= 275 uA */
170578756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l5_trip = ADP8870_L5_COMP_CURR_uA(43),		/* use L5_COMP_CURR_uA(I) 0 <= I <= 138 uA */
170678756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.l5_hyst = ADP8870_L5_COMP_CURR_uA(11),		/* use L6_COMP_CURR_uA(I) 0 <= I <= 138 uA */
170778756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
170878756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.leds = adp8870_leds,
170978756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.num_leds = ARRAY_SIZE(adp8870_leds),
171078756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.led_fade_law = ADP8870_FADE_LAW_SQUARE,	/* fade-on/fade-off transfer characteristic */
171178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.led_fade_in = ADP8870_FADE_T_600ms,
171278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.led_fade_out = ADP8870_FADE_T_600ms,
171378756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	.led_on_time = ADP8870_LED_ONT_200ms,
171478756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich};
171578756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#endif
171678756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich
171772fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich#if defined(CONFIG_BACKLIGHT_ADP8860) || defined(CONFIG_BACKLIGHT_ADP8860_MODULE)
171872fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich#include <linux/i2c/adp8860.h>
171972fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerichstatic struct led_info adp8860_leds[] = {
172072fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	{
172172fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich		.name = "adp8860-led7",
172272fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich		.default_trigger = "none",
172372fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich		.flags = ADP8860_LED_D7 | ADP8860_LED_OFFT_600ms,
172472fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	},
172572fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich};
172672fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
172772fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerichstatic struct adp8860_backlight_platform_data adp8860_pdata = {
172872fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.bl_led_assign = ADP8860_BL_D1 | ADP8860_BL_D2 | ADP8860_BL_D3 |
172972fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich			 ADP8860_BL_D4 | ADP8860_BL_D5 | ADP8860_BL_D6,	/* 1 = Backlight 0 = Individual LED */
173072fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
173172fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.bl_fade_in = ADP8860_FADE_T_1200ms,		/* Backlight Fade-In Timer */
173272fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.bl_fade_out = ADP8860_FADE_T_1200ms,		/* Backlight Fade-Out Timer */
173372fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.bl_fade_law = ADP8860_FADE_LAW_CUBIC1,		/* fade-on/fade-off transfer characteristic */
173472fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
173572fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.en_ambl_sens = 1,				/* 1 = enable ambient light sensor */
173672fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.abml_filt = ADP8860_BL_AMBL_FILT_320ms,	/* Light sensor filter time */
173772fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
173872fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l1_daylight_max = ADP8860_BL_CUR_mA(20),	/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
173972fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l1_daylight_dim = ADP8860_BL_CUR_mA(0),	/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
174072fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l2_office_max = ADP8860_BL_CUR_mA(6),		/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
174172fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l2_office_dim = ADP8860_BL_CUR_mA(0),		/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
174272fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l3_dark_max = ADP8860_BL_CUR_mA(2),		/* use BL_CUR_mA(I) 0 <= I <= 30 mA */
174372fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l3_dark_dim = ADP8860_BL_CUR_mA(0),		/* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
174472fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
174572fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l2_trip = ADP8860_L2_COMP_CURR_uA(710),	/* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
174672fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l2_hyst = ADP8860_L2_COMP_CURR_uA(73),		/* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
174772fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l3_trip = ADP8860_L3_COMP_CURR_uA(43),		/* use L3_COMP_CURR_uA(I) 0 <= I <= 138 uA */
174872fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.l3_hyst = ADP8860_L3_COMP_CURR_uA(11),		/* use L3_COMP_CURR_uA(I) 0 <= I <= 138 uA */
174972fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
175072fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.leds = adp8860_leds,
175172fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.num_leds = ARRAY_SIZE(adp8860_leds),
175272fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.led_fade_law = ADP8860_FADE_LAW_SQUARE,	/* fade-on/fade-off transfer characteristic */
175372fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.led_fade_in = ADP8860_FADE_T_600ms,
175472fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.led_fade_out = ADP8860_FADE_T_600ms,
175572fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	.led_on_time = ADP8860_LED_ONT_200ms,
175672fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich};
175772fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich#endif
175872fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich
1759f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_AD5398) || defined(CONFIG_REGULATOR_AD5398_MODULE)
1760f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhangstatic struct regulator_consumer_supply ad5398_consumer = {
1761f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.supply = "current",
1762f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang};
1763f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang
1764f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhangstatic struct regulator_init_data ad5398_regulator_data = {
1765f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.constraints = {
1766f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang		.name = "current range",
1767f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang		.max_uA = 120000,
1768f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang		.valid_ops_mask = REGULATOR_CHANGE_CURRENT | REGULATOR_CHANGE_STATUS,
1769f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	},
1770f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.num_consumer_supplies = 1,
1771f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.consumer_supplies     = &ad5398_consumer,
1772f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang};
1773f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang
1774f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhangstatic struct ad5398_platform_data ad5398_i2c_platform_data = {
1775f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.current_bits = 10,
1776f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.current_offset = 4,
1777f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.regulator_data = &ad5398_regulator_data,
1778f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang};
1779f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang
1780f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_VIRTUAL_CONSUMER) || \
1781f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	defined(CONFIG_REGULATOR_VIRTUAL_CONSUMER_MODULE)
1782f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhangstatic struct platform_device ad5398_virt_consumer_device = {
1783f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.name = "reg-virt-consumer",
1784f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.id = 0,
1785f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.dev = {
1786f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang		.platform_data = "current", /* Passed to driver */
1787f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	},
1788f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang};
1789f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
1790f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_USERSPACE_CONSUMER) || \
1791f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	defined(CONFIG_REGULATOR_USERSPACE_CONSUMER_MODULE)
1792f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhangstatic struct regulator_bulk_data ad5398_bulk_data = {
1793f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.supply = "current",
1794f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang};
1795f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang
1796f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhangstatic struct regulator_userspace_consumer_data ad5398_userspace_comsumer_data = {
1797f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.name = "ad5398",
1798f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.num_supplies = 1,
1799f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.supplies = &ad5398_bulk_data,
1800f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang};
1801f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang
1802f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhangstatic struct platform_device ad5398_userspace_consumer_device = {
1803f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.name = "reg-userspace-consumer",
1804f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.id = 0,
1805f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	.dev = {
1806f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang		.platform_data = &ad5398_userspace_comsumer_data,
1807f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	},
1808f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang};
1809f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
1810f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
1811f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang
181281d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wustatic struct i2c_board_info __initdata bfin_i2c_board_info[] = {
18135b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger#if defined(CONFIG_INPUT_AD714X_I2C) || defined(CONFIG_INPUT_AD714X_I2C_MODULE)
181481d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu	{
1815427f277e5f472b6c1bc444ef5f7d30ebe280420eBarry Song		I2C_BOARD_INFO("ad7142_captouch", 0x2C),
18164c94c3e09adba9718218d6e3d35b2dfae81f3911Barry Song		.irq = IRQ_PG5,
18175b7c57751e6dcf3a3063b8e94977972d4cb646c6Mike Frysinger		.platform_data = (void *)&ad7142_i2c_platform_data,
181881d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu	},
181981d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu#endif
1820ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song
1821ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song#if defined(CONFIG_AD7150) || defined(CONFIG_AD7150_MODULE)
1822ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song	{
1823ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song		I2C_BOARD_INFO("ad7150", 0x48),
1824ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song		.irq = IRQ_PG5, /* fixme: use real interrupt number */
1825ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song	},
1826ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song#endif
1827ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song
1828ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song#if defined(CONFIG_AD7152) || defined(CONFIG_AD7152_MODULE)
1829ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song	{
1830ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song		I2C_BOARD_INFO("ad7152", 0x48),
1831ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song	},
1832ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song#endif
1833ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song
1834ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song#if defined(CONFIG_AD774X) || defined(CONFIG_AD774X_MODULE)
1835ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song	{
1836ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song		I2C_BOARD_INFO("ad774x", 0x48),
1837ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song	},
1838ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song#endif
1839ad6720c0b52ae1cde0bc567e57a71acde1a292aaBarry Song
18405f0225948ecc4bb21cc35839d3d447e22d40a71fSonic Zhang#if defined(CONFIG_AD7414) || defined(CONFIG_AD7414_MODULE)
18415f0225948ecc4bb21cc35839d3d447e22d40a71fSonic Zhang	{
18425f0225948ecc4bb21cc35839d3d447e22d40a71fSonic Zhang		I2C_BOARD_INFO("ad7414", 0x9),
18435f0225948ecc4bb21cc35839d3d447e22d40a71fSonic Zhang		.irq = IRQ_PG5,
18445f0225948ecc4bb21cc35839d3d447e22d40a71fSonic Zhang		/*
18455f0225948ecc4bb21cc35839d3d447e22d40a71fSonic Zhang		 * platform_data pointer is borrwoed by the driver to
18465f0225948ecc4bb21cc35839d3d447e22d40a71fSonic Zhang		 * store custimer defined IRQ ALART level mode.
18475f0225948ecc4bb21cc35839d3d447e22d40a71fSonic Zhang		 * only IRQF_TRIGGER_HIGH and IRQF_TRIGGER_LOW are valid.
18485f0225948ecc4bb21cc35839d3d447e22d40a71fSonic Zhang		 */
18495f0225948ecc4bb21cc35839d3d447e22d40a71fSonic Zhang		.platform_data = (void *)IRQF_TRIGGER_LOW,
18505f0225948ecc4bb21cc35839d3d447e22d40a71fSonic Zhang	},
18515f0225948ecc4bb21cc35839d3d447e22d40a71fSonic Zhang#endif
18525f0225948ecc4bb21cc35839d3d447e22d40a71fSonic Zhang
1853ef8873e06efdc023ee2e7f708787c79b78df3fcdSonic Zhang#if defined(CONFIG_AD7416) || defined(CONFIG_AD7416_MODULE)
1854ef8873e06efdc023ee2e7f708787c79b78df3fcdSonic Zhang	{
1855ef8873e06efdc023ee2e7f708787c79b78df3fcdSonic Zhang		I2C_BOARD_INFO("ad7417", 0xb),
1856ef8873e06efdc023ee2e7f708787c79b78df3fcdSonic Zhang		.irq = IRQ_PG5,
1857ef8873e06efdc023ee2e7f708787c79b78df3fcdSonic Zhang		/*
1858ef8873e06efdc023ee2e7f708787c79b78df3fcdSonic Zhang		 * platform_data pointer is borrwoed by the driver to
1859ef8873e06efdc023ee2e7f708787c79b78df3fcdSonic Zhang		 * store custimer defined IRQ ALART level mode.
1860ef8873e06efdc023ee2e7f708787c79b78df3fcdSonic Zhang		 * only IRQF_TRIGGER_HIGH and IRQF_TRIGGER_LOW are valid.
1861ef8873e06efdc023ee2e7f708787c79b78df3fcdSonic Zhang		 */
1862ef8873e06efdc023ee2e7f708787c79b78df3fcdSonic Zhang		.platform_data = (void *)IRQF_TRIGGER_LOW,
1863ef8873e06efdc023ee2e7f708787c79b78df3fcdSonic Zhang	},
1864ef8873e06efdc023ee2e7f708787c79b78df3fcdSonic Zhang#endif
1865ef8873e06efdc023ee2e7f708787c79b78df3fcdSonic Zhang
1866ebd5833327e3fb46eb55553d8f5432b5226bf897Michael Hennerich#if defined(CONFIG_BFIN_TWI_LCD) || defined(CONFIG_BFIN_TWI_LCD_MODULE)
186781d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu	{
186881d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu		I2C_BOARD_INFO("pcf8574_lcd", 0x22),
186981d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu	},
187081d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu#endif
1871204844ebd08cfb0c83689e55d6633dcd0230d36dMichael Hennerich#if defined(CONFIG_INPUT_PCF8574) || defined(CONFIG_INPUT_PCF8574_MODULE)
187281d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu	{
187381d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu		I2C_BOARD_INFO("pcf8574_keypad", 0x27),
1874f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich		.irq = IRQ_PG6,
1875f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich	},
1876f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich#endif
1877f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich#if defined(CONFIG_TOUCHSCREEN_AD7879_I2C) || defined(CONFIG_TOUCHSCREEN_AD7879_I2C_MODULE)
1878f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich	{
1879f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich		I2C_BOARD_INFO("ad7879", 0x2F),
1880f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich		.irq = IRQ_PG5,
1881f51501551ef5c3f3d3911fbd736664d614014344Michael Hennerich		.platform_data = (void *)&bfin_ad7879_ts_info,
188281d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu	},
188381d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu#endif
188451ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich#if defined(CONFIG_KEYBOARD_ADP5588) || defined(CONFIG_KEYBOARD_ADP5588_MODULE)
188551ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	{
188651ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich		I2C_BOARD_INFO("adp5588-keys", 0x34),
188751ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich		.irq = IRQ_PG0,
188851ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich		.platform_data = (void *)&adp5588_kpad_data,
188951ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich	},
189051ed9ad7d239c7c10af088d1b7c5f3ee8d022f94Michael Hennerich#endif
18913ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#if defined(CONFIG_PMIC_ADP5520) || defined(CONFIG_PMIC_ADP5520_MODULE)
18923ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	{
18933ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		I2C_BOARD_INFO("pmic-adp5520", 0x32),
18944f84b6e0bb9a7d92c791ba3607674c98f69418cbMike Frysinger		.irq = IRQ_PG0,
18953ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich		.platform_data = (void *)&adp5520_pdev_data,
18963ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich	},
18973ea57218fde5fe6c2ff449d4c30fc69ac6976096Michael Hennerich#endif
1898ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich#if defined(CONFIG_INPUT_ADXL34X_I2C) || defined(CONFIG_INPUT_ADXL34X_I2C_MODULE)
1899ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	{
1900ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich		I2C_BOARD_INFO("adxl34x", 0x53),
1901ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich		.irq = IRQ_PG3,
1902ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich		.platform_data = (void *)&adxl34x_info,
1903ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich	},
1904ffc4d8bc4435918d2fd1e840b0bf985e7b56f0d3Michael Hennerich#endif
1905ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich#if defined(CONFIG_GPIO_ADP5588) || defined(CONFIG_GPIO_ADP5588_MODULE)
1906ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich	{
1907ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich		I2C_BOARD_INFO("adp5588-gpio", 0x34),
1908ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich		.platform_data = (void *)&adp5588_gpio_data,
1909ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich	},
1910ba877d4491a06ae69d53981bc242ef97a8157026Michael Hennerich#endif
191150c4c0861a0a60cd4f414457fdbfc8d9a1eb1e31Michael Hennerich#if defined(CONFIG_FB_BFIN_7393) || defined(CONFIG_FB_BFIN_7393_MODULE)
191250c4c0861a0a60cd4f414457fdbfc8d9a1eb1e31Michael Hennerich	{
191350c4c0861a0a60cd4f414457fdbfc8d9a1eb1e31Michael Hennerich		I2C_BOARD_INFO("bfin-adv7393", 0x2B),
191450c4c0861a0a60cd4f414457fdbfc8d9a1eb1e31Michael Hennerich	},
191550c4c0861a0a60cd4f414457fdbfc8d9a1eb1e31Michael Hennerich#endif
1916ddcd7cb857cdf2a29c30125f71cb5d4d6744c99bMichael Hennerich#if defined(CONFIG_FB_BF537_LQ035) || defined(CONFIG_FB_BF537_LQ035_MODULE)
1917ddcd7cb857cdf2a29c30125f71cb5d4d6744c99bMichael Hennerich	{
1918ddcd7cb857cdf2a29c30125f71cb5d4d6744c99bMichael Hennerich		I2C_BOARD_INFO("bf537-lq035-ad5280", 0x2C),
1919ddcd7cb857cdf2a29c30125f71cb5d4d6744c99bMichael Hennerich	},
1920ddcd7cb857cdf2a29c30125f71cb5d4d6744c99bMichael Hennerich#endif
192178756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#if defined(CONFIG_BACKLIGHT_ADP8870) || defined(CONFIG_BACKLIGHT_ADP8870_MODULE)
192278756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	{
192378756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich		I2C_BOARD_INFO("adp8870", 0x2B),
192478756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich		.platform_data = (void *)&adp8870_pdata,
192578756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich	},
192678756c62309c0bccf3705dbf448f3a31542e973dMichael Hennerich#endif
1927d53127ffd6e19feb5f045da917207f9e6e2ed331Cliff Cai#if defined(CONFIG_SND_SOC_ADAU1371) || defined(CONFIG_SND_SOC_ADAU1371_MODULE)
1928d53127ffd6e19feb5f045da917207f9e6e2ed331Cliff Cai	{
1929d53127ffd6e19feb5f045da917207f9e6e2ed331Cliff Cai		I2C_BOARD_INFO("adau1371", 0x1A),
1930d53127ffd6e19feb5f045da917207f9e6e2ed331Cliff Cai	},
1931d53127ffd6e19feb5f045da917207f9e6e2ed331Cliff Cai#endif
193204267638e07f4430f902d7a304845634443caf1aCliff Cai#if defined(CONFIG_SND_SOC_ADAU1761) || defined(CONFIG_SND_SOC_ADAU1761_MODULE)
193304267638e07f4430f902d7a304845634443caf1aCliff Cai	{
193404267638e07f4430f902d7a304845634443caf1aCliff Cai		I2C_BOARD_INFO("adau1761", 0x38),
193504267638e07f4430f902d7a304845634443caf1aCliff Cai	},
193604267638e07f4430f902d7a304845634443caf1aCliff Cai#endif
1937c48d767569ec6449277bf4248295b4c165b57159Cliff Cai#if defined(CONFIG_SND_SOC_ADAU1361) || defined(CONFIG_SND_SOC_ADAU1361_MODULE)
1938c48d767569ec6449277bf4248295b4c165b57159Cliff Cai	{
1939c48d767569ec6449277bf4248295b4c165b57159Cliff Cai		I2C_BOARD_INFO("adau1361", 0x38),
1940c48d767569ec6449277bf4248295b4c165b57159Cliff Cai	},
1941c48d767569ec6449277bf4248295b4c165b57159Cliff Cai#endif
19421f13f2fdca71408ad211936b85e673b72e91911aMichael Hennerich#if defined(CONFIG_AD525X_DPOT) || defined(CONFIG_AD525X_DPOT_MODULE)
19431f13f2fdca71408ad211936b85e673b72e91911aMichael Hennerich	{
19441f13f2fdca71408ad211936b85e673b72e91911aMichael Hennerich		I2C_BOARD_INFO("ad5258", 0x18),
19451f13f2fdca71408ad211936b85e673b72e91911aMichael Hennerich	},
19461f13f2fdca71408ad211936b85e673b72e91911aMichael Hennerich#endif
194729bb3bc0c71d867d50b18a0277bf28cd8dd3fca7Cliff Cai#if defined(CONFIG_SND_SOC_SSM2602) || defined(CONFIG_SND_SOC_SSM2602_MODULE)
194829bb3bc0c71d867d50b18a0277bf28cd8dd3fca7Cliff Cai	{
194929bb3bc0c71d867d50b18a0277bf28cd8dd3fca7Cliff Cai		I2C_BOARD_INFO("ssm2602", 0x1b),
195029bb3bc0c71d867d50b18a0277bf28cd8dd3fca7Cliff Cai	},
195129bb3bc0c71d867d50b18a0277bf28cd8dd3fca7Cliff Cai#endif
1952f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_AD5398) || defined(CONFIG_REGULATOR_AD5398_MODULE)
1953f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	{
1954f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang		I2C_BOARD_INFO("ad5398", 0xC),
1955f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang		.platform_data = (void *)&ad5398_i2c_platform_data,
1956f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	},
1957f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
195872fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich#if defined(CONFIG_BACKLIGHT_ADP8860) || defined(CONFIG_BACKLIGHT_ADP8860_MODULE)
195972fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	{
196072fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich		I2C_BOARD_INFO("adp8860", 0x2A),
196172fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich		.platform_data = (void *)&adp8860_pdata,
196272fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich	},
196372fa2e9204d5efe4732346f99465a01c380f5cd3Michael Hennerich#endif
196481d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu};
196581d9c7f27dd679df6d03df53eba4fd12caafdb47Bryan Wu
19661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
1967df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
1968df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhangstatic struct resource bfin_sport0_uart_resources[] = {
1969df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	{
1970df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.start = SPORT0_TCR1,
1971df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.end = SPORT0_MRCS3+4,
1972df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.flags = IORESOURCE_MEM,
1973df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
1974df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	{
1975df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.start = IRQ_SPORT0_RX,
1976df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.end = IRQ_SPORT0_RX+1,
1977df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.flags = IORESOURCE_IRQ,
1978df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
1979df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	{
1980df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.start = IRQ_SPORT0_ERROR,
1981df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.end = IRQ_SPORT0_ERROR,
1982df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.flags = IORESOURCE_IRQ,
1983df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
1984df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang};
1985df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang
1986df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhangunsigned short bfin_sport0_peripherals[] = {
1987df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS,
1988df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0
1989df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang};
1990df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang
19911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_sport0_uart_device = {
19921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "bfin-sport-uart",
19931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = 0,
1994df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	.num_resources = ARRAY_SIZE(bfin_sport0_uart_resources),
1995df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	.resource = bfin_sport0_uart_resources,
1996df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	.dev = {
1997df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.platform_data = &bfin_sport0_peripherals, /* Passed to driver */
1998df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
1999df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang};
2000df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#endif
2001df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
2002df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhangstatic struct resource bfin_sport1_uart_resources[] = {
2003df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	{
2004df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.start = SPORT1_TCR1,
2005df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.end = SPORT1_MRCS3+4,
2006df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.flags = IORESOURCE_MEM,
2007df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
2008df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	{
2009df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.start = IRQ_SPORT1_RX,
2010df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.end = IRQ_SPORT1_RX+1,
2011df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.flags = IORESOURCE_IRQ,
2012df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
2013df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	{
2014df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.start = IRQ_SPORT1_ERROR,
2015df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.end = IRQ_SPORT1_ERROR,
2016df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.flags = IORESOURCE_IRQ,
2017df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
2018df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang};
2019df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang
2020df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhangunsigned short bfin_sport1_peripherals[] = {
2021df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS,
2022df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0
20231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
20241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
20251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_sport1_uart_device = {
20261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.name = "bfin-sport-uart",
20271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	.id = 1,
2028df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	.num_resources = ARRAY_SIZE(bfin_sport1_uart_resources),
2029df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	.resource = bfin_sport1_uart_resources,
2030df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	.dev = {
2031df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang		.platform_data = &bfin_sport1_peripherals, /* Passed to driver */
2032df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	},
20331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
20341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
2035df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#endif
20361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
2037c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
20382c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#define CF_IDE_NAND_CARD_USE_HDD_INTERFACE
20392c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich/* #define CF_IDE_NAND_CARD_USE_CF_IN_COMMON_MEMORY_MODE */
2040c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
20412c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#ifdef CF_IDE_NAND_CARD_USE_HDD_INTERFACE
20422c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#define PATA_INT	IRQ_PF5
2043c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct pata_platform_info bfin_pata_platform_data = {
2044c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.ioport_shift = 1,
204564e5c51291ec760e7fdb7628fe63690d1dc6aaf7Mike Frysinger	.irq_flags = IRQF_TRIGGER_HIGH | IRQF_DISABLED,
2046c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu};
2047c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
2048c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct resource bfin_pata_resources[] = {
2049c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	{
2050c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = 0x20314020,
2051c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end = 0x2031403F,
2052c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_MEM,
2053c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	},
2054c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	{
2055c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = 0x2031401C,
2056c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end = 0x2031401F,
2057c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_MEM,
2058c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	},
2059c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	{
2060c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.start = PATA_INT,
2061c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.end = PATA_INT,
2062c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.flags = IORESOURCE_IRQ,
2063c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	},
2064c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu};
20652c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#elif defined(CF_IDE_NAND_CARD_USE_CF_IN_COMMON_MEMORY_MODE)
20662c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerichstatic struct pata_platform_info bfin_pata_platform_data = {
20672c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich	.ioport_shift = 0,
20682c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich};
2069648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich/* CompactFlash Storage Card Memory Mapped Adressing
2070648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich * /REG = A11 = 1
2071648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich */
20722c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerichstatic struct resource bfin_pata_resources[] = {
20732c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich	{
2074648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich		.start = 0x20211800,
2075648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich		.end = 0x20211807,
20762c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich		.flags = IORESOURCE_MEM,
20772c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich	},
20782c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich	{
2079648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich		.start = 0x2021180E,	/* Device Ctl */
2080648882d940a1f84cbf11418ae6e405ef42a66855Michael Hennerich		.end = 0x2021180E,
20812c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich		.flags = IORESOURCE_MEM,
20822c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich	},
20832c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich};
20842c8beb2cbef632a3683950aab8bcd9735a0a0270Michael Hennerich#endif
2085c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
2086c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct platform_device bfin_pata_device = {
2087c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.name = "pata_platform",
2088c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.id = -1,
2089c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.num_resources = ARRAY_SIZE(bfin_pata_resources),
2090c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.resource = bfin_pata_resources,
2091c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	.dev = {
2092c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu		.platform_data = &bfin_pata_platform_data,
2093c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	}
2094c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu};
2095c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif
2096c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
209714b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerichstatic const unsigned int cclk_vlev_datasheet[] =
209814b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich{
209914b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_085, 250000000),
210014b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_090, 376000000),
210114b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_095, 426000000),
210214b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_100, 426000000),
210314b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_105, 476000000),
210414b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_110, 476000000),
210514b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_115, 476000000),
210614b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_120, 500000000),
210714b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_125, 533000000),
210814b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	VRPAIR(VLEV_130, 600000000),
210914b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich};
211014b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich
211114b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerichstatic struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
211214b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	.tuple_tab = cclk_vlev_datasheet,
211314b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	.tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
211414b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	.vr_settling_time = 25 /* us */,
211514b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich};
211614b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich
211714b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerichstatic struct platform_device bfin_dpmc = {
211814b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	.name = "bfin dpmc",
211914b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	.dev = {
212014b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich		.platform_data = &bfin_dmpc_vreg_data,
212114b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	},
212214b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich};
212314b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich
2124336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
2125336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Songstatic struct platform_device bfin_i2s = {
2126336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	.name = "bfin-i2s",
2127336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	.id = CONFIG_SND_BF5XX_SPORT_NUM,
2128336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	/* TODO: add platform data here */
2129336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song};
2130336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song#endif
2131336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song
21328312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
21338312440e05ea74feabc648ad8f36c823af4ddd8eBarry Songstatic struct platform_device bfin_tdm = {
21348312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song	.name = "bfin-tdm",
2135336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	.id = CONFIG_SND_BF5XX_SPORT_NUM,
2136336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	/* TODO: add platform data here */
2137336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song};
2138336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song#endif
2139336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song
2140336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song#if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE)
2141336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Songstatic struct platform_device bfin_ac97 = {
2142336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	.name = "bfin-ac97",
2143336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	.id = CONFIG_SND_BF5XX_SPORT_NUM,
21448312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song	/* TODO: add platform data here */
21458312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song};
21468312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song#endif
21478312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song
2148f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#if defined(CONFIG_REGULATOR_ADP_SWITCH) || defined(CONFIG_REGULATOR_ADP_SWITCH_MODULE)
2149f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#define REGULATOR_ADP122        "adp122"
2150f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#define REGULATOR_ADP150        "adp150"
2151f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2152f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct regulator_consumer_supply adp122_consumers = {
2153f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		.supply = REGULATOR_ADP122,
2154f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2155f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2156f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct regulator_consumer_supply adp150_consumers = {
2157f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		.supply = REGULATOR_ADP150,
2158f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2159f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2160f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct regulator_init_data adp_switch_regulator_data[] = {
2161f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	{
2162f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		.constraints = {
2163f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang			.name = REGULATOR_ADP122,
2164f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang			.valid_ops_mask = REGULATOR_CHANGE_STATUS,
21655f0225948ecc4bb21cc35839d3d447e22d40a71fSonic Zhang			.min_uA = 0,
21665f0225948ecc4bb21cc35839d3d447e22d40a71fSonic Zhang			.max_uA = 300000,
2167f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		},
2168f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		.num_consumer_supplies = 1,	/* only 1 */
2169f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		.consumer_supplies     = &adp122_consumers,
2170f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		.driver_data	       = (void *)GPIO_PF2, /* gpio port only */
2171f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	},
2172f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	{
2173f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		.constraints = {
2174f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang			.name = REGULATOR_ADP150,
2175f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang			.valid_ops_mask = REGULATOR_CHANGE_STATUS,
21765f0225948ecc4bb21cc35839d3d447e22d40a71fSonic Zhang			.min_uA = 0,
21775f0225948ecc4bb21cc35839d3d447e22d40a71fSonic Zhang			.max_uA = 150000,
2178f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		},
2179f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		.num_consumer_supplies = 1,	/* only 1 */
2180f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		.consumer_supplies     = &adp150_consumers,
2181f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		.driver_data	       = (void *)GPIO_PF3, /* gpio port only */
2182f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	},
2183f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2184f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2185f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct adp_switch_platform_data adp_switch_pdata = {
2186f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.regulator_num = ARRAY_SIZE(adp_switch_regulator_data),
2187f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.regulator_data = adp_switch_regulator_data,
2188f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2189f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2190f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct platform_device adp_switch_device = {
2191f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.name = "adp_switch",
2192f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.id = 0,
2193f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.dev = {
2194f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		.platform_data = &adp_switch_pdata,
2195f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	},
2196f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2197f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2198f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#if defined(CONFIG_REGULATOR_USERSPACE_CONSUMER) || \
2199f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	defined(CONFIG_REGULATOR_USERSPACE_CONSUMER_MODULE)
2200f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct regulator_bulk_data adp122_bulk_data = {
2201f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.supply = REGULATOR_ADP122,
2202f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2203f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2204f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct regulator_userspace_consumer_data adp122_userspace_comsumer_data = {
2205f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.name = REGULATOR_ADP122,
2206f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.num_supplies = 1,
2207f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.supplies = &adp122_bulk_data,
2208f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2209f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2210f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct platform_device adp122_userspace_consumer_device = {
2211f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.name = "reg-userspace-consumer",
2212f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.id = 0,
2213f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.dev = {
2214f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		.platform_data = &adp122_userspace_comsumer_data,
2215f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	},
2216f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2217f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2218f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct regulator_bulk_data adp150_bulk_data = {
2219f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.supply = REGULATOR_ADP150,
2220f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2221f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2222f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct regulator_userspace_consumer_data adp150_userspace_comsumer_data = {
2223f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.name = REGULATOR_ADP150,
2224f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.num_supplies = 1,
2225f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.supplies = &adp150_bulk_data,
2226f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2227f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2228f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhangstatic struct platform_device adp150_userspace_consumer_device = {
2229f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.name = "reg-userspace-consumer",
2230f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.id = 1,
2231f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	.dev = {
2232f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang		.platform_data = &adp150_userspace_comsumer_data,
2233f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	},
2234f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang};
2235f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#endif
2236f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#endif
2237f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2238f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
22391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device *stamp_devices[] __initdata = {
224014b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich
224114b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich	&bfin_dpmc,
224214b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich
22431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE)
22441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&bfin_pcmcia_cf_device,
22451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
22461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
22471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
22481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&rtc_device,
22491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
22501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
22511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE)
22521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&sl811_hcd_device,
22531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
22541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
22551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
22561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&isp1362_hcd_device,
22571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
22581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
22593f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
22603f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich	&bfin_isp1760_device,
22613f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich#endif
22623f37569044cb3d9ba4722710b84d018f573d4b0eMichael Hennerich
22631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
22641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&smc91x_device,
22651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
22661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
2267f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
2268f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau	&dm9000_device,
2269f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau#endif
2270f40d24d909ad99c802a6813ff32b6feb20ab8c71Alex Landau
2271706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song#if defined(CONFIG_CAN_BFIN) || defined(CONFIG_CAN_BFIN_MODULE)
2272706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song	&bfin_can_device,
2273706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song#endif
2274706a01b1c6d50b0940ca31d2dc21ba54f095f5afBarry Song
22751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
227665319628db2c7a630daadfeec4d371aaca788482Graf Yang	&bfin_mii_bus,
22771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&bfin_mac_device,
22781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
22791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
22801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE)
22811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&net2272_bfin_device,
22821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
22831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
22841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
2285c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	&bfin_spi0_device,
22861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
22871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
22881e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai#if defined(CONFIG_SPI_BFIN_SPORT) || defined(CONFIG_SPI_BFIN_SPORT_MODULE)
22891e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	&bfin_sport_spi0_device,
22901e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai	&bfin_sport_spi1_device,
22911e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai#endif
22921e9aa95526c3dfc50e55665c7129469a12593bebCliff Cai
22931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_FB_BF537_LQ035) || defined(CONFIG_FB_BF537_LQ035_MODULE)
22941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&bfin_fb_device,
22951394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
22961394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
22972043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
22982043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich	&bfin_lq035q1_device,
22992043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich#endif
23002043f3f7312cc7fbbc2acffb9d87265b0ad9a529Michael Hennerich
23011394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
23026bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART0
23036bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	&bfin_uart0_device,
23046bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#endif
23056bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART1
23066bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang	&bfin_uart1_device,
23076bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang#endif
23081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
23091394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
23105be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
231142bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#ifdef CONFIG_BFIN_SIR0
231242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	&bfin_sir0_device,
231342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#endif
231442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#ifdef CONFIG_BFIN_SIR1
231542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang	&bfin_sir1_device,
231642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#endif
23175be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#endif
23185be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang
23191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
23201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&i2c_bfin_twi_device,
23211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
23221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
23231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
2324df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
23251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&bfin_sport0_uart_device,
2326df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#endif
2327df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
23281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	&bfin_sport1_uart_device,
23291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
2330df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#endif
2331c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
2332c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
2333c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	&bfin_pata_device,
2334c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif
23352463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich
23362463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
23372463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich	&bfin_device_gpiokeys,
23382463ef22bf8b6e22048bd26f940c014f7e1f0998Michael Hennerich#endif
2339cad2ab65dd1c7d65153ffccd71c90db028fd62f0Mike Frysinger
2340fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#if defined(CONFIG_MTD_NAND_PLATFORM) || defined(CONFIG_MTD_NAND_PLATFORM_MODULE)
2341fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	&bfin_async_nand_device,
2342fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger#endif
2343fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger
2344793dc27b51b2ffff95b72408e2ef44e0995c185bMike Frysinger#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
2345de8c43f2fca9bb06f3ee87b38a61d5d9966ce221Mike Frysinger	&stamp_flash_device,
2346793dc27b51b2ffff95b72408e2ef44e0995c185bMike Frysinger#endif
23478312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song
2348336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
2349336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	&bfin_i2s,
2350336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song#endif
2351336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song
23528312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
23538312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song	&bfin_tdm,
23548312440e05ea74feabc648ad8f36c823af4ddd8eBarry Song#endif
2355336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song
2356336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song#if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE)
2357336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song	&bfin_ac97,
2358336746ed8ee8ef503ba79bc4b6f0b5a40e8ab3ceBarry Song#endif
2359f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_AD5398) || defined(CONFIG_REGULATOR_AD5398_MODULE)
2360f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_VIRTUAL_CONSUMER) || \
2361f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	defined(CONFIG_REGULATOR_VIRTUAL_CONSUMER_MODULE)
2362f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	&ad5398_virt_consumer_device,
2363f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
2364f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#if defined(CONFIG_REGULATOR_USERSPACE_CONSUMER) || \
2365f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	defined(CONFIG_REGULATOR_USERSPACE_CONSUMER_MODULE)
2366f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang	&ad5398_userspace_consumer_device,
2367f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
2368f32792d045e1bbd86c0af0a28a46ae87af1ae100Sonic Zhang#endif
2369f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang
2370f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#if defined(CONFIG_REGULATOR_ADP_SWITCH) || defined(CONFIG_REGULATOR_ADP_SWITCH_MODULE)
2371f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	&adp_switch_device,
2372f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#if defined(CONFIG_REGULATOR_USERSPACE_CONSUMER) || \
2373f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	defined(CONFIG_REGULATOR_USERSPACE_CONSUMER_MODULE)
2374f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	&adp122_userspace_consumer_device,
2375f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang	&adp150_userspace_consumer_device,
2376f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#endif
2377f8e6dbffa7a6cb3da3bcaf1fde3039896e1ac764Sonic Zhang#endif
23781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu};
23791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
23801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic int __init stamp_init(void)
23811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu{
2382b85d858b40a28107ee50ca9e89f57c0e35c251c6Harvey Harrison	printk(KERN_INFO "%s(): registering device resources\n", __func__);
2383fc68911ee379bff429c2f8dfc0a4d3277eb193ecMike Frysinger	bfin_plat_nand_init();
23840531c467da6438f278e9420a30f73eea2fdb73bdMike Frysinger	adf702x_mac_init();
23851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
2386df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang	i2c_register_board_info(0, bfin_i2c_board_info,
2387df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang				ARRAY_SIZE(bfin_i2c_board_info));
23885bda27235b24146cf870de663141ee4fbfa8a70bMike Frysinger	spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
2389c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
23901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu	return 0;
23911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}
23921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
23931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wuarch_initcall(stamp_init);
2394c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu
2395c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang
2396c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhangstatic struct platform_device *stamp_early_devices[] __initdata = {
2397c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
2398c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART0
2399c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang	&bfin_uart0_device,
2400c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif
2401c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART1
2402c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang	&bfin_uart1_device,
2403c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif
2404c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif
2405c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang
2406c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
2407c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
2408c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang	&bfin_sport0_uart_device,
2409c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif
2410c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
2411c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang	&bfin_sport1_uart_device,
2412c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif
2413c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif
2414c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang};
2415c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang
2416c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhangvoid __init native_machine_early_platform_add_devices(void)
2417c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang{
2418c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang	printk(KERN_INFO "register early platform devices\n");
2419c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang	early_platform_add_devices(stamp_early_devices,
2420c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang		ARRAY_SIZE(stamp_early_devices));
2421c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang}
2422c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang
2423c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wuvoid native_machine_restart(char *cmd)
2424c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu{
2425c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	/* workaround reboot hang when booting from SPI */
2426c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu	if ((bfin_read_SYSCR() & 0x7) == 0x3)
2427b52dae3139066765a7d96563e9cd33d9e60efe33Sonic Zhang		bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS);
2428c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu}
2429137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger
2430137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger/*
2431137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger * Currently the MAC address is saved in Flash by U-Boot
2432137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger */
2433137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger#define FLASH_MAC	0x203f0000
24349862cc5278aabd82230369a142c817e37a42caa3Mike Frysingervoid bfin_get_ether_addr(char *addr)
2435137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger{
2436137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger	*(u32 *)(&(addr[0])) = bfin_read32(FLASH_MAC);
2437137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger	*(u16 *)(&(addr[4])) = bfin_read16(FLASH_MAC + 4);
2438137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger}
24399862cc5278aabd82230369a142c817e37a42caa3Mike FrysingerEXPORT_SYMBOL(bfin_get_ether_addr);
2440