2010-01-22 03:42:02 +03:00
/*
* arch / arm / mach - ep93xx / simone . c
* Simplemachines Sim . One support .
*
2011-06-15 08:45:36 +04:00
* Copyright ( C ) 2010 Ryan Mallon
2010-01-22 03:42:02 +03:00
*
* Based on the 2.6 .24 .7 support :
* Copyright ( C ) 2009 Simplemachines
* MMC support by Peter Ivanov < ivanovp @ gmail . com > , 2007
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License , or ( at
* your option ) any later version .
*
*/
# include <linux/kernel.h>
# include <linux/init.h>
# include <linux/platform_device.h>
# include <linux/i2c.h>
# include <linux/i2c-gpio.h>
# include <mach/hardware.h>
2012-08-24 17:12:11 +04:00
# include <linux/platform_data/video-ep93xx.h>
2011-09-22 11:07:00 +04:00
# include <mach/gpio-ep93xx.h>
2010-01-22 03:42:02 +03:00
# include <asm/mach-types.h>
# include <asm/mach/arch.h>
2012-01-11 02:06:08 +04:00
# include "soc.h"
2010-03-18 20:04:06 +03:00
static struct ep93xx_eth_data __initdata simone_eth_data = {
2010-01-22 03:42:02 +03:00
. phy_id = 1 ,
} ;
2010-03-18 20:04:06 +03:00
static struct ep93xxfb_mach_info __initdata simone_fb_info = {
2010-01-22 03:42:02 +03:00
. num_modes = EP93XXFB_USE_MODEDB ,
. bpp = 16 ,
. flags = EP93XXFB_USE_SDCSN0 | EP93XXFB_PCLK_FALLING ,
} ;
2010-03-18 20:04:06 +03:00
static struct i2c_gpio_platform_data __initdata simone_i2c_gpio_data = {
2010-01-22 03:42:02 +03:00
. sda_pin = EP93XX_GPIO_LINE_EEDAT ,
. sda_is_open_drain = 0 ,
. scl_pin = EP93XX_GPIO_LINE_EECLK ,
. scl_is_open_drain = 0 ,
. udelay = 0 ,
. timeout = 0 ,
} ;
static struct i2c_board_info __initdata simone_i2c_board_info [ ] = {
{
I2C_BOARD_INFO ( " ds1337 " , 0x68 ) ,
} ,
} ;
2011-09-11 13:28:53 +04:00
static struct platform_device simone_audio_device = {
. name = " simone-audio " ,
. id = - 1 ,
} ;
static void __init simone_register_audio ( void )
{
ep93xx_register_ac97 ( ) ;
platform_device_register ( & simone_audio_device ) ;
}
2010-01-22 03:42:02 +03:00
static void __init simone_init_machine ( void )
{
ep93xx_init_devices ( ) ;
2010-06-10 19:19:08 +04:00
ep93xx_register_flash ( 2 , EP93XX_CS6_PHYS_BASE , SZ_8M ) ;
2010-01-22 03:42:02 +03:00
ep93xx_register_eth ( & simone_eth_data , 1 ) ;
ep93xx_register_fb ( & simone_fb_info ) ;
ep93xx_register_i2c ( & simone_i2c_gpio_data , simone_i2c_board_info ,
ARRAY_SIZE ( simone_i2c_board_info ) ) ;
2011-09-11 13:28:53 +04:00
simone_register_audio ( ) ;
2010-01-22 03:42:02 +03:00
}
MACHINE_START ( SIM_ONE , " Simplemachines Sim.One Board " )
2011-07-06 06:38:11 +04:00
/* Maintainer: Ryan Mallon */
. atag_offset = 0x100 ,
2010-01-22 03:42:02 +03:00
. map_io = ep93xx_map_io ,
. init_irq = ep93xx_init_irq ,
2012-11-08 23:40:59 +04:00
. init_time = ep93xx_timer_init ,
2010-01-22 03:42:02 +03:00
. init_machine = simone_init_machine ,
2012-04-26 06:05:15 +04:00
. init_late = ep93xx_init_late ,
2011-11-05 13:54:14 +04:00
. restart = ep93xx_restart ,
2010-01-22 03:42:02 +03:00
MACHINE_END