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
sh
boards
mach-lboxre2
setup.c
Go to the documentation of this file.
1
/*
2
* linux/arch/sh/boards/lbox/setup.c
3
*
4
* Copyright (C) 2007 Nobuhiro Iwamatsu
5
*
6
* NTT COMWARE L-BOX RE2 Support
7
*
8
* This file is subject to the terms and conditions of the GNU General Public
9
* License. See the file "COPYING" in the main directory of this archive
10
* for more details.
11
*
12
*/
13
14
#include <
linux/init.h
>
15
#include <
linux/platform_device.h
>
16
#include <
linux/ata_platform.h
>
17
#include <asm/machvec.h>
18
#include <asm/addrspace.h>
19
#include <
mach/lboxre2.h
>
20
#include <asm/io.h>
21
22
static
struct
resource
cf_ide_resources[] = {
23
[0] = {
24
.start = 0x1f0,
25
.end = 0x1f0 + 8 ,
26
.flags =
IORESOURCE_IO
,
27
},
28
[1] = {
29
.start = 0x1f0 + 0x206,
30
.end = 0x1f0 +8 + 0x206 + 8,
31
.flags =
IORESOURCE_IO
,
32
},
33
[2] = {
34
.start =
IRQ_CF0
,
35
.flags =
IORESOURCE_IRQ
,
36
},
37
};
38
39
static
struct
platform_device
cf_ide_device = {
40
.name =
"pata_platform"
,
41
.id = -1,
42
.num_resources =
ARRAY_SIZE
(cf_ide_resources),
43
.resource = cf_ide_resources,
44
};
45
46
static
struct
platform_device
*lboxre2_devices[]
__initdata
= {
47
&cf_ide_device,
48
};
49
50
static
int
__init
lboxre2_devices_setup(
void
)
51
{
52
u32
cf0_io_base;
/* Boot CF base address */
53
pgprot_t
prot;
54
unsigned
long
paddrbase, psize;
55
56
/* open I/O area window */
57
paddrbase =
virt_to_phys
((
void
*)
PA_AREA5_IO
);
58
psize =
PAGE_SIZE
;
59
prot =
PAGE_KERNEL_PCC
(1,
_PAGE_PCC_IO16
);
60
cf0_io_base = (
u32
)
ioremap_prot
(paddrbase, psize,
pgprot_val
(prot));
61
if
(!cf0_io_base) {
62
printk
(
KERN_ERR
"%s : can't open CF I/O window!\n"
, __func__ );
63
return
-
ENOMEM
;
64
}
65
66
cf_ide_resources[0].
start
+= cf0_io_base ;
67
cf_ide_resources[0].
end
+= cf0_io_base ;
68
cf_ide_resources[1].
start
+= cf0_io_base ;
69
cf_ide_resources[1].
end
+= cf0_io_base ;
70
71
return
platform_add_devices
(lboxre2_devices,
72
ARRAY_SIZE
(lboxre2_devices));
73
74
}
75
device_initcall
(lboxre2_devices_setup);
76
77
/*
78
* The Machine Vector
79
*/
80
static
struct
sh_machine_vector
mv_lboxre2
__initmv
= {
81
.mv_name =
"L-BOX RE2"
,
82
.mv_init_irq =
init_lboxre2_IRQ
,
83
};
Generated on Thu Jan 10 2013 12:52:59 for Linux Kernel by
1.8.2