2010-02-25 07:44:51 +08:00
|
|
|
/* linux/arch/arm/mach-msm/board-sapphire.c
|
|
|
|
* Copyright (C) 2007-2009 HTC Corporation.
|
|
|
|
* Author: Thomas Tsai <thomas_tsai@htc.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.
|
|
|
|
*/
|
2011-07-26 17:53:52 +08:00
|
|
|
#include <linux/gpio.h>
|
2010-02-25 07:44:51 +08:00
|
|
|
#include <linux/kernel.h>
|
|
|
|
#include <linux/init.h>
|
|
|
|
#include <linux/platform_device.h>
|
|
|
|
#include <linux/input.h>
|
|
|
|
#include <linux/interrupt.h>
|
|
|
|
#include <linux/irq.h>
|
2011-12-22 08:26:03 +08:00
|
|
|
#include <linux/device.h>
|
2010-02-25 07:44:51 +08:00
|
|
|
|
|
|
|
#include <linux/delay.h>
|
|
|
|
|
|
|
|
#include <mach/hardware.h>
|
|
|
|
#include <asm/mach-types.h>
|
|
|
|
#include <asm/mach/arch.h>
|
|
|
|
#include <asm/mach/map.h>
|
|
|
|
#include <asm/mach/flash.h>
|
|
|
|
#include <mach/vreg.h>
|
|
|
|
|
|
|
|
#include <asm/io.h>
|
|
|
|
#include <asm/delay.h>
|
|
|
|
#include <asm/setup.h>
|
|
|
|
|
|
|
|
#include <linux/mtd/nand.h>
|
|
|
|
#include <linux/mtd/partitions.h>
|
|
|
|
|
|
|
|
#include "gpio_chip.h"
|
|
|
|
#include "board-sapphire.h"
|
|
|
|
#include "proc_comm.h"
|
|
|
|
#include "devices.h"
|
2013-07-25 04:54:31 +08:00
|
|
|
#include "common.h"
|
2010-02-25 07:44:51 +08:00
|
|
|
|
|
|
|
void msm_init_irq(void);
|
|
|
|
void msm_init_gpio(void);
|
|
|
|
|
|
|
|
static struct platform_device *devices[] __initdata = {
|
|
|
|
&msm_device_smd,
|
|
|
|
&msm_device_dmov,
|
|
|
|
&msm_device_nand,
|
|
|
|
&msm_device_uart1,
|
|
|
|
&msm_device_uart3,
|
|
|
|
};
|
|
|
|
|
2012-11-09 03:40:59 +08:00
|
|
|
void msm_timer_init(void);
|
2010-02-25 07:44:51 +08:00
|
|
|
|
|
|
|
static void __init sapphire_init_irq(void)
|
|
|
|
{
|
|
|
|
msm_init_irq();
|
|
|
|
}
|
|
|
|
|
|
|
|
static void __init sapphire_init(void)
|
|
|
|
{
|
|
|
|
platform_add_devices(devices, ARRAY_SIZE(devices));
|
|
|
|
}
|
|
|
|
|
|
|
|
static struct map_desc sapphire_io_desc[] __initdata = {
|
|
|
|
{
|
|
|
|
.virtual = SAPPHIRE_CPLD_BASE,
|
|
|
|
.pfn = __phys_to_pfn(SAPPHIRE_CPLD_START),
|
|
|
|
.length = SAPPHIRE_CPLD_SIZE,
|
|
|
|
.type = MT_DEVICE_NONSHARED
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
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 18:37:50 +08:00
|
|
|
static void __init sapphire_fixup(struct tag *tags, char **cmdline,
|
|
|
|
struct meminfo *mi)
|
2010-02-25 07:44:51 +08:00
|
|
|
{
|
|
|
|
int smi_sz = parse_tag_smi((const struct tag *)tags);
|
|
|
|
|
|
|
|
mi->nr_banks = 1;
|
|
|
|
mi->bank[0].start = PHYS_OFFSET;
|
|
|
|
mi->bank[0].node = PHYS_TO_NID(PHYS_OFFSET);
|
|
|
|
if (smi_sz == 32) {
|
|
|
|
mi->bank[0].size = (84*1024*1024);
|
|
|
|
} else if (smi_sz == 64) {
|
|
|
|
mi->bank[0].size = (101*1024*1024);
|
|
|
|
} else {
|
|
|
|
/* Give a default value when not get smi size */
|
|
|
|
smi_sz = 64;
|
|
|
|
mi->bank[0].size = (101*1024*1024);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static void __init sapphire_map_io(void)
|
|
|
|
{
|
|
|
|
msm_map_common_io();
|
|
|
|
iotable_init(sapphire_io_desc, ARRAY_SIZE(sapphire_io_desc));
|
|
|
|
msm_clock_init();
|
|
|
|
}
|
|
|
|
|
2012-05-02 15:53:20 +08:00
|
|
|
static void __init sapphire_init_late(void)
|
|
|
|
{
|
|
|
|
smd_debugfs_init();
|
|
|
|
}
|
|
|
|
|
2010-02-25 07:44:51 +08:00
|
|
|
MACHINE_START(SAPPHIRE, "sapphire")
|
|
|
|
/* Maintainer: Brian Swetland <swetland@google.com> */
|
2011-07-06 10:38:14 +08:00
|
|
|
.atag_offset = 0x100,
|
2010-02-25 07:44:51 +08:00
|
|
|
.fixup = sapphire_fixup,
|
|
|
|
.map_io = sapphire_map_io,
|
|
|
|
.init_irq = sapphire_init_irq,
|
|
|
|
.init_machine = sapphire_init,
|
2012-05-02 15:53:20 +08:00
|
|
|
.init_late = sapphire_init_late,
|
2012-11-09 03:40:59 +08:00
|
|
|
.init_time = msm_timer_init,
|
2010-02-25 07:44:51 +08:00
|
|
|
MACHINE_END
|