1/* 2 * Copyright (C) 2009 Texas Instruments Inc. 3 * Mikkel Christensen <mlc@ti.com> 4 * 5 * Modified from mach-omap2/board-ldp.c 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as 9 * published by the Free Software Foundation. 10 */ 11 12#include <linux/kernel.h> 13#include <linux/init.h> 14#include <linux/platform_device.h> 15#include <linux/input.h> 16#include <linux/gpio.h> 17 18#include <asm/mach-types.h> 19#include <asm/mach/arch.h> 20 21#include <plat/common.h> 22#include <plat/board.h> 23 24#include <mach/board-zoom.h> 25 26#include "mux.h" 27#include "sdram-micron-mt46h32m32lf-6.h" 28 29static void __init omap_zoom2_init_irq(void) 30{ 31 omap2_init_common_hw(mt46h32m32lf6_sdrc_params, 32 mt46h32m32lf6_sdrc_params); 33 omap_init_irq(); 34 omap_gpio_init(); 35} 36 37/* REVISIT: These audio entries can be removed once MFD code is merged */ 38 39#ifdef CONFIG_OMAP_MUX 40static struct omap_board_mux board_mux[] __initdata = { 41 /* WLAN IRQ - GPIO 162 */ 42 OMAP3_MUX(MCBSP1_CLKX, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP), 43 /* WLAN POWER ENABLE - GPIO 101 */ 44 OMAP3_MUX(CAM_D2, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), 45 /* WLAN SDIO: MMC3 CMD */ 46 OMAP3_MUX(MCSPI1_CS1, OMAP_MUX_MODE3 | OMAP_PIN_INPUT_PULLUP), 47 /* WLAN SDIO: MMC3 CLK */ 48 OMAP3_MUX(ETK_CLK, OMAP_MUX_MODE2 | OMAP_PIN_INPUT_PULLUP), 49 /* WLAN SDIO: MMC3 DAT[0-3] */ 50 OMAP3_MUX(ETK_D3, OMAP_MUX_MODE2 | OMAP_PIN_INPUT_PULLUP), 51 OMAP3_MUX(ETK_D4, OMAP_MUX_MODE2 | OMAP_PIN_INPUT_PULLUP), 52 OMAP3_MUX(ETK_D5, OMAP_MUX_MODE2 | OMAP_PIN_INPUT_PULLUP), 53 OMAP3_MUX(ETK_D6, OMAP_MUX_MODE2 | OMAP_PIN_INPUT_PULLUP), 54 { .reg_offset = OMAP_MUX_TERMINATOR }, 55}; 56#else 57#define board_mux NULL 58#endif 59 60static struct mtd_partition zoom_nand_partitions[] = { 61 /* All the partition sizes are listed in terms of NAND block size */ 62 { 63 .name = "X-Loader-NAND", 64 .offset = 0, 65 .size = 4 * (64 * 2048), /* 512KB, 0x80000 */ 66 .mask_flags = MTD_WRITEABLE, /* force read-only */ 67 }, 68 { 69 .name = "U-Boot-NAND", 70 .offset = MTDPART_OFS_APPEND, /* Offset = 0x80000 */ 71 .size = 10 * (64 * 2048), /* 1.25MB, 0x140000 */ 72 .mask_flags = MTD_WRITEABLE, /* force read-only */ 73 }, 74 { 75 .name = "Boot Env-NAND", 76 .offset = MTDPART_OFS_APPEND, /* Offset = 0x1c0000 */ 77 .size = 2 * (64 * 2048), /* 256KB, 0x40000 */ 78 }, 79 { 80 .name = "Kernel-NAND", 81 .offset = MTDPART_OFS_APPEND, /* Offset = 0x0200000*/ 82 .size = 240 * (64 * 2048), /* 30M, 0x1E00000 */ 83 }, 84 { 85 .name = "system", 86 .offset = MTDPART_OFS_APPEND, /* Offset = 0x2000000 */ 87 .size = 3328 * (64 * 2048), /* 416M, 0x1A000000 */ 88 }, 89 { 90 .name = "userdata", 91 .offset = MTDPART_OFS_APPEND, /* Offset = 0x1C000000*/ 92 .size = 256 * (64 * 2048), /* 32M, 0x2000000 */ 93 }, 94 { 95 .name = "cache", 96 .offset = MTDPART_OFS_APPEND, /* Offset = 0x1E000000*/ 97 .size = 256 * (64 * 2048), /* 32M, 0x2000000 */ 98 }, 99}; 100 101static void __init omap_zoom2_init(void) 102{ 103 omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); 104 zoom_peripherals_init(); 105 board_nand_init(zoom_nand_partitions, 106 ARRAY_SIZE(zoom_nand_partitions), ZOOM_NAND_CS); 107 zoom_debugboard_init(); 108} 109 110MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board") 111 .phys_io = ZOOM_UART_BASE, 112 .io_pg_offst = (ZOOM_UART_VIRT >> 18) & 0xfffc, 113 .boot_params = 0x80000100, 114 .map_io = omap3_map_io, 115 .reserve = omap_reserve, 116 .init_irq = omap_zoom2_init_irq, 117 .init_machine = omap_zoom2_init, 118 .timer = &omap_timer, 119MACHINE_END 120