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-footbridge
isa-rtc.c
Go to the documentation of this file.
1
/*
2
* arch/arm/mach-footbridge/isa-rtc.c
3
*
4
* Copyright (C) 1998 Russell King.
5
* Copyright (C) 1998 Phil Blundell
6
*
7
* CATS has a real-time clock, though the evaluation board doesn't.
8
*
9
* Changelog:
10
* 21-Mar-1998 RMK Created
11
* 27-Aug-1998 PJB CATS support
12
* 28-Dec-1998 APH Made leds optional
13
* 20-Jan-1999 RMK Started merge of EBSA285, CATS and NetWinder
14
* 16-Mar-1999 RMK More support for EBSA285-like machines with RTCs in
15
*/
16
17
#define RTC_PORT(x) (0x70+(x))
18
#define RTC_ALWAYS_BCD 0
19
20
#include <
linux/init.h
>
21
#include <
linux/mc146818rtc.h
>
22
#include <
linux/bcd.h
>
23
#include <
linux/io.h
>
24
25
#include "
common.h
"
26
27
void
__init
isa_rtc_init
(
void
)
28
{
29
int
reg_d, reg_b;
30
31
/*
32
* Probe for the RTC.
33
*/
34
reg_d =
CMOS_READ
(
RTC_REG_D
);
35
36
/*
37
* make sure the divider is set
38
*/
39
CMOS_WRITE
(
RTC_REF_CLCK_32KHZ
,
RTC_REG_A
);
40
41
/*
42
* Set control reg B
43
* (24 hour mode, update enabled)
44
*/
45
reg_b =
CMOS_READ
(
RTC_REG_B
) & 0x7f;
46
reg_b |= 2;
47
CMOS_WRITE
(reg_b,
RTC_REG_B
);
48
49
if
((
CMOS_READ
(
RTC_REG_A
) & 0x7f) ==
RTC_REF_CLCK_32KHZ
&&
50
CMOS_READ
(
RTC_REG_B
) == reg_b) {
51
/*
52
* We have a RTC. Check the battery
53
*/
54
if
((reg_d & 0x80) == 0)
55
printk
(
KERN_WARNING
"RTC: *** warning: CMOS battery bad\n"
);
56
}
57
}
Generated on Thu Jan 10 2013 12:59:04 for Linux Kernel by
1.8.2