Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
arm
mach-imx
mm-imx21.c
Go to the documentation of this file.
1
/*
2
* arch/arm/mach-imx/mm-imx21.c
3
*
4
* Copyright (C) 2008 Juergen Beisert (
[email protected]
)
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
* MA 02110-1301, USA.
19
*/
20
21
#include <
linux/mm.h
>
22
#include <
linux/init.h
>
23
#include <
linux/pinctrl/machine.h
>
24
#include <mach/hardware.h>
25
#include <mach/common.h>
26
#include <
mach/devices-common.h
>
27
#include <asm/pgtable.h>
28
#include <
asm/mach/map.h
>
29
#include <
mach/iomux-v1.h
>
30
31
/* MX21 memory map definition */
32
static
struct
map_desc
imx21_io_desc[]
__initdata
= {
33
/*
34
* this fixed mapping covers:
35
* - AIPI1
36
* - AIPI2
37
* - AITC
38
* - ROM Patch
39
* - and some reserved space
40
*/
41
imx_map_entry
(MX21, AIPI,
MT_DEVICE
),
42
/*
43
* this fixed mapping covers:
44
* - CSI
45
* - ATA
46
*/
47
imx_map_entry
(MX21, SAHB1,
MT_DEVICE
),
48
/*
49
* this fixed mapping covers:
50
* - EMI
51
*/
52
imx_map_entry
(MX21, X_MEMC,
MT_DEVICE
),
53
};
54
55
/*
56
* Initialize the memory map. It is called during the
57
* system startup to create static physical to virtual
58
* memory map for the IO modules.
59
*/
60
void
__init
mx21_map_io
(
void
)
61
{
62
iotable_init
(imx21_io_desc,
ARRAY_SIZE
(imx21_io_desc));
63
}
64
65
void
__init
imx21_init_early
(
void
)
66
{
67
mxc_set_cpu_type
(
MXC_CPU_MX21
);
68
mxc_arch_reset_init
(
MX21_IO_ADDRESS
(
MX21_WDOG_BASE_ADDR
));
69
imx_iomuxv1_init
(
MX21_IO_ADDRESS
(
MX21_GPIO_BASE_ADDR
),
70
MX21_NUM_GPIO_PORT
);
71
}
72
73
void
__init
mx21_init_irq
(
void
)
74
{
75
mxc_init_irq
(
MX21_IO_ADDRESS
(
MX21_AVIC_BASE_ADDR
));
76
}
77
78
static
const
struct
resource
imx21_audmux_res[]
__initconst
= {
79
DEFINE_RES_MEM
(
MX21_AUDMUX_BASE_ADDR
,
SZ_4K
),
80
};
81
82
void
__init
imx21_soc_init
(
void
)
83
{
84
mxc_register_gpio
(
"imx21-gpio"
, 0,
MX21_GPIO1_BASE_ADDR
,
SZ_256
,
MX21_INT_GPIO
, 0);
85
mxc_register_gpio
(
"imx21-gpio"
, 1,
MX21_GPIO2_BASE_ADDR
,
SZ_256
,
MX21_INT_GPIO
, 0);
86
mxc_register_gpio
(
"imx21-gpio"
, 2,
MX21_GPIO3_BASE_ADDR
,
SZ_256
,
MX21_INT_GPIO
, 0);
87
mxc_register_gpio
(
"imx21-gpio"
, 3,
MX21_GPIO4_BASE_ADDR
,
SZ_256
,
MX21_INT_GPIO
, 0);
88
mxc_register_gpio
(
"imx21-gpio"
, 4,
MX21_GPIO5_BASE_ADDR
,
SZ_256
,
MX21_INT_GPIO
, 0);
89
mxc_register_gpio
(
"imx21-gpio"
, 5,
MX21_GPIO6_BASE_ADDR
,
SZ_256
,
MX21_INT_GPIO
, 0);
90
91
pinctrl_provide_dummies
();
92
imx_add_imx_dma
();
93
platform_device_register_simple(
"imx21-audmux"
, 0, imx21_audmux_res,
94
ARRAY_SIZE
(imx21_audmux_res));
95
}
Generated on Thu Jan 10 2013 12:59:18 for Linux Kernel by
1.8.2