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 (
[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
/* 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