11394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* 296f1050d3df105c9ae6c6ac224f370199ea82fcdRobin Getz * Copyright 2004-2009 Analog Devices Inc. 396f1050d3df105c9ae6c6ac224f370199ea82fcdRobin Getz * 2008-2009 Bluetechnix 496f1050d3df105c9ae6c6ac224f370199ea82fcdRobin Getz * 2005 National ICT Australia (NICTA) 596f1050d3df105c9ae6c6ac224f370199ea82fcdRobin Getz * Aidan Williams <aidan@nicta.com.au> 61394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * 796f1050d3df105c9ae6c6ac224f370199ea82fcdRobin Getz * Licensed under the GPL-2 or later. 81394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */ 91394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/device.h> 11905905432868fa513f0f783fb9e5724536f4ee1fLars-Peter Clausen#include <linux/export.h> 1243f73fef07eb70be7d508b34eeddf5985e300bb1Mike Frysinger#include <linux/etherdevice.h> 131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/platform_device.h> 141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/mtd/mtd.h> 151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/mtd/partitions.h> 168ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger#include <linux/mtd/physmap.h> 171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/spi/spi.h> 181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <linux/spi/flash.h> 19b964c592d42a7146a0b157147432da882abd3404Mike Frysinger#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 20f02bcec5986870b3ddae26f6be1cde0703abfd8aMike Frysinger#include <linux/usb/isp1362.h> 21b964c592d42a7146a0b157147432da882abd3404Mike Frysinger#endif 220a87e3e92b299e0f1a69b36664ecde2fc296c40aJeff Garzik#include <linux/ata_platform.h> 231f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger#include <linux/irq.h> 24c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#include <asm/dma.h> 251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#include <asm/bfin5xx_spi.h> 265d448dd50712ae42f8176b5bb8db4703bef6f0f5Bryan Wu#include <asm/portmux.h> 2714b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich#include <asm/dpmc.h> 281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* 301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Name the Board for the /proc/cpuinfo 311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */ 326058434468daa16580a77922661b31b880d60db5Harald Krapfenbauerconst char bfin_board_name[] = "Bluetechnix CM BF537E"; 331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 347d157fb02bc3f4dc74e6830725864ba501d92da7Sonic Zhang#if defined(CONFIG_SPI_BFIN5XX) || defined(CONFIG_SPI_BFIN5XX_MODULE) 351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* all SPI peripherals info goes here */ 361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_MTD_M25P80) || defined(CONFIG_MTD_M25P80_MODULE) 381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct mtd_partition bfin_spi_flash_partitions[] = { 391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 40aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz .name = "bootloader(spi)", 411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .size = 0x00020000, 421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .offset = 0, 431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .mask_flags = MTD_CAP_ROM 441f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 45aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz .name = "linux kernel(spi)", 461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .size = 0xe0000, 471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .offset = 0x20000 481f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 49aa5829776347dbd9eeb461f650c1d085cf463a83Robin Getz .name = "file system(spi)", 501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .size = 0x700000, 511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .offset = 0x00100000, 521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu } 531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct flash_platform_data bfin_spi_flash_data = { 561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "m25p80", 571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .parts = bfin_spi_flash_partitions, 581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .nr_parts = ARRAY_SIZE(bfin_spi_flash_partitions), 591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .type = "m25p64", 601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* SPI flash chip (m25p64) */ 631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct bfin5xx_spi_chip spi_flash_chip_info = { 641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .enable_dma = 0, /* use dma transfer with this chip*/ 651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 68f3f704d375fcc92950f688ccb3dd0f650acace92Michael Hennerich#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) 69f3f704d375fcc92950f688ccb3dd0f650acace92Michael Hennerichstatic struct bfin5xx_spi_chip mmc_spi_chip_info = { 70f3f704d375fcc92950f688ccb3dd0f650acace92Michael Hennerich .enable_dma = 0, 711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct spi_board_info bfin_spi_board_info[] __initdata = { 751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_MTD_M25P80) || defined(CONFIG_MTD_M25P80_MODULE) 761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu /* the modalias must be the same as spi device driver name */ 781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .modalias = "m25p80", /* Name of spi_driver for this device */ 791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ 80c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .bus_num = 0, /* Framework bus number */ 811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .chip_select = 1, /* Framework chip select. On STAMP537 it is SPISSEL1*/ 821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .platform_data = &bfin_spi_flash_data, 831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .controller_data = &spi_flash_chip_info, 841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .mode = SPI_MODE_3, 851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 887ba80063e90302287625a105c546c2fc318fcfbfBarry Song#if defined(CONFIG_SND_BF5XX_SOC_AD183X) || defined(CONFIG_SND_BF5XX_SOC_AD183X_MODULE) 891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 907ba80063e90302287625a105c546c2fc318fcfbfBarry Song .modalias = "ad183x", 911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ 92c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .bus_num = 0, 937ba80063e90302287625a105c546c2fc318fcfbfBarry Song .chip_select = 4, 941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 951394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 961394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 97f3f704d375fcc92950f688ccb3dd0f650acace92Michael Hennerich#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) 981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 99f3f704d375fcc92950f688ccb3dd0f650acace92Michael Hennerich .modalias = "mmc_spi", 100f3f704d375fcc92950f688ccb3dd0f650acace92Michael Hennerich .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */ 101c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .bus_num = 0, 102f3f704d375fcc92950f688ccb3dd0f650acace92Michael Hennerich .chip_select = 1, 103f3f704d375fcc92950f688ccb3dd0f650acace92Michael Hennerich .controller_data = &mmc_spi_chip_info, 1041394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .mode = SPI_MODE_3, 1051394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 1061394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 1071394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 1081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 109c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu/* SPI (0) */ 110c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct resource bfin_spi0_resource[] = { 111c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu [0] = { 112c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .start = SPI0_REGBASE, 113c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .end = SPI0_REGBASE + 0xFF, 114c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .flags = IORESOURCE_MEM, 115c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu }, 116c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu [1] = { 117c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .start = CH_SPI, 118c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .end = CH_SPI, 11953122693c3cef005495279835286c36c58e035e8Yi Li .flags = IORESOURCE_DMA, 12053122693c3cef005495279835286c36c58e035e8Yi Li }, 12153122693c3cef005495279835286c36c58e035e8Yi Li [2] = { 12253122693c3cef005495279835286c36c58e035e8Yi Li .start = IRQ_SPI, 12353122693c3cef005495279835286c36c58e035e8Yi Li .end = IRQ_SPI, 124c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .flags = IORESOURCE_IRQ, 12553122693c3cef005495279835286c36c58e035e8Yi Li }, 126c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu}; 127c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 1281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* SPI controller data */ 129c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct bfin5xx_spi_master bfin_spi0_info = { 1301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .num_chipselect = 8, 1311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .enable_dma = 1, /* master has the ability to do dma transfer */ 1325d448dd50712ae42f8176b5bb8db4703bef6f0f5Bryan Wu .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0}, 1331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 1341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 135c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct platform_device bfin_spi0_device = { 136c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .name = "bfin-spi", 137c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .id = 0, /* Bus number */ 138c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .num_resources = ARRAY_SIZE(bfin_spi0_resource), 139c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .resource = bfin_spi0_resource, 1401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .dev = { 141c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .platform_data = &bfin_spi0_info, /* Passed to driver */ 1421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 1431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 1441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif /* spi master and devices */ 1451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) 1471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device rtc_device = { 1481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "rtc-bfin", 1491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = -1, 1501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 1511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 1521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1530d4a89bb3eb58f39831186fa6b1542893dbfdc9fMichael Hennerich#if defined(CONFIG_FB_HITACHI_TX09) || defined(CONFIG_FB_HITACHI_TX09_MODULE) 1540d4a89bb3eb58f39831186fa6b1542893dbfdc9fMichael Hennerichstatic struct platform_device hitachi_fb_device = { 1550d4a89bb3eb58f39831186fa6b1542893dbfdc9fMichael Hennerich .name = "hitachi-tx09", 1560d4a89bb3eb58f39831186fa6b1542893dbfdc9fMichael Hennerich}; 1570d4a89bb3eb58f39831186fa6b1542893dbfdc9fMichael Hennerich#endif 1580d4a89bb3eb58f39831186fa6b1542893dbfdc9fMichael Hennerich 1591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) 16061f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich#include <linux/smc91x.h> 16161f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich 16261f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerichstatic struct smc91x_platdata smc91x_info = { 16361f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT, 16461f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich .leda = RPC_LED_100_10, 16561f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich .ledb = RPC_LED_TX_RX, 16661f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich}; 16761f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich 1681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource smc91x_resources[] = { 1691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 1701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0x20200300, 1711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0x20200300 + 16, 1721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 1731f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 1741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = IRQ_PF14, 1751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = IRQ_PF14, 1761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, 1771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 1781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 1791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device smc91x_device = { 1811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "smc91x", 1821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 0, 1831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .num_resources = ARRAY_SIZE(smc91x_resources), 1841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .resource = smc91x_resources, 18561f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich .dev = { 18661f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich .platform_data = &smc91x_info, 18761f09b5a09fb3962bbd3990a9a5a8470197955bbMichael Hennerich }, 1881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 1891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 1901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 1911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 1921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource isp1362_hcd_resources[] = { 1931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 1941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0x20308000, 1951394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0x20308000, 1961394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 1971f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 1981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = 0x20308004, 1991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = 0x20308004, 2001394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 2011f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 2021394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .start = IRQ_PG15, 2031394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .end = IRQ_PG15, 2049e75894c50d126bf3c8efb0efc91d5a93d6163ddMichael Hennerich .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE, 2051394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 2061394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 2071394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct isp1362_platform_data isp1362_priv = { 2091394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .sel15Kres = 1, 2101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .clknotstop = 0, 2111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .oc_enable = 0, 2121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .int_act_high = 0, 2131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .int_edge_triggered = 0, 2141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .remote_wakeup_connected = 0, 2151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .no_power_switching = 1, 2161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .power_switching_mode = 0, 2171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 2181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device isp1362_hcd_device = { 2201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "isp1362-hcd", 2211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 0, 2221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .dev = { 2231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .platform_data = &isp1362_priv, 2241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 2251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .num_resources = ARRAY_SIZE(isp1362_hcd_resources), 2261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .resource = isp1362_hcd_resources, 2271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 2281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 2291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE) 2311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct resource net2272_bfin_resources[] = { 2321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 2336058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .start = 0x20300000, 2346058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .end = 0x20300000 + 0x100, 2351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 2361f83b8f148a1eb967d2a628cbb741cd56fb54572Mike Frysinger }, { 2376058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .start = IRQ_PG13, 2386058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .end = IRQ_PG13, 2391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, 2401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 2411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 2421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device net2272_bfin_device = { 2441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "net2272", 2451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = -1, 2461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .num_resources = ARRAY_SIZE(net2272_bfin_resources), 2471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .resource = net2272_bfin_resources, 2481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 2491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 2501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 2518ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger#if defined(CONFIG_MTD_GPIO_ADDR) || defined(CONFIG_MTD_GPIO_ADDR_MODULE) 2528ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysingerstatic struct mtd_partition cm_partitions[] = { 2538ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger { 2548ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .name = "bootloader(nor)", 2558ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .size = 0x40000, 2568ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .offset = 0, 2578ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger }, { 2588ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .name = "linux kernel(nor)", 2596058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .size = 0x100000, 2608ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .offset = MTDPART_OFS_APPEND, 2618ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger }, { 2628ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .name = "file system(nor)", 2638ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .size = MTDPART_SIZ_FULL, 2648ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .offset = MTDPART_OFS_APPEND, 2658ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger } 2668ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger}; 2678ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger 2688ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysingerstatic struct physmap_flash_data cm_flash_data = { 2698ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .width = 2, 2708ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .parts = cm_partitions, 2718ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .nr_parts = ARRAY_SIZE(cm_partitions), 2728ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger}; 2738ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger 2748ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysingerstatic unsigned cm_flash_gpios[] = { GPIO_PF4 }; 2758ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger 2768ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysingerstatic struct resource cm_flash_resource[] = { 2778ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger { 2788ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .name = "cfi_probe", 2798ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .start = 0x20000000, 2808ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .end = 0x201fffff, 2818ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .flags = IORESOURCE_MEM, 2828ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger }, { 2838ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .start = (unsigned long)cm_flash_gpios, 2848ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .end = ARRAY_SIZE(cm_flash_gpios), 2858ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .flags = IORESOURCE_IRQ, 2868ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger } 2878ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger}; 2888ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger 2898ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysingerstatic struct platform_device cm_flash_device = { 2908ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .name = "gpio-addr-flash", 2918ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .id = 0, 2928ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .dev = { 2938ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .platform_data = &cm_flash_data, 2948ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger }, 2958ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .num_resources = ARRAY_SIZE(cm_flash_resource), 2968ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger .resource = cm_flash_resource, 2978ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger}; 2988ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger#endif 2998ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger 3001394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 3016058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer#ifdef CONFIG_SERIAL_BFIN_UART0 3026058434468daa16580a77922661b31b880d60db5Harald Krapfenbauerstatic struct resource bfin_uart0_resources[] = { 3031394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu { 3046bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang .start = UART0_THR, 3056bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang .end = UART0_GCTL+2, 3061394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 3076058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer }, 3086058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer { 309edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang .start = IRQ_UART0_TX, 310edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang .end = IRQ_UART0_TX, 311edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang .flags = IORESOURCE_IRQ, 312edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang }, 313edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang { 3146058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .start = IRQ_UART0_RX, 315edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang .end = IRQ_UART0_RX, 3166058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .flags = IORESOURCE_IRQ, 3176058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer }, 3186058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer { 3196058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .start = IRQ_UART0_ERROR, 3206058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .end = IRQ_UART0_ERROR, 3216058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .flags = IORESOURCE_IRQ, 3226058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer }, 3236058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer { 3246058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .start = CH_UART0_TX, 3256058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .end = CH_UART0_TX, 3266058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .flags = IORESOURCE_DMA, 3276058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer }, 3286058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer { 3296058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .start = CH_UART0_RX, 3306058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .end = CH_UART0_RX, 3316058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .flags = IORESOURCE_DMA, 3326058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer }, 3336058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer#ifdef CONFIG_BFIN_UART0_CTSRTS 3346058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer { 3356058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer /* 3366058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer * Refer to arch/blackfin/mach-xxx/include/mach/gpio.h for the GPIO map. 3376058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer */ 3386058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .start = -1, 3396058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .end = -1, 3406058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .flags = IORESOURCE_IO, 3416058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer }, 3426058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer { 3436058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer /* 3446058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer * Refer to arch/blackfin/mach-xxx/include/mach/gpio.h for the GPIO map. 3456058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer */ 3466058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .start = -1, 3476058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .end = -1, 3486058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .flags = IORESOURCE_IO, 3496058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer }, 3506058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer#endif 3516058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer}; 3526058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer 353a8b19886097032df38bd521cece4bc538fee2266Mike Frysingerstatic unsigned short bfin_uart0_peripherals[] = { 3546bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang P_UART0_TX, P_UART0_RX, 0 3556bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang}; 3566bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang 3576058434468daa16580a77922661b31b880d60db5Harald Krapfenbauerstatic struct platform_device bfin_uart0_device = { 3586058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .name = "bfin-uart", 3596058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .id = 0, 3606058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .num_resources = ARRAY_SIZE(bfin_uart0_resources), 3616058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .resource = bfin_uart0_resources, 3626bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang .dev = { 3636bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang .platform_data = &bfin_uart0_peripherals, /* Passed to driver */ 3646bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang }, 3656058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer}; 3666058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer#endif 3676058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer#ifdef CONFIG_SERIAL_BFIN_UART1 3686058434468daa16580a77922661b31b880d60db5Harald Krapfenbauerstatic struct resource bfin_uart1_resources[] = { 3696058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer { 3706bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang .start = UART1_THR, 3716bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang .end = UART1_GCTL+2, 3721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .flags = IORESOURCE_MEM, 3731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu }, 3746058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer { 375edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang .start = IRQ_UART1_TX, 376edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang .end = IRQ_UART1_TX, 377edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang .flags = IORESOURCE_IRQ, 378edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang }, 379edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang { 3806058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .start = IRQ_UART1_RX, 381edb0a6408a84b4f14647770d8a6796afff3e93a9Sonic Zhang .end = IRQ_UART1_RX, 3826058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .flags = IORESOURCE_IRQ, 3836058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer }, 3846058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer { 3856058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .start = IRQ_UART1_ERROR, 3866058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .end = IRQ_UART1_ERROR, 3876058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .flags = IORESOURCE_IRQ, 3886058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer }, 3896058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer { 3906058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .start = CH_UART1_TX, 3916058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .end = CH_UART1_TX, 3926058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .flags = IORESOURCE_DMA, 3936058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer }, 3946058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer { 3956058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .start = CH_UART1_RX, 3966058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .end = CH_UART1_RX, 3976058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .flags = IORESOURCE_DMA, 3986058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer }, 3996058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer#ifdef CONFIG_BFIN_UART1_CTSRTS 4006058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer { 4016058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer /* 4026058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer * Refer to arch/blackfin/mach-xxx/include/mach/gpio.h for the GPIO map. 4036058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer */ 4046058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .start = -1, 4056058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .end = -1, 4066058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .flags = IORESOURCE_IO, 4076058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer }, 4086058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer { 4096058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer /* 4106058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer * Refer to arch/blackfin/mach-xxx/include/mach/gpio.h for the GPIO map. 4116058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer */ 4126058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .start = -1, 4136058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .end = -1, 4146058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .flags = IORESOURCE_IO, 4156058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer }, 4166058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer#endif 4171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 4181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 419a8b19886097032df38bd521cece4bc538fee2266Mike Frysingerstatic unsigned short bfin_uart1_peripherals[] = { 4206bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang P_UART1_TX, P_UART1_RX, 0 4216bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang}; 4226bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang 4236058434468daa16580a77922661b31b880d60db5Harald Krapfenbauerstatic struct platform_device bfin_uart1_device = { 4241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "bfin-uart", 4251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 1, 4266058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .num_resources = ARRAY_SIZE(bfin_uart1_resources), 4276058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer .resource = bfin_uart1_resources, 4286bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang .dev = { 4296bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang .platform_data = &bfin_uart1_peripherals, /* Passed to driver */ 4306bd1fbea2e8bff9346a5afb44ca948b4e4ed74a5Sonic Zhang }, 4311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 4321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 4336058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer#endif 4341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 4355be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 4365be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#ifdef CONFIG_BFIN_SIR0 43742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct resource bfin_sir0_resources[] = { 4385be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang { 4395be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang .start = 0xFFC00400, 4405be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang .end = 0xFFC004FF, 4415be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang .flags = IORESOURCE_MEM, 4425be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang }, 44342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang { 44442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .start = IRQ_UART0_RX, 44542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .end = IRQ_UART0_RX+1, 44642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .flags = IORESOURCE_IRQ, 44742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang }, 44842bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang { 44942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .start = CH_UART0_RX, 45042bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .end = CH_UART0_RX+1, 45142bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .flags = IORESOURCE_DMA, 45242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang }, 45342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang}; 45442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct platform_device bfin_sir0_device = { 45542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .name = "bfin_sir", 45642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .id = 0, 45742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .num_resources = ARRAY_SIZE(bfin_sir0_resources), 45842bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .resource = bfin_sir0_resources, 45942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang}; 4605be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#endif 4615be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#ifdef CONFIG_BFIN_SIR1 46242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct resource bfin_sir1_resources[] = { 4635be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang { 4645be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang .start = 0xFFC02000, 4655be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang .end = 0xFFC020FF, 4665be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang .flags = IORESOURCE_MEM, 4675be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang }, 46842bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang { 46942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .start = IRQ_UART1_RX, 47042bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .end = IRQ_UART1_RX+1, 47142bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .flags = IORESOURCE_IRQ, 47242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang }, 47342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang { 47442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .start = CH_UART1_RX, 47542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .end = CH_UART1_RX+1, 47642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .flags = IORESOURCE_DMA, 47742bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang }, 4785be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang}; 47942bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yangstatic struct platform_device bfin_sir1_device = { 4805be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang .name = "bfin_sir", 48142bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .id = 1, 48242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .num_resources = ARRAY_SIZE(bfin_sir1_resources), 48342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang .resource = bfin_sir1_resources, 4845be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang}; 4855be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#endif 48642bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#endif 4875be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang 48856ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) 48956ce835b608343b22e1e46e5bb913b87c162486eMike Frysingerstatic struct resource bfin_twi0_resource[] = { 49056ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger [0] = { 49156ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger .start = TWI0_REGBASE, 49256ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger .end = TWI0_REGBASE, 49356ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger .flags = IORESOURCE_MEM, 49456ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger }, 49556ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger [1] = { 49656ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger .start = IRQ_TWI, 49756ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger .end = IRQ_TWI, 49856ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger .flags = IORESOURCE_IRQ, 49956ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger }, 50056ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger}; 50156ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger 50256ce835b608343b22e1e46e5bb913b87c162486eMike Frysingerstatic struct platform_device i2c_bfin_twi_device = { 50356ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger .name = "i2c-bfin-twi", 50456ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger .id = 0, 50556ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger .num_resources = ARRAY_SIZE(bfin_twi0_resource), 50656ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger .resource = bfin_twi0_resource, 50756ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger}; 50856ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger#endif 50956ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger 5101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 511df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART 512df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhangstatic struct resource bfin_sport0_uart_resources[] = { 513df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang { 514df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .start = SPORT0_TCR1, 515df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .end = SPORT0_MRCS3+4, 516df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .flags = IORESOURCE_MEM, 517df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang }, 518df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang { 519df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .start = IRQ_SPORT0_RX, 520df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .end = IRQ_SPORT0_RX+1, 521df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .flags = IORESOURCE_IRQ, 522df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang }, 523df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang { 524df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .start = IRQ_SPORT0_ERROR, 525df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .end = IRQ_SPORT0_ERROR, 526df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .flags = IORESOURCE_IRQ, 527df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang }, 528df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang}; 529df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang 530a8b19886097032df38bd521cece4bc538fee2266Mike Frysingerstatic unsigned short bfin_sport0_peripherals[] = { 531df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS, 532e54b673081d12c46b47fdfe1772656cb2b43721dSonic Zhang P_SPORT0_DRPRI, P_SPORT0_RSCLK, 0 533df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang}; 534df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang 5351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_sport0_uart_device = { 5361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "bfin-sport-uart", 5371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 0, 538df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources), 539df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .resource = bfin_sport0_uart_resources, 540df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .dev = { 541df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .platform_data = &bfin_sport0_peripherals, /* Passed to driver */ 542df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang }, 543df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang}; 544df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#endif 545df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART 546df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhangstatic struct resource bfin_sport1_uart_resources[] = { 547df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang { 548df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .start = SPORT1_TCR1, 549df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .end = SPORT1_MRCS3+4, 550df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .flags = IORESOURCE_MEM, 551df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang }, 552df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang { 553df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .start = IRQ_SPORT1_RX, 554df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .end = IRQ_SPORT1_RX+1, 555df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .flags = IORESOURCE_IRQ, 556df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang }, 557df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang { 558df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .start = IRQ_SPORT1_ERROR, 559df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .end = IRQ_SPORT1_ERROR, 560df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .flags = IORESOURCE_IRQ, 561df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang }, 562df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang}; 563df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang 564a8b19886097032df38bd521cece4bc538fee2266Mike Frysingerstatic unsigned short bfin_sport1_peripherals[] = { 565df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS, 566e54b673081d12c46b47fdfe1772656cb2b43721dSonic Zhang P_SPORT1_DRPRI, P_SPORT1_RSCLK, 0 5671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 5681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 5691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_sport1_uart_device = { 5701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "bfin-sport-uart", 5711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .id = 1, 572df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources), 573df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .resource = bfin_sport1_uart_resources, 574df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .dev = { 575df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang .platform_data = &bfin_sport1_peripherals, /* Passed to driver */ 576df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang }, 5771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 5781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 579df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#endif 5801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 5811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 58202460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang#include <linux/bfin_mac.h> 58302460d08930656b3a50381cfb119864efcd4eef9Sonic Zhangstatic const unsigned short bfin_mac_peripherals[] = P_MII0; 58402460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang 58502460d08930656b3a50381cfb119864efcd4eef9Sonic Zhangstatic struct bfin_phydev_platform_data bfin_phydev_data[] = { 58602460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang { 58702460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang .addr = 1, 58802460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang .irq = IRQ_MAC_PHYINT, 58902460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang }, 59002460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang}; 59102460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang 59202460d08930656b3a50381cfb119864efcd4eef9Sonic Zhangstatic struct bfin_mii_bus_platform_data bfin_mii_bus_data = { 59302460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang .phydev_number = 1, 59402460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang .phydev_data = bfin_phydev_data, 59502460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang .phy_mode = PHY_INTERFACE_MODE_MII, 59602460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang .mac_peripherals = bfin_mac_peripherals, 59702460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang}; 59802460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang 59965319628db2c7a630daadfeec4d371aaca788482Graf Yangstatic struct platform_device bfin_mii_bus = { 60065319628db2c7a630daadfeec4d371aaca788482Graf Yang .name = "bfin_mii_bus", 60102460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang .dev = { 60202460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang .platform_data = &bfin_mii_bus_data, 60302460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang } 60465319628db2c7a630daadfeec4d371aaca788482Graf Yang}; 60565319628db2c7a630daadfeec4d371aaca788482Graf Yang 6061394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wustatic struct platform_device bfin_mac_device = { 6071394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu .name = "bfin_mac", 60802460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang .dev = { 60902460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang .platform_data = &bfin_mii_bus, 61002460d08930656b3a50381cfb119864efcd4eef9Sonic Zhang } 6111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 6121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 6131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 614c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) 615fe5aeb93024791a5aa69741015db33093198ff47Mike Frysinger#define PATA_INT IRQ_PF14 616c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 617c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct pata_platform_info bfin_pata_platform_data = { 618c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .ioport_shift = 2, 6197832bb5d450aefa45b6dac3b3140eade66bb12adYong Zhang .irq_type = IRQF_TRIGGER_HIGH, 620c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu}; 621c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 622c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct resource bfin_pata_resources[] = { 623c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu { 624c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .start = 0x2030C000, 625c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .end = 0x2030C01F, 626c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .flags = IORESOURCE_MEM, 627c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu }, 628c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu { 629c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .start = 0x2030D018, 630c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .end = 0x2030D01B, 631c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .flags = IORESOURCE_MEM, 632c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu }, 633c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu { 634c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .start = PATA_INT, 635c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .end = PATA_INT, 636c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .flags = IORESOURCE_IRQ, 637c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu }, 638c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu}; 639c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 640c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wustatic struct platform_device bfin_pata_device = { 641c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .name = "pata_platform", 642c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .id = -1, 643c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .num_resources = ARRAY_SIZE(bfin_pata_resources), 644c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .resource = bfin_pata_resources, 645c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .dev = { 646c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu .platform_data = &bfin_pata_platform_data, 647c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu } 648c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu}; 649c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif 650c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 65114b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerichstatic const unsigned int cclk_vlev_datasheet[] = 65214b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich{ 65314b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_085, 250000000), 65414b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_090, 376000000), 65514b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_095, 426000000), 65614b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_100, 426000000), 65714b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_105, 476000000), 65814b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_110, 476000000), 65914b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_115, 476000000), 66014b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_120, 500000000), 66114b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_125, 533000000), 66214b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich VRPAIR(VLEV_130, 600000000), 66314b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich}; 66414b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich 66514b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerichstatic struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = { 66614b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich .tuple_tab = cclk_vlev_datasheet, 66714b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich .tabsize = ARRAY_SIZE(cclk_vlev_datasheet), 66814b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich .vr_settling_time = 25 /* us */, 66914b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich}; 67014b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich 67114b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerichstatic struct platform_device bfin_dpmc = { 67214b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich .name = "bfin dpmc", 67314b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich .dev = { 67414b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich .platform_data = &bfin_dmpc_vreg_data, 67514b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich }, 67614b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich}; 67714b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich 6786058434468daa16580a77922661b31b880d60db5Harald Krapfenbauerstatic struct platform_device *cm_bf537e_devices[] __initdata = { 67914b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich 68014b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich &bfin_dpmc, 68114b03204c8060d036b04cbb18bbd6f6f311f4fedMichael Hennerich 6820d4a89bb3eb58f39831186fa6b1542893dbfdc9fMichael Hennerich#if defined(CONFIG_FB_HITACHI_TX09) || defined(CONFIG_FB_HITACHI_TX09_MODULE) 6830d4a89bb3eb58f39831186fa6b1542893dbfdc9fMichael Hennerich &hitachi_fb_device, 6840d4a89bb3eb58f39831186fa6b1542893dbfdc9fMichael Hennerich#endif 6850d4a89bb3eb58f39831186fa6b1542893dbfdc9fMichael Hennerich 6861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) 6871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &rtc_device, 6881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 6891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 6901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 6916058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer#ifdef CONFIG_SERIAL_BFIN_UART0 6926058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer &bfin_uart0_device, 6936058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer#endif 6946058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer#ifdef CONFIG_SERIAL_BFIN_UART1 6956058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer &bfin_uart1_device, 6966058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer#endif 6971394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 6981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 6995be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 70042bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#ifdef CONFIG_BFIN_SIR0 70142bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang &bfin_sir0_device, 70242bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#endif 70342bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#ifdef CONFIG_BFIN_SIR1 70442bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang &bfin_sir1_device, 70542bd8bcb2fa1853fda9c51d956f70bbe2329bdfbGraf Yang#endif 7065be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang#endif 7075be36d22b28f01e5074f78b29aa6128da0a53641Graf Yang 70856ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) 70956ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger &i2c_bfin_twi_device, 71056ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger#endif 71156ce835b608343b22e1e46e5bb913b87c162486eMike Frysinger 7121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 713df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART 7141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &bfin_sport0_uart_device, 715df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#endif 716df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART 7171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &bfin_sport1_uart_device, 7181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 719df5de261306d9bfc1ed9121595593b10a7626b95Sonic Zhang#endif 7201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 7211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 7221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &isp1362_hcd_device, 7231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 7241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 7251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) 7261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &smc91x_device, 7271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 7281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 7291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 73065319628db2c7a630daadfeec4d371aaca788482Graf Yang &bfin_mii_bus, 7311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &bfin_mac_device, 7321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 7331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 7341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE) 7351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu &net2272_bfin_device, 7361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 7371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 7387d157fb02bc3f4dc74e6830725864ba501d92da7Sonic Zhang#if defined(CONFIG_SPI_BFIN5XX) || defined(CONFIG_SPI_BFIN5XX_MODULE) 739c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu &bfin_spi0_device, 740c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif 741c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 742c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) 743c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu &bfin_pata_device, 7441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 7458ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger 7468ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger#if defined(CONFIG_MTD_GPIO_ADDR) || defined(CONFIG_MTD_GPIO_ADDR_MODULE) 7478ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger &cm_flash_device, 7488ea8949733e35597efa45e71c0d3d65cafd7687aMike Frysinger#endif 7491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu}; 7501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 7519be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysingerstatic int __init net2272_init(void) 7529be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger{ 7539be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE) 7549be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger int ret; 7559be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger 7569be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger ret = gpio_request(GPIO_PG14, "net2272"); 7579be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger if (ret) 7589be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger return ret; 7599be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger 7609be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger /* Reset USB Chip, PG14 */ 7619be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger gpio_direction_output(GPIO_PG14, 0); 7629be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger mdelay(2); 7639be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger gpio_set_value(GPIO_PG14, 1); 7649be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger#endif 7659be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger 7669be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger return 0; 7679be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger} 7689be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger 7696058434468daa16580a77922661b31b880d60db5Harald Krapfenbauerstatic int __init cm_bf537e_init(void) 7701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu{ 771b85d858b40a28107ee50ca9e89f57c0e35c251c6Harvey Harrison printk(KERN_INFO "%s(): registering device resources\n", __func__); 7726058434468daa16580a77922661b31b880d60db5Harald Krapfenbauer platform_add_devices(cm_bf537e_devices, ARRAY_SIZE(cm_bf537e_devices)); 7737d157fb02bc3f4dc74e6830725864ba501d92da7Sonic Zhang#if defined(CONFIG_SPI_BFIN5XX) || defined(CONFIG_SPI_BFIN5XX_MODULE) 7741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); 7751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif 776c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu 777c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) 778bc2f6bd8027a88da69102a8aed65dcbd1e895119Thomas Gleixner irq_set_status_flags(PATA_INT, IRQ_NOAUTOEN); 779c6c4d7bbbb498c38afa05688dfc2784948a0c4e2Bryan Wu#endif 7809be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger 7819be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger if (net2272_init()) 7829be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger pr_warning("unable to configure net2272; it probably won't work\n"); 7839be8631b8a7d11fa6d206fcf0a7a2005ed39f41bMike Frysinger 7841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu return 0; 7851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu} 7861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu 7876058434468daa16580a77922661b31b880d60db5Harald Krapfenbauerarch_initcall(cm_bf537e_init); 788137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger 789c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhangstatic struct platform_device *cm_bf537e_early_devices[] __initdata = { 790c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK) 791c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART0 792c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang &bfin_uart0_device, 793c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif 794c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_UART1 795c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang &bfin_uart1_device, 796c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif 797c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif 798c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang 799c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE) 800c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART 801c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang &bfin_sport0_uart_device, 802c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif 803c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART 804c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang &bfin_sport1_uart_device, 805c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif 806c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang#endif 807c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang}; 808c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang 809c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhangvoid __init native_machine_early_platform_add_devices(void) 810c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang{ 811c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang printk(KERN_INFO "register early platform devices\n"); 812c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang early_platform_add_devices(cm_bf537e_early_devices, 813c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang ARRAY_SIZE(cm_bf537e_early_devices)); 814c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang} 815c13ce9fd26c3a0e32b3bf0b00929181e66114ed2Sonic Zhang 816fa63c6da22b4a6ea6e7d04e3dc9178dd72304903Danny Kukawkaint bfin_get_ether_addr(char *addr) 817137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger{ 818fa63c6da22b4a6ea6e7d04e3dc9178dd72304903Danny Kukawka return 1; 819137b1529da492baa654c702ecb60bb950eccb98dMike Frysinger} 8209862cc5278aabd82230369a142c817e37a42caa3Mike FrysingerEXPORT_SYMBOL(bfin_get_ether_addr); 821