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-imx27.c
Go to the documentation of this file.
1
/*
2
* arch/arm/mach-imx/mm-imx27.c
3
*
4
* Copyright (C) 2008 Juergen Beisert (kernel@pengutronix.de)
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
/* MX27 memory map definition */
32
static
struct
map_desc
imx27_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
(MX27, AIPI,
MT_DEVICE
),
42
/*
43
* this fixed mapping covers:
44
* - CSI
45
* - ATA
46
*/
47
imx_map_entry
(MX27, SAHB1,
MT_DEVICE
),
48
/*
49
* this fixed mapping covers:
50
* - EMI
51
*/
52
imx_map_entry
(MX27, 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
mx27_map_io
(
void
)
61
{
62
iotable_init
(imx27_io_desc,
ARRAY_SIZE
(imx27_io_desc));
63
}
64
65
void
__init
imx27_init_early
(
void
)
66
{
67
mxc_set_cpu_type
(
MXC_CPU_MX27
);
68
mxc_arch_reset_init
(
MX27_IO_ADDRESS
(
MX27_WDOG_BASE_ADDR
));
69
imx_iomuxv1_init
(
MX27_IO_ADDRESS
(
MX27_GPIO_BASE_ADDR
),
70
MX27_NUM_GPIO_PORT
);
71
}
72
73
void
__init
mx27_init_irq
(
void
)
74
{
75
mxc_init_irq
(
MX27_IO_ADDRESS
(
MX27_AVIC_BASE_ADDR
));
76
}
77
78
static
const
struct
resource
imx27_audmux_res[]
__initconst
= {
79
DEFINE_RES_MEM
(
MX27_AUDMUX_BASE_ADDR
,
SZ_4K
),
80
};
81
82
void
__init
imx27_soc_init
(
void
)
83
{
84
/* i.mx27 has the i.mx21 type gpio */
85
mxc_register_gpio
(
"imx21-gpio"
, 0,
MX27_GPIO1_BASE_ADDR
,
SZ_256
,
MX27_INT_GPIO
, 0);
86
mxc_register_gpio
(
"imx21-gpio"
, 1,
MX27_GPIO2_BASE_ADDR
,
SZ_256
,
MX27_INT_GPIO
, 0);
87
mxc_register_gpio
(
"imx21-gpio"
, 2,
MX27_GPIO3_BASE_ADDR
,
SZ_256
,
MX27_INT_GPIO
, 0);
88
mxc_register_gpio
(
"imx21-gpio"
, 3,
MX27_GPIO4_BASE_ADDR
,
SZ_256
,
MX27_INT_GPIO
, 0);
89
mxc_register_gpio
(
"imx21-gpio"
, 4,
MX27_GPIO5_BASE_ADDR
,
SZ_256
,
MX27_INT_GPIO
, 0);
90
mxc_register_gpio
(
"imx21-gpio"
, 5,
MX27_GPIO6_BASE_ADDR
,
SZ_256
,
MX27_INT_GPIO
, 0);
91
92
pinctrl_provide_dummies
();
93
imx_add_imx_dma
();
94
/* imx27 has the imx21 type audmux */
95
platform_device_register_simple(
"imx21-audmux"
, 0, imx27_audmux_res,
96
ARRAY_SIZE
(imx27_audmux_res));
97
}
Generated on Thu Jan 10 2013 12:59:18 for Linux Kernel by
1.8.2