blob: 7652c301da882ff569d145814b7bf7ee8c2c82a2 [file] [log] [blame]
Dmitriy Taychenachevfd6ac7b2009-07-31 20:29:22 +09001/*
2 * Copyright (C) 1999,2000 Arm Limited
3 * Copyright (C) 2000 Deep Blue Solutions Ltd
4 * Copyright (C) 2002 Shane Nay (shane@minirl.com)
5 * Copyright 2004-2005 Freescale Semiconductor, Inc. All Rights Reserved.
6 * - add MXC specific definitions
7 * Copyright 2006 Motorola, Inc.
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
Dmitriy Taychenachevfd6ac7b2009-07-31 20:29:22 +090018 */
19
20#include <linux/mm.h>
21#include <linux/init.h>
22#include <mach/hardware.h>
23#include <mach/common.h>
24#include <asm/pgtable.h>
25#include <asm/mach/map.h>
26
27/*
28 * This structure defines the MXC memory map.
29 */
Uwe Kleine-König08ff97b2010-10-25 15:38:09 +020030static struct map_desc mxc91231_io_desc[] __initdata = {
31 imx_map_entry(MXC91231, L2CC, MT_DEVICE),
32 imx_map_entry(MXC91231, X_MEMC, MT_DEVICE),
33 imx_map_entry(MXC91231, ROMP, MT_DEVICE),
34 imx_map_entry(MXC91231, AVIC, MT_DEVICE),
35 imx_map_entry(MXC91231, AIPS1, MT_DEVICE),
36 imx_map_entry(MXC91231, SPBA0, MT_DEVICE),
37 imx_map_entry(MXC91231, SPBA1, MT_DEVICE),
38 imx_map_entry(MXC91231, AIPS2, MT_DEVICE),
Dmitriy Taychenachevfd6ac7b2009-07-31 20:29:22 +090039};
40
41/*
42 * This function initializes the memory map. It is called during the
43 * system startup to create static physical to virtual memory map for
44 * the IO modules.
45 */
46void __init mxc91231_map_io(void)
47{
48 mxc_set_cpu_type(MXC_CPU_MXC91231);
49
Uwe Kleine-König08ff97b2010-10-25 15:38:09 +020050 iotable_init(mxc91231_io_desc, ARRAY_SIZE(mxc91231_io_desc));
Dmitriy Taychenachevfd6ac7b2009-07-31 20:29:22 +090051}
52
Uwe Kleine-König9a763bf2010-06-10 17:11:06 +020053int mxc91231_register_gpios(void);
54
Dmitriy Taychenachevfd6ac7b2009-07-31 20:29:22 +090055void __init mxc91231_init_irq(void)
56{
Uwe Kleine-König9a763bf2010-06-10 17:11:06 +020057 mxc91231_register_gpios();
Dmitriy Taychenachevfd6ac7b2009-07-31 20:29:22 +090058 mxc_init_irq(MXC91231_IO_ADDRESS(MXC91231_AVIC_BASE_ADDR));
59}