Added default z85c30 register access routines.

This commit is contained in:
Joel Sherrill
1998-07-15 23:54:24 +00:00
parent cce93220ec
commit 8414c033e2
6 changed files with 258 additions and 2 deletions

View File

@@ -12,7 +12,8 @@ LIBNAME=libserialio.a
LIB=${ARCH}/${LIBNAME}
C_PIECES=mc68681 mc68681_reg mc68681_reg2 mc68681_reg4 mc68681_reg8 \
ns16550 z85c30 \
ns16550 \
z85c30 z85c30_reg \
serprobe termios_baud2index termios_baud2num
C_FILES=$(C_PIECES:%=%.c)

View File

@@ -47,6 +47,30 @@ extern console_fns z85c30_fns_polled;
extern console_flow z85c30_flow_RTSCTS;
extern console_flow z85c30_flow_DTRCTS;
/*
* Default register access routines
*/
unsigned8 z85c30_get_register( /* registers are byte-wide */
unsigned32 ulCtrlPort,
unsigned8 ucRegNum
);
void z85c30_set_register(
unsigned32 ulCtrlPort,
unsigned8 ucRegNum,
unsigned8 ucData
);
unsigned8 z85c30_get_data(
unsigned32 ulDataPort
);
void z85c30_set_data(
unsigned32 ulDataPort,
unsigned8 ucData
);
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,103 @@
/*
* This file contains a typical set of register access routines which may be
* used with the z85c30 chip if accesses to the chip are as follows:
*
* + registers are accessed as bytes
*
* COPYRIGHT (c) 1989-1997.
* On-Line Applications Research Corporation (OAR).
* Copyright assigned to U.S. Government, 1994.
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.OARcorp.com/rtems/license.html.
*
* $Id$
*/
#include <rtems.h>
#ifndef _Z85C30_MULTIPLIER
#define _Z85C30_MULTIPLIER 1
#define _Z85C30_NAME(_X) _X
#define _Z85C30_TYPE unsigned8
#endif
/*
* Z85C30 Get Register Routine
*/
unsigned8 _Z85C30_NAME(z85c30_get_register)(
unsigned32 ulCtrlPort,
unsigned8 ucRegNum
)
{
_Z85C30_TYPE *port;
unsigned8 data;
rtems_interrupt_level level;
port = (_Z85C30_TYPE *)ulCtrlPort;
rtems_interrupt_disable(level);
if(ucRegNum) {
*port = ucRegNum;
}
data = *port;
rtems_interrupt_disable(level);
return data;
}
/*
* Z85C30 Set Register Routine
*/
void _Z85C30_NAME(z85c30_set_register)(
unsigned32 ulCtrlPort,
unsigned8 ucRegNum,
unsigned8 ucData
)
{
_Z85C30_TYPE *port;
rtems_interrupt_level level;
port = (_Z85C30_TYPE *)ulCtrlPort;
rtems_interrupt_disable(level);
if(ucRegNum) {
*port = ucRegNum;
}
*port = ucData;
rtems_interrupt_disable(level);
}
/*
* Z85C30 Get Data Routine
*/
unsigned8 _Z85C30_NAME(z85c30_get_data)(
unsigned32 ulDataPort
)
{
_Z85C30_TYPE *port;
port = (_Z85C30_TYPE *)ulDataPort;
return *port;
}
/*
* Z85C30 Set Data Routine
*/
void _Z85C30_NAME(z85c30_set_data)(
unsigned32 ulDataPort,
unsigned8 ucData
)
{
_Z85C30_TYPE *port;
port = (_Z85C30_TYPE *)ulDataPort;
*port = ucData;
}

View File

@@ -12,7 +12,8 @@ LIBNAME=libserialio.a
LIB=${ARCH}/${LIBNAME}
C_PIECES=mc68681 mc68681_reg mc68681_reg2 mc68681_reg4 mc68681_reg8 \
ns16550 z85c30 \
ns16550 \
z85c30 z85c30_reg \
serprobe termios_baud2index termios_baud2num
C_FILES=$(C_PIECES:%=%.c)

View File

@@ -47,6 +47,30 @@ extern console_fns z85c30_fns_polled;
extern console_flow z85c30_flow_RTSCTS;
extern console_flow z85c30_flow_DTRCTS;
/*
* Default register access routines
*/
unsigned8 z85c30_get_register( /* registers are byte-wide */
unsigned32 ulCtrlPort,
unsigned8 ucRegNum
);
void z85c30_set_register(
unsigned32 ulCtrlPort,
unsigned8 ucRegNum,
unsigned8 ucData
);
unsigned8 z85c30_get_data(
unsigned32 ulDataPort
);
void z85c30_set_data(
unsigned32 ulDataPort,
unsigned8 ucData
);
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,103 @@
/*
* This file contains a typical set of register access routines which may be
* used with the z85c30 chip if accesses to the chip are as follows:
*
* + registers are accessed as bytes
*
* COPYRIGHT (c) 1989-1997.
* On-Line Applications Research Corporation (OAR).
* Copyright assigned to U.S. Government, 1994.
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.OARcorp.com/rtems/license.html.
*
* $Id$
*/
#include <rtems.h>
#ifndef _Z85C30_MULTIPLIER
#define _Z85C30_MULTIPLIER 1
#define _Z85C30_NAME(_X) _X
#define _Z85C30_TYPE unsigned8
#endif
/*
* Z85C30 Get Register Routine
*/
unsigned8 _Z85C30_NAME(z85c30_get_register)(
unsigned32 ulCtrlPort,
unsigned8 ucRegNum
)
{
_Z85C30_TYPE *port;
unsigned8 data;
rtems_interrupt_level level;
port = (_Z85C30_TYPE *)ulCtrlPort;
rtems_interrupt_disable(level);
if(ucRegNum) {
*port = ucRegNum;
}
data = *port;
rtems_interrupt_disable(level);
return data;
}
/*
* Z85C30 Set Register Routine
*/
void _Z85C30_NAME(z85c30_set_register)(
unsigned32 ulCtrlPort,
unsigned8 ucRegNum,
unsigned8 ucData
)
{
_Z85C30_TYPE *port;
rtems_interrupt_level level;
port = (_Z85C30_TYPE *)ulCtrlPort;
rtems_interrupt_disable(level);
if(ucRegNum) {
*port = ucRegNum;
}
*port = ucData;
rtems_interrupt_disable(level);
}
/*
* Z85C30 Get Data Routine
*/
unsigned8 _Z85C30_NAME(z85c30_get_data)(
unsigned32 ulDataPort
)
{
_Z85C30_TYPE *port;
port = (_Z85C30_TYPE *)ulDataPort;
return *port;
}
/*
* Z85C30 Set Data Routine
*/
void _Z85C30_NAME(z85c30_set_data)(
unsigned32 ulDataPort,
unsigned8 ucData
)
{
_Z85C30_TYPE *port;
port = (_Z85C30_TYPE *)ulDataPort;
*port = ucData;
}