more changes on original files
[linux-2.4.git] / include / asm-arm / mc146818rtc.h
1 /*
2  * Machine dependent access functions for RTC registers.
3  */
4 #ifndef _ASM_MC146818RTC_H
5 #define _ASM_MC146818RTC_H
6
7 #include <asm/arch/irqs.h>
8 #include <asm/io.h>
9
10 #ifndef RTC_PORT
11 #define RTC_PORT(x)     (0x70 + (x))
12 #define RTC_ALWAYS_BCD  1       /* RTC operates in binary mode */
13 #endif
14
15 /*
16  * The yet supported machines all access the RTC index register via
17  * an ISA port access but the way to access the date register differs ...
18  */
19
20
21 #define CMOS_READ(addr) ({ \
22 outb_p((addr),RTC_PORT(0)); \
23 inb_p(RTC_PORT(1)); \
24 })
25 #define CMOS_WRITE(val, addr) ({ \
26 outb_p((addr),RTC_PORT(0)); \
27 outb_p((val),RTC_PORT(1)); \
28 })
29
30 #ifdef CONFIG_ARCH_RISCSTATION
31
32 /* RiscStation hardware has a lock to ensure random read/writes can't
33  * do anything nasty to it
34 */
35
36 #undef CMOS_READ
37 #undef CMOS_WRITE
38
39 #define CMOS_READ(addr) ({ \
40 outb_p((addr),RTC_PORT(0)); \
41 outb_p((addr),RTC_PORT(3)); \
42 inb_p(RTC_PORT(1)); \
43 })
44 #define CMOS_WRITE(val, addr) ({ \
45 outb_p((addr),RTC_PORT(0)); \
46 outb_p((addr),RTC_PORT(3)); \
47 outb_p((val),RTC_PORT(1)); \
48 })
49 #endif /* CONFIG_ARCH_RISCSTATION */
50
51 #endif /* _ASM_MC146818RTC_H */