2008-01-27 19:54:20 +08:00
/*
2009-09-24 14:11:24 +00:00
* Copyright 2004 - 2009 Analog Devices Inc .
* 2008 - 2009 Cambridge Signal Processing
* 2005 National ICT Australia ( NICTA )
* Aidan Williams < aidan @ nicta . com . au >
*
* Licensed under the GPL - 2 or later .
2008-01-27 19:54:20 +08:00
*/
# include <linux/device.h>
# include <linux/platform_device.h>
# include <linux/mtd/mtd.h>
# include <linux/mtd/partitions.h>
# include <linux/spi/spi.h>
# include <linux/spi/flash.h>
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_USB_ISP1362_HCD)
2008-04-24 03:34:13 +08:00
# include <linux/usb/isp1362.h>
2008-01-27 19:54:20 +08:00
# endif
2008-02-01 18:02:30 -05:00
# include <linux/ata_platform.h>
2008-01-27 19:54:20 +08:00
# include <linux/irq.h>
# include <linux/interrupt.h>
2008-04-24 03:34:13 +08:00
# include <linux/usb/sl811.h>
2008-01-27 19:54:20 +08:00
# include <asm/dma.h>
# include <asm/bfin5xx_spi.h>
# include <asm/reboot.h>
2010-04-15 16:31:43 +00:00
# include <asm/portmux.h>
2008-01-27 19:54:20 +08:00
# include <linux/spi/ad7877.h>
/*
* Name the Board for the / proc / cpuinfo
*/
2010-04-15 16:31:43 +00:00
const char bfin_board_name [ ] = " CamSig Minotaur BF537 " ;
2008-01-27 19:54:20 +08:00
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_BFIN_CFPCMCIA)
2008-01-27 19:54:20 +08:00
static struct resource bfin_pcmcia_cf_resources [ ] = {
{
. start = 0x20310000 , /* IO PORT */
. end = 0x20312000 ,
. flags = IORESOURCE_MEM ,
} , {
. start = 0x20311000 , /* Attribute Memory */
. end = 0x20311FFF ,
. flags = IORESOURCE_MEM ,
} , {
. start = IRQ_PF4 ,
. end = IRQ_PF4 ,
. flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL ,
} , {
. start = IRQ_PF6 , /* Card Detect PF6 */
. end = IRQ_PF6 ,
. flags = IORESOURCE_IRQ ,
} ,
} ;
static struct platform_device bfin_pcmcia_cf_device = {
. name = " bfin_cf_pcmcia " ,
. id = - 1 ,
. num_resources = ARRAY_SIZE ( bfin_pcmcia_cf_resources ) ,
. resource = bfin_pcmcia_cf_resources ,
} ;
# endif
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_RTC_DRV_BFIN)
2008-01-27 19:54:20 +08:00
static struct platform_device rtc_device = {
. name = " rtc-bfin " ,
. id = - 1 ,
} ;
# endif
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_BFIN_MAC)
2010-06-11 10:44:22 +00:00
# include <linux/bfin_mac.h>
static const unsigned short bfin_mac_peripherals [ ] = P_MII0 ;
static struct bfin_phydev_platform_data bfin_phydev_data [ ] = {
{
. addr = 1 ,
. irq = IRQ_MAC_PHYINT ,
} ,
} ;
static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
. phydev_number = 1 ,
. phydev_data = bfin_phydev_data ,
. phy_mode = PHY_INTERFACE_MODE_MII ,
. mac_peripherals = bfin_mac_peripherals ,
} ;
2009-02-04 16:49:45 +08:00
static struct platform_device bfin_mii_bus = {
. name = " bfin_mii_bus " ,
2010-06-11 10:44:22 +00:00
. dev = {
. platform_data = & bfin_mii_bus_data ,
}
2009-02-04 16:49:45 +08:00
} ;
2008-01-27 19:54:20 +08:00
static struct platform_device bfin_mac_device = {
. name = " bfin_mac " ,
2010-06-11 10:44:22 +00:00
. dev = {
. platform_data = & bfin_mii_bus ,
}
2008-01-27 19:54:20 +08:00
} ;
# endif
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_USB_NET2272)
2008-01-27 19:54:20 +08:00
static struct resource net2272_bfin_resources [ ] = {
{
. start = 0x20300000 ,
. end = 0x20300000 + 0x100 ,
. flags = IORESOURCE_MEM ,
} , {
. start = IRQ_PF7 ,
. end = IRQ_PF7 ,
. flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL ,
} ,
} ;
static struct platform_device net2272_bfin_device = {
. name = " net2272 " ,
. id = - 1 ,
. num_resources = ARRAY_SIZE ( net2272_bfin_resources ) ,
. resource = net2272_bfin_resources ,
} ;
# endif
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_SPI_BFIN5XX)
2008-01-27 19:54:20 +08:00
/* all SPI peripherals info goes here */
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_MTD_M25P80)
2008-01-27 19:54:20 +08:00
/* Partition sizes */
# define FLASH_SIZE 0x00400000
# define PSIZE_UBOOT 0x00030000
# define PSIZE_INITRAMFS 0x00240000
static struct mtd_partition bfin_spi_flash_partitions [ ] = {
{
2008-08-05 17:47:29 +08:00
. name = " bootloader(spi) " ,
2008-01-27 19:54:20 +08:00
. size = PSIZE_UBOOT ,
. offset = 0x000000 ,
. mask_flags = MTD_CAP_ROM
} , {
2008-08-05 17:47:29 +08:00
. name = " initramfs(spi) " ,
2008-01-27 19:54:20 +08:00
. size = PSIZE_INITRAMFS ,
. offset = PSIZE_UBOOT
} , {
2008-08-05 17:47:29 +08:00
. name = " opt(spi) " ,
2008-01-27 19:54:20 +08:00
. size = FLASH_SIZE - ( PSIZE_UBOOT + PSIZE_INITRAMFS ) ,
. offset = PSIZE_UBOOT + PSIZE_INITRAMFS ,
}
} ;
static struct flash_platform_data bfin_spi_flash_data = {
. name = " m25p80 " ,
. parts = bfin_spi_flash_partitions ,
. nr_parts = ARRAY_SIZE ( bfin_spi_flash_partitions ) ,
. type = " m25p64 " ,
} ;
/* SPI flash chip (m25p64) */
static struct bfin5xx_spi_chip spi_flash_chip_info = {
. enable_dma = 0 , /* use dma transfer with this chip*/
} ;
# endif
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_MMC_SPI)
2009-03-06 00:27:57 +08:00
static struct bfin5xx_spi_chip mmc_spi_chip_info = {
. enable_dma = 0 ,
2008-01-27 19:54:20 +08:00
} ;
# endif
static struct spi_board_info bfin_spi_board_info [ ] __initdata = {
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_MTD_M25P80)
2008-01-27 19:54:20 +08:00
{
/* the modalias must be the same as spi device driver name */
. modalias = " m25p80 " , /* Name of spi_driver for this device */
. max_speed_hz = 25000000 , /* max spi clock (SCK) speed in HZ */
. bus_num = 0 , /* Framework bus number */
. chip_select = 1 , /* Framework chip select. On STAMP537 it is SPISSEL1*/
. platform_data = & bfin_spi_flash_data ,
. controller_data = & spi_flash_chip_info ,
. mode = SPI_MODE_3 ,
} ,
# endif
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_MMC_SPI)
2008-01-27 19:54:20 +08:00
{
2009-03-06 00:27:57 +08:00
. modalias = " mmc_spi " ,
2008-01-27 19:54:20 +08:00
. max_speed_hz = 5000000 , /* max spi clock (SCK) speed in HZ */
. bus_num = 0 ,
2009-03-06 00:27:57 +08:00
. chip_select = 5 ,
. controller_data = & mmc_spi_chip_info ,
2008-01-27 19:54:20 +08:00
. mode = SPI_MODE_3 ,
} ,
# endif
} ;
/* SPI controller data */
static struct bfin5xx_spi_master bfin_spi0_info = {
. num_chipselect = 8 ,
. enable_dma = 1 , /* master has the ability to do dma transfer */
} ;
/* SPI (0) */
static struct resource bfin_spi0_resource [ ] = {
[ 0 ] = {
. start = SPI0_REGBASE ,
. end = SPI0_REGBASE + 0xFF ,
. flags = IORESOURCE_MEM ,
} ,
[ 1 ] = {
. start = CH_SPI ,
. end = CH_SPI ,
2009-06-05 12:11:11 +00:00
. flags = IORESOURCE_DMA ,
} ,
[ 2 ] = {
. start = IRQ_SPI ,
. end = IRQ_SPI ,
2008-01-27 19:54:20 +08:00
. flags = IORESOURCE_IRQ ,
} ,
} ;
static struct platform_device bfin_spi0_device = {
. name = " bfin-spi " ,
. id = 0 , /* Bus number */
. num_resources = ARRAY_SIZE ( bfin_spi0_resource ) ,
. resource = bfin_spi0_resource ,
. dev = {
. platform_data = & bfin_spi0_info , /* Passed to driver */
} ,
} ;
# endif /* spi master and devices */
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_SERIAL_BFIN)
2009-09-09 10:46:19 +00:00
# ifdef CONFIG_SERIAL_BFIN_UART0
static struct resource bfin_uart0_resources [ ] = {
2008-01-27 19:54:20 +08:00
{
2009-09-09 10:46:19 +00:00
. start = UART0_THR ,
. end = UART0_GCTL + 2 ,
2008-01-27 19:54:20 +08:00
. flags = IORESOURCE_MEM ,
2009-09-09 10:46:19 +00:00
} ,
2011-08-01 17:53:21 +08:00
{
. start = IRQ_UART0_TX ,
. end = IRQ_UART0_TX ,
. flags = IORESOURCE_IRQ ,
} ,
2009-09-09 10:46:19 +00:00
{
. start = IRQ_UART0_RX ,
2011-08-01 17:53:21 +08:00
. end = IRQ_UART0_RX ,
2009-09-09 10:46:19 +00:00
. flags = IORESOURCE_IRQ ,
} ,
{
. start = IRQ_UART0_ERROR ,
. end = IRQ_UART0_ERROR ,
. flags = IORESOURCE_IRQ ,
} ,
{
. start = CH_UART0_TX ,
. end = CH_UART0_TX ,
. flags = IORESOURCE_DMA ,
} ,
{
. start = CH_UART0_RX ,
. end = CH_UART0_RX ,
. flags = IORESOURCE_DMA ,
} ,
} ;
2010-11-24 09:23:04 +00:00
static unsigned short bfin_uart0_peripherals [ ] = {
2009-09-09 10:46:19 +00:00
P_UART0_TX , P_UART0_RX , 0
} ;
static struct platform_device bfin_uart0_device = {
. name = " bfin-uart " ,
. id = 0 ,
. num_resources = ARRAY_SIZE ( bfin_uart0_resources ) ,
. resource = bfin_uart0_resources ,
. dev = {
. platform_data = & bfin_uart0_peripherals , /* Passed to driver */
} ,
} ;
# endif
# ifdef CONFIG_SERIAL_BFIN_UART1
static struct resource bfin_uart1_resources [ ] = {
{
. start = UART1_THR ,
. end = UART1_GCTL + 2 ,
2008-01-27 19:54:20 +08:00
. flags = IORESOURCE_MEM ,
} ,
2011-08-01 17:53:21 +08:00
{
. start = IRQ_UART1_TX ,
. end = IRQ_UART1_TX ,
. flags = IORESOURCE_IRQ ,
} ,
2009-09-09 10:46:19 +00:00
{
. start = IRQ_UART1_RX ,
2011-08-01 17:53:21 +08:00
. end = IRQ_UART1_RX ,
2009-09-09 10:46:19 +00:00
. flags = IORESOURCE_IRQ ,
} ,
{
. start = IRQ_UART1_ERROR ,
. end = IRQ_UART1_ERROR ,
. flags = IORESOURCE_IRQ ,
} ,
{
. start = CH_UART1_TX ,
. end = CH_UART1_TX ,
. flags = IORESOURCE_DMA ,
} ,
{
. start = CH_UART1_RX ,
. end = CH_UART1_RX ,
. flags = IORESOURCE_DMA ,
} ,
2008-01-27 19:54:20 +08:00
} ;
2010-11-24 09:23:04 +00:00
static unsigned short bfin_uart1_peripherals [ ] = {
2009-09-09 10:46:19 +00:00
P_UART1_TX , P_UART1_RX , 0
} ;
static struct platform_device bfin_uart1_device = {
2008-01-27 19:54:20 +08:00
. name = " bfin-uart " ,
. id = 1 ,
2009-09-09 10:46:19 +00:00
. num_resources = ARRAY_SIZE ( bfin_uart1_resources ) ,
. resource = bfin_uart1_resources ,
. dev = {
. platform_data = & bfin_uart1_peripherals , /* Passed to driver */
} ,
2008-01-27 19:54:20 +08:00
} ;
# endif
2009-09-09 10:46:19 +00:00
# endif
2008-01-27 19:54:20 +08:00
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_BFIN_SIR)
2008-04-25 03:09:15 +08:00
# ifdef CONFIG_BFIN_SIR0
2009-01-07 23:14:39 +08:00
static struct resource bfin_sir0_resources [ ] = {
2008-04-25 03:09:15 +08:00
{
. start = 0xFFC00400 ,
. end = 0xFFC004FF ,
. flags = IORESOURCE_MEM ,
} ,
2009-01-07 23:14:39 +08:00
{
. start = IRQ_UART0_RX ,
. end = IRQ_UART0_RX + 1 ,
. flags = IORESOURCE_IRQ ,
} ,
{
. start = CH_UART0_RX ,
. end = CH_UART0_RX + 1 ,
. flags = IORESOURCE_DMA ,
} ,
} ;
static struct platform_device bfin_sir0_device = {
. name = " bfin_sir " ,
. id = 0 ,
. num_resources = ARRAY_SIZE ( bfin_sir0_resources ) ,
. resource = bfin_sir0_resources ,
} ;
2008-04-25 03:09:15 +08:00
# endif
# ifdef CONFIG_BFIN_SIR1
2009-01-07 23:14:39 +08:00
static struct resource bfin_sir1_resources [ ] = {
2008-04-25 03:09:15 +08:00
{
. start = 0xFFC02000 ,
. end = 0xFFC020FF ,
. flags = IORESOURCE_MEM ,
} ,
2009-01-07 23:14:39 +08:00
{
. start = IRQ_UART1_RX ,
. end = IRQ_UART1_RX + 1 ,
. flags = IORESOURCE_IRQ ,
} ,
{
. start = CH_UART1_RX ,
. end = CH_UART1_RX + 1 ,
. flags = IORESOURCE_DMA ,
} ,
2008-04-25 03:09:15 +08:00
} ;
2009-01-07 23:14:39 +08:00
static struct platform_device bfin_sir1_device = {
2008-04-25 03:09:15 +08:00
. name = " bfin_sir " ,
2009-01-07 23:14:39 +08:00
. id = 1 ,
. num_resources = ARRAY_SIZE ( bfin_sir1_resources ) ,
. resource = bfin_sir1_resources ,
2008-04-25 03:09:15 +08:00
} ;
# endif
2009-01-07 23:14:39 +08:00
# endif
2008-04-25 03:09:15 +08:00
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_I2C_BLACKFIN_TWI)
2012-05-15 15:25:50 +08:00
static const u16 bfin_twi0_pins [ ] = { P_TWI0_SCL , P_TWI0_SDA , 0 } ;
2008-01-27 19:54:20 +08:00
static struct resource bfin_twi0_resource [ ] = {
[ 0 ] = {
. start = TWI0_REGBASE ,
. end = TWI0_REGBASE + 0xFF ,
. flags = IORESOURCE_MEM ,
} ,
[ 1 ] = {
. start = IRQ_TWI ,
. end = IRQ_TWI ,
. flags = IORESOURCE_IRQ ,
} ,
} ;
static struct platform_device i2c_bfin_twi_device = {
. name = " i2c-bfin-twi " ,
. id = 0 ,
. num_resources = ARRAY_SIZE ( bfin_twi0_resource ) ,
. resource = bfin_twi0_resource ,
2012-05-15 15:25:50 +08:00
. dev = {
. platform_data = & bfin_twi0_pins ,
} ,
2008-01-27 19:54:20 +08:00
} ;
# endif
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_SERIAL_BFIN_SPORT)
2009-09-23 05:01:56 +00:00
# ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
static struct resource bfin_sport0_uart_resources [ ] = {
{
. start = SPORT0_TCR1 ,
. end = SPORT0_MRCS3 + 4 ,
. flags = IORESOURCE_MEM ,
} ,
{
. start = IRQ_SPORT0_RX ,
. end = IRQ_SPORT0_RX + 1 ,
. flags = IORESOURCE_IRQ ,
} ,
{
. start = IRQ_SPORT0_ERROR ,
. end = IRQ_SPORT0_ERROR ,
. flags = IORESOURCE_IRQ ,
} ,
} ;
2010-11-24 09:23:04 +00:00
static unsigned short bfin_sport0_peripherals [ ] = {
2009-09-23 05:01:56 +00:00
P_SPORT0_TFS , P_SPORT0_DTPRI , P_SPORT0_TSCLK , P_SPORT0_RFS ,
2010-11-12 02:45:38 +00:00
P_SPORT0_DRPRI , P_SPORT0_RSCLK , 0
2009-09-23 05:01:56 +00:00
} ;
2008-01-27 19:54:20 +08:00
static struct platform_device bfin_sport0_uart_device = {
. name = " bfin-sport-uart " ,
. id = 0 ,
2009-09-23 05:01:56 +00:00
. num_resources = ARRAY_SIZE ( bfin_sport0_uart_resources ) ,
. resource = bfin_sport0_uart_resources ,
. dev = {
. platform_data = & bfin_sport0_peripherals , /* Passed to driver */
} ,
} ;
# endif
# ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
static struct resource bfin_sport1_uart_resources [ ] = {
{
. start = SPORT1_TCR1 ,
. end = SPORT1_MRCS3 + 4 ,
. flags = IORESOURCE_MEM ,
} ,
{
. start = IRQ_SPORT1_RX ,
. end = IRQ_SPORT1_RX + 1 ,
. flags = IORESOURCE_IRQ ,
} ,
{
. start = IRQ_SPORT1_ERROR ,
. end = IRQ_SPORT1_ERROR ,
. flags = IORESOURCE_IRQ ,
} ,
} ;
2010-11-24 09:23:04 +00:00
static unsigned short bfin_sport1_peripherals [ ] = {
2009-09-23 05:01:56 +00:00
P_SPORT1_TFS , P_SPORT1_DTPRI , P_SPORT1_TSCLK , P_SPORT1_RFS ,
2010-11-12 02:45:38 +00:00
P_SPORT1_DRPRI , P_SPORT1_RSCLK , 0
2008-01-27 19:54:20 +08:00
} ;
static struct platform_device bfin_sport1_uart_device = {
. name = " bfin-sport-uart " ,
. id = 1 ,
2009-09-23 05:01:56 +00:00
. num_resources = ARRAY_SIZE ( bfin_sport1_uart_resources ) ,
. resource = bfin_sport1_uart_resources ,
. dev = {
. platform_data = & bfin_sport1_peripherals , /* Passed to driver */
} ,
2008-01-27 19:54:20 +08:00
} ;
# endif
2009-09-23 05:01:56 +00:00
# endif
2008-01-27 19:54:20 +08:00
static struct platform_device * minotaur_devices [ ] __initdata = {
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_BFIN_CFPCMCIA)
2008-01-27 19:54:20 +08:00
& bfin_pcmcia_cf_device ,
# endif
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_RTC_DRV_BFIN)
2008-01-27 19:54:20 +08:00
& rtc_device ,
# endif
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_BFIN_MAC)
2009-02-04 16:49:45 +08:00
& bfin_mii_bus ,
2008-01-27 19:54:20 +08:00
& bfin_mac_device ,
# endif
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_USB_NET2272)
2008-01-27 19:54:20 +08:00
& net2272_bfin_device ,
# endif
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_SPI_BFIN5XX)
2008-01-27 19:54:20 +08:00
& bfin_spi0_device ,
# endif
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_SERIAL_BFIN)
2009-09-09 10:46:19 +00:00
# ifdef CONFIG_SERIAL_BFIN_UART0
& bfin_uart0_device ,
# endif
# ifdef CONFIG_SERIAL_BFIN_UART1
& bfin_uart1_device ,
# endif
2008-01-27 19:54:20 +08:00
# endif
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_BFIN_SIR)
2009-01-07 23:14:39 +08:00
# ifdef CONFIG_BFIN_SIR0
& bfin_sir0_device ,
# endif
# ifdef CONFIG_BFIN_SIR1
& bfin_sir1_device ,
# endif
2008-04-25 03:09:15 +08:00
# endif
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_I2C_BLACKFIN_TWI)
2008-01-27 19:54:20 +08:00
& i2c_bfin_twi_device ,
# endif
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_SERIAL_BFIN_SPORT)
2009-09-23 05:01:56 +00:00
# ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
2008-01-27 19:54:20 +08:00
& bfin_sport0_uart_device ,
2009-09-23 05:01:56 +00:00
# endif
# ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
2008-01-27 19:54:20 +08:00
& bfin_sport1_uart_device ,
# endif
2009-09-23 05:01:56 +00:00
# endif
2008-01-27 19:54:20 +08:00
} ;
static int __init minotaur_init ( void )
{
2008-04-23 09:39:01 +08:00
printk ( KERN_INFO " %s(): registering device resources \n " , __func__ ) ;
2008-01-27 19:54:20 +08:00
platform_add_devices ( minotaur_devices , ARRAY_SIZE ( minotaur_devices ) ) ;
2014-04-12 02:07:27 +08:00
# if IS_ENABLED(CONFIG_SPI_BFIN5XX)
2008-01-27 19:54:20 +08:00
spi_register_board_info ( bfin_spi_board_info ,
ARRAY_SIZE ( bfin_spi_board_info ) ) ;
# endif
return 0 ;
}
arch_initcall ( minotaur_init ) ;
2009-09-23 09:37:46 +00:00
static struct platform_device * minotaur_early_devices [ ] __initdata = {
# if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
# ifdef CONFIG_SERIAL_BFIN_UART0
& bfin_uart0_device ,
# endif
# ifdef CONFIG_SERIAL_BFIN_UART1
& bfin_uart1_device ,
# endif
# endif
# if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
# ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
& bfin_sport0_uart_device ,
# endif
# ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
& bfin_sport1_uart_device ,
# endif
# endif
} ;
void __init native_machine_early_platform_add_devices ( void )
{
printk ( KERN_INFO " register early platform devices \n " ) ;
early_platform_add_devices ( minotaur_early_devices ,
ARRAY_SIZE ( minotaur_early_devices ) ) ;
}
2008-01-27 19:54:20 +08:00
void native_machine_restart ( char * cmd )
{
/* workaround reboot hang when booting from SPI */
if ( ( bfin_read_SYSCR ( ) & 0x7 ) = = 0x3 )
2009-02-04 16:49:45 +08:00
bfin_reset_boot_spi_cs ( P_DEFAULT_BOOT_SPI_CS ) ;
2008-01-27 19:54:20 +08:00
}