2010-03-04 00:34:27 +07:00
|
|
|
/* linux/arch/arm/mach-msm/board-trout.c
|
2009-11-19 01:18:24 +07:00
|
|
|
*
|
|
|
|
* Copyright (C) 2009 Google, Inc.
|
|
|
|
* Author: Brian Swetland <swetland@google.com>
|
|
|
|
*
|
|
|
|
* This software is licensed under the terms of the GNU General Public
|
|
|
|
* License version 2, as published by the Free Software Foundation, and
|
|
|
|
* may be copied, distributed, and modified under those terms.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <linux/kernel.h>
|
|
|
|
#include <linux/init.h>
|
|
|
|
#include <linux/platform_device.h>
|
2011-02-24 00:37:42 +07:00
|
|
|
#include <linux/clkdev.h>
|
2009-11-19 01:18:24 +07:00
|
|
|
|
2012-04-12 22:45:37 +07:00
|
|
|
#include <asm/system_info.h>
|
2009-11-19 01:18:24 +07:00
|
|
|
#include <asm/mach-types.h>
|
|
|
|
#include <asm/mach/arch.h>
|
|
|
|
#include <asm/mach/map.h>
|
2009-11-02 17:55:12 +07:00
|
|
|
#include <asm/setup.h>
|
2009-11-19 01:18:24 +07:00
|
|
|
|
|
|
|
#include <mach/board.h>
|
|
|
|
#include <mach/hardware.h>
|
|
|
|
#include <mach/msm_iomap.h>
|
|
|
|
|
|
|
|
#include "devices.h"
|
2010-03-04 00:34:27 +07:00
|
|
|
#include "board-trout.h"
|
2012-09-06 02:28:52 +07:00
|
|
|
#include "common.h"
|
2009-11-19 01:18:24 +07:00
|
|
|
|
2010-03-31 06:11:57 +07:00
|
|
|
extern int trout_init_mmc(unsigned int);
|
|
|
|
|
2009-11-19 01:18:24 +07:00
|
|
|
static struct platform_device *devices[] __initdata = {
|
|
|
|
&msm_device_uart3,
|
|
|
|
&msm_device_smd,
|
|
|
|
&msm_device_nand,
|
|
|
|
&msm_device_hsusb,
|
|
|
|
&msm_device_i2c,
|
|
|
|
};
|
|
|
|
|
2012-02-14 02:27:24 +07:00
|
|
|
static void __init trout_init_early(void)
|
|
|
|
{
|
|
|
|
arch_ioremap_caller = __msm_ioremap_caller;
|
|
|
|
}
|
|
|
|
|
2009-11-19 01:18:24 +07:00
|
|
|
static void __init trout_init_irq(void)
|
|
|
|
{
|
|
|
|
msm_init_irq();
|
|
|
|
}
|
|
|
|
|
ARM: platform fixups: remove mdesc argument to fixup function
Get rid of the mdesc pointer in the fixup function call. No one uses
the mdesc pointer, it shouldn't be modified anyway, and we can't wrap
it, so let's remove it.
Platform files found by:
$ regexp=$(git grep -h '\.fixup.*=' arch/arm |
sed 's!.*= *\([^,]*\),* *!\1!' | sort -u |
tr '\n' '|' | sed 's,|$,,;s,|,\\|,g')
$ git grep $regexp arch/arm
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2010-12-20 17:37:50 +07:00
|
|
|
static void __init trout_fixup(struct tag *tags, char **cmdline,
|
|
|
|
struct meminfo *mi)
|
2009-11-02 17:55:12 +07:00
|
|
|
{
|
|
|
|
mi->nr_banks = 1;
|
|
|
|
mi->bank[0].start = PHYS_OFFSET;
|
|
|
|
mi->bank[0].size = (101*1024*1024);
|
|
|
|
}
|
|
|
|
|
2009-11-19 01:18:24 +07:00
|
|
|
static void __init trout_init(void)
|
|
|
|
{
|
2010-03-31 06:11:57 +07:00
|
|
|
int rc;
|
|
|
|
|
2009-11-19 01:18:24 +07:00
|
|
|
platform_add_devices(devices, ARRAY_SIZE(devices));
|
2010-03-31 06:11:57 +07:00
|
|
|
|
|
|
|
#ifdef CONFIG_MMC
|
|
|
|
rc = trout_init_mmc(system_rev);
|
|
|
|
if (rc)
|
|
|
|
printk(KERN_CRIT "%s: MMC init failure (%d)\n", __func__, rc);
|
|
|
|
#endif
|
|
|
|
|
2009-11-19 01:18:24 +07:00
|
|
|
}
|
|
|
|
|
|
|
|
static struct map_desc trout_io_desc[] __initdata = {
|
|
|
|
{
|
|
|
|
.virtual = TROUT_CPLD_BASE,
|
|
|
|
.pfn = __phys_to_pfn(TROUT_CPLD_START),
|
|
|
|
.length = TROUT_CPLD_SIZE,
|
|
|
|
.type = MT_DEVICE_NONSHARED
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
static void __init trout_map_io(void)
|
|
|
|
{
|
|
|
|
msm_map_common_io();
|
|
|
|
iotable_init(trout_io_desc, ARRAY_SIZE(trout_io_desc));
|
|
|
|
|
|
|
|
#ifdef CONFIG_MSM_DEBUG_UART3
|
|
|
|
/* route UART3 to the "H2W" extended usb connector */
|
|
|
|
writeb(0x80, TROUT_CPLD_BASE + 0x00);
|
|
|
|
#endif
|
|
|
|
|
2010-05-13 03:43:28 +07:00
|
|
|
msm_clock_init(msm_clocks_7x01a, msm_num_clocks_7x01a);
|
2009-11-19 01:18:24 +07:00
|
|
|
}
|
|
|
|
|
2012-05-02 14:53:20 +07:00
|
|
|
static void __init trout_init_late(void)
|
|
|
|
{
|
|
|
|
smd_debugfs_init();
|
|
|
|
}
|
|
|
|
|
2009-11-19 01:18:24 +07:00
|
|
|
MACHINE_START(TROUT, "HTC Dream")
|
2011-07-06 09:38:14 +07:00
|
|
|
.atag_offset = 0x100,
|
2009-11-02 17:55:12 +07:00
|
|
|
.fixup = trout_fixup,
|
2009-11-19 01:18:24 +07:00
|
|
|
.map_io = trout_map_io,
|
2012-02-14 02:27:24 +07:00
|
|
|
.init_early = trout_init_early,
|
2009-11-19 01:18:24 +07:00
|
|
|
.init_irq = trout_init_irq,
|
|
|
|
.init_machine = trout_init,
|
2012-05-02 14:53:20 +07:00
|
|
|
.init_late = trout_init_late,
|
2012-11-09 02:40:59 +07:00
|
|
|
.init_time = msm7x01_timer_init,
|
2009-11-19 01:18:24 +07:00
|
|
|
MACHINE_END
|