diff options
author | cvs2git <rtems-devel@rtems.org> | 2004-10-11 20:13:32 +0000 |
---|---|---|
committer | cvs2git <rtems-devel@rtems.org> | 2004-10-11 20:13:32 +0000 |
commit | 361d58eef6ce79dbd6079da8d469a2b407a013f2 (patch) | |
tree | 3f7aeb219472e1b55bf14401fe0f8524c70a7a51 /c/src/libchip/rtc/mc146818a_ioreg.c | |
parent | 2004-09-30 Ralf Corsepius <ralf_corsepius@rtems.org> (diff) | |
download | rtems-361d58eef6ce79dbd6079da8d469a2b407a013f2.tar.bz2 |
This commit was manufactured by cvs2svn to create branch 'rtems-4-6-branch'.
Cherrypick from master 2004-10-11 20:13:31 UTC Eric Norum <WENorum@lbl.gov> 'Don't get duplication rtc_probe() definitions.':
c/src/lib/libbsp/i386/pc386/clock/todcfg.c
c/src/libchip/rtc/README.mc146818a
c/src/libchip/rtc/mc146818a.c
c/src/libchip/rtc/mc146818a.h
c/src/libchip/rtc/mc146818a_ioreg.c
Diffstat (limited to 'c/src/libchip/rtc/mc146818a_ioreg.c')
-rw-r--r-- | c/src/libchip/rtc/mc146818a_ioreg.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/c/src/libchip/rtc/mc146818a_ioreg.c b/c/src/libchip/rtc/mc146818a_ioreg.c new file mode 100644 index 0000000000..0ccd398c9d --- /dev/null +++ b/c/src/libchip/rtc/mc146818a_ioreg.c @@ -0,0 +1,45 @@ +/* + * This file contains a typical set of register access routines which may be + * used with the MC146818A chip if accesses to the chip are as follows: + * + * + registers are in I/O space + * + registers are accessed as bytes + * + registers are only byte-aligned (no address gaps) + * + * COPYRIGHT (c) 1989-1997. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id$ + */ + +#include <rtems.h> +#include <bsp.h> + +unsigned32 mc146818a_get_register( + unsigned32 ulCtrlPort, + unsigned8 ucRegNum +) +{ + unsigned8 val; + unsigned8 tmp; + + outport_byte( ulCtrlPort, ucRegNum ); + inport_byte( 0x84, tmp ); /* Hack a delay to give chip time to settle */ + inport_byte( ulCtrlPort+1, val ); + inport_byte( 0x84, tmp ); /* Hack a delay to give chip time to settle */ + return val; +} + +void mc146818a_set_register( + unsigned32 ulCtrlPort, + unsigned8 ucRegNum, + unsigned32 ucData +) +{ + outport_byte( ulCtrlPort, ucRegNum ); + outport_byte( ulCtrlPort+1, (unsigned8)ucData ); +} |