blob: dc0ba5af1c875631e529260392f1ee78021a20cc [file] [log] [blame]
/*
* Machine dependent access functions for RTC registers.
*/
#ifndef _ASM_MC146818RTC_H
#define _ASM_MC146818RTC_H
#include <asm/arch/irqs.h>
#include <asm/io.h>
#ifndef RTC_PORT
#define RTC_PORT(x) (0x70 + (x))
#define RTC_ALWAYS_BCD 1 /* RTC operates in binary mode */
#endif
/*
* The yet supported machines all access the RTC index register via
* an ISA port access but the way to access the date register differs ...
*/
#define CMOS_READ(addr) ({ \
outb_p((addr),RTC_PORT(0)); \
inb_p(RTC_PORT(1)); \
})
#define CMOS_WRITE(val, addr) ({ \
outb_p((addr),RTC_PORT(0)); \
outb_p((val),RTC_PORT(1)); \
})
#ifdef CONFIG_ARCH_RISCSTATION
/* RiscStation hardware has a lock to ensure random read/writes can't
* do anything nasty to it
*/
#undef CMOS_READ
#undef CMOS_WRITE
#define CMOS_READ(addr) ({ \
outb_p((addr),RTC_PORT(0)); \
outb_p((addr),RTC_PORT(3)); \
inb_p(RTC_PORT(1)); \
})
#define CMOS_WRITE(val, addr) ({ \
outb_p((addr),RTC_PORT(0)); \
outb_p((addr),RTC_PORT(3)); \
outb_p((val),RTC_PORT(1)); \
})
#endif /* CONFIG_ARCH_RISCSTATION */
#endif /* _ASM_MC146818RTC_H */