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
powerpc
sysdev
rtc_cmos_setup.c
Go to the documentation of this file.
1
/*
2
* Setup code for PC-style Real-Time Clock.
3
*
4
* Author: Wade Farnsworth <
[email protected]
>
5
*
6
* 2007 (c) MontaVista Software, Inc. This file is licensed under
7
* the terms of the GNU General Public License version 2. This program
8
* is licensed "as is" without any warranty of any kind, whether express
9
* or implied.
10
*/
11
12
#include <
linux/platform_device.h
>
13
#include <
linux/err.h
>
14
#include <
linux/init.h
>
15
#include <linux/module.h>
16
#include <
linux/mc146818rtc.h
>
17
18
#include <asm/prom.h>
19
20
static
int
__init
add_rtc(
void
)
21
{
22
struct
device_node
*np;
23
struct
platform_device
*
pd
;
24
struct
resource
res
[2];
25
unsigned
int
num_res = 1;
26
int
ret
;
27
28
memset
(&
res
, 0,
sizeof
(
res
));
29
30
np =
of_find_compatible_node
(
NULL
,
NULL
,
"pnpPNP,b00"
);
31
if
(!np)
32
return
-
ENODEV
;
33
34
ret =
of_address_to_resource
(np, 0, &
res
[0]);
35
of_node_put(np);
36
if
(ret)
37
return
ret
;
38
39
/*
40
* RTC_PORT(x) is hardcoded in asm/mc146818rtc.h. Verify that the
41
* address provided by the device node matches.
42
*/
43
if
(
res
[0].
start
!=
RTC_PORT
(0))
44
return
-
EINVAL
;
45
46
np =
of_find_compatible_node
(
NULL
,
NULL
,
"chrp,iic"
);
47
if
(!np)
48
np =
of_find_compatible_node
(
NULL
,
NULL
,
"pnpPNP,000"
);
49
if
(np) {
50
of_node_put(np);
51
/*
52
* Use a fixed interrupt value of 8 since on PPC if we are
53
* using this its off an i8259 which we ensure has interrupt
54
* numbers 0..15.
55
*/
56
res
[1].start = 8;
57
res
[1].end = 8;
58
res
[1].flags =
IORESOURCE_IRQ
;
59
num_res++;
60
}
61
62
pd = platform_device_register_simple(
"rtc_cmos"
, -1,
63
&
res
[0], num_res);
64
65
if
(IS_ERR(pd))
66
return
PTR_ERR(pd);
67
68
return
0;
69
}
70
fs_initcall
(add_rtc);
71
72
MODULE_LICENSE
(
"GPL"
);
Generated on Thu Jan 10 2013 13:16:23 for Linux Kernel by
1.8.2