2009-05-28 14:04:04 -07:00
/*
* Copyright ( C ) 2009 Texas Instruments Inc .
* Mikkel Christensen < mlc @ ti . com >
*
* Modified from mach - omap2 / board - ldp . c
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*/
# include <linux/kernel.h>
# include <linux/init.h>
# include <linux/platform_device.h>
2009-08-28 11:24:13 -07:00
# include <linux/input.h>
2009-05-28 14:04:04 -07:00
# include <linux/gpio.h>
# include <asm/mach-types.h>
# include <asm/mach/arch.h>
2009-10-20 09:40:47 -07:00
# include <plat/common.h>
2009-11-22 10:11:30 -08:00
# include <plat/board.h>
2009-05-28 14:04:04 -07:00
2009-11-22 10:11:31 -08:00
# include <mach/board-zoom.h>
2009-08-28 11:24:13 -07:00
2009-12-11 16:16:32 -08:00
# include "mux.h"
2009-10-14 09:56:35 -07:00
# include "sdram-micron-mt46h32m32lf-6.h"
2009-08-28 11:24:13 -07:00
2009-09-03 20:14:02 +03:00
static void __init omap_zoom2_init_irq ( void )
{
2009-10-14 09:56:35 -07:00
omap2_init_common_hw ( mt46h32m32lf6_sdrc_params ,
mt46h32m32lf6_sdrc_params ) ;
2009-09-03 20:14:02 +03:00
omap_init_irq ( ) ;
omap_gpio_init ( ) ;
}
2009-11-22 10:11:30 -08:00
/* REVISIT: These audio entries can be removed once MFD code is merged */
#if 0
2009-08-28 11:24:13 -07:00
static struct twl4030_madc_platform_data zoom2_madc_data = {
. irq_line = 1 ,
2009-05-28 14:04:04 -07:00
} ;
2009-10-22 13:26:46 +03:00
static struct twl4030_codec_audio_data zoom2_audio_data = {
. audio_mclk = 26000000 ,
} ;
static struct twl4030_codec_data zoom2_codec_data = {
2009-11-04 09:58:18 +02:00
. audio_mclk = 26000000 ,
2009-10-22 13:26:46 +03:00
. audio = & zoom2_audio_data ,
} ;
2009-05-28 14:04:04 -07:00
static struct twl4030_platform_data zoom2_twldata = {
. irq_base = TWL4030_IRQ_BASE ,
. irq_end = TWL4030_IRQ_END ,
/* platform_data for children goes here */
2009-08-28 11:24:13 -07:00
. bci = & zoom2_bci_data ,
. madc = & zoom2_madc_data ,
. usb = & zoom2_usb_data ,
2009-05-28 14:04:04 -07:00
. gpio = & zoom2_gpio_data ,
2009-08-28 11:24:13 -07:00
. keypad = & zoom2_kp_twl4030_data ,
2009-10-22 13:26:46 +03:00
. codec = & zoom2_codec_data ,
2009-08-28 11:24:13 -07:00
. vmmc1 = & zoom2_vmmc1 ,
. vmmc2 = & zoom2_vmmc2 ,
. vsim = & zoom2_vsim ,
2009-05-28 14:04:04 -07:00
} ;
2009-11-22 10:11:30 -08:00
# endif
2009-05-28 14:04:04 -07:00
2009-12-11 16:16:32 -08:00
# ifdef CONFIG_OMAP_MUX
static struct omap_board_mux board_mux [ ] __initdata = {
2010-08-02 13:18:00 +03:00
/* WLAN IRQ - GPIO 162 */
OMAP3_MUX ( MCBSP1_CLKX , OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP ) ,
/* WLAN POWER ENABLE - GPIO 101 */
OMAP3_MUX ( CAM_D2 , OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT ) ,
/* WLAN SDIO: MMC3 CMD */
OMAP3_MUX ( MCSPI1_CS1 , OMAP_MUX_MODE3 | OMAP_PIN_INPUT_PULLUP ) ,
/* WLAN SDIO: MMC3 CLK */
OMAP3_MUX ( ETK_CLK , OMAP_MUX_MODE2 | OMAP_PIN_INPUT_PULLUP ) ,
/* WLAN SDIO: MMC3 DAT[0-3] */
OMAP3_MUX ( ETK_D3 , OMAP_MUX_MODE2 | OMAP_PIN_INPUT_PULLUP ) ,
OMAP3_MUX ( ETK_D4 , OMAP_MUX_MODE2 | OMAP_PIN_INPUT_PULLUP ) ,
OMAP3_MUX ( ETK_D5 , OMAP_MUX_MODE2 | OMAP_PIN_INPUT_PULLUP ) ,
OMAP3_MUX ( ETK_D6 , OMAP_MUX_MODE2 | OMAP_PIN_INPUT_PULLUP ) ,
2009-12-11 16:16:32 -08:00
{ . reg_offset = OMAP_MUX_TERMINATOR } ,
} ;
# else
# define board_mux NULL
# endif
2010-07-09 14:27:48 +00:00
static struct mtd_partition zoom_nand_partitions [ ] = {
/* All the partition sizes are listed in terms of NAND block size */
{
. name = " X-Loader-NAND " ,
. offset = 0 ,
. size = 4 * ( 64 * 2048 ) , /* 512KB, 0x80000 */
. mask_flags = MTD_WRITEABLE , /* force read-only */
} ,
{
. name = " U-Boot-NAND " ,
. offset = MTDPART_OFS_APPEND , /* Offset = 0x80000 */
. size = 10 * ( 64 * 2048 ) , /* 1.25MB, 0x140000 */
. mask_flags = MTD_WRITEABLE , /* force read-only */
} ,
{
. name = " Boot Env-NAND " ,
. offset = MTDPART_OFS_APPEND , /* Offset = 0x1c0000 */
. size = 2 * ( 64 * 2048 ) , /* 256KB, 0x40000 */
} ,
{
. name = " Kernel-NAND " ,
. offset = MTDPART_OFS_APPEND , /* Offset = 0x0200000*/
. size = 240 * ( 64 * 2048 ) , /* 30M, 0x1E00000 */
} ,
{
. name = " system " ,
. offset = MTDPART_OFS_APPEND , /* Offset = 0x2000000 */
. size = 3328 * ( 64 * 2048 ) , /* 416M, 0x1A000000 */
} ,
{
. name = " userdata " ,
. offset = MTDPART_OFS_APPEND , /* Offset = 0x1C000000*/
. size = 256 * ( 64 * 2048 ) , /* 32M, 0x2000000 */
} ,
{
. name = " cache " ,
. offset = MTDPART_OFS_APPEND , /* Offset = 0x1E000000*/
. size = 256 * ( 64 * 2048 ) , /* 32M, 0x2000000 */
} ,
} ;
2009-05-28 14:04:04 -07:00
static void __init omap_zoom2_init ( void )
{
2009-12-11 16:16:32 -08:00
omap3_mux_init ( board_mux , OMAP_PACKAGE_CBB ) ;
2009-11-22 10:11:30 -08:00
zoom_peripherals_init ( ) ;
2010-07-09 14:27:48 +00:00
board_nand_init ( zoom_nand_partitions ,
ARRAY_SIZE ( zoom_nand_partitions ) , ZOOM_NAND_CS ) ;
2009-11-22 10:11:31 -08:00
zoom_debugboard_init ( ) ;
2009-05-28 14:04:04 -07:00
}
MACHINE_START ( OMAP_ZOOM2 , " OMAP Zoom2 board " )
2010-04-30 12:57:14 -07:00
. phys_io = ZOOM_UART_BASE ,
. io_pg_offst = ( ZOOM_UART_VIRT > > 18 ) & 0xfffc ,
2009-05-28 14:04:04 -07:00
. boot_params = 0x80000100 ,
2010-08-04 14:43:18 +03:00
. map_io = omap3_map_io ,
2010-05-23 10:18:16 +01:00
. reserve = omap_reserve ,
2009-05-28 14:04:04 -07:00
. init_irq = omap_zoom2_init_irq ,
. init_machine = omap_zoom2_init ,
. timer = & omap_timer ,
MACHINE_END