forked from Imagelibrary/rtems
Added default z85c30 register access routines.
This commit is contained in:
@@ -12,7 +12,8 @@ LIBNAME=libserialio.a
|
|||||||
LIB=${ARCH}/${LIBNAME}
|
LIB=${ARCH}/${LIBNAME}
|
||||||
|
|
||||||
C_PIECES=mc68681 mc68681_reg mc68681_reg2 mc68681_reg4 mc68681_reg8 \
|
C_PIECES=mc68681 mc68681_reg mc68681_reg2 mc68681_reg4 mc68681_reg8 \
|
||||||
ns16550 z85c30 \
|
ns16550 \
|
||||||
|
z85c30 z85c30_reg \
|
||||||
serprobe termios_baud2index termios_baud2num
|
serprobe termios_baud2index termios_baud2num
|
||||||
|
|
||||||
C_FILES=$(C_PIECES:%=%.c)
|
C_FILES=$(C_PIECES:%=%.c)
|
||||||
|
|||||||
@@ -47,6 +47,30 @@ extern console_fns z85c30_fns_polled;
|
|||||||
extern console_flow z85c30_flow_RTSCTS;
|
extern console_flow z85c30_flow_RTSCTS;
|
||||||
extern console_flow z85c30_flow_DTRCTS;
|
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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
103
c/src/lib/libchip/serial/z85c30_reg.c
Normal file
103
c/src/lib/libchip/serial/z85c30_reg.c
Normal 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;
|
||||||
|
}
|
||||||
@@ -12,7 +12,8 @@ LIBNAME=libserialio.a
|
|||||||
LIB=${ARCH}/${LIBNAME}
|
LIB=${ARCH}/${LIBNAME}
|
||||||
|
|
||||||
C_PIECES=mc68681 mc68681_reg mc68681_reg2 mc68681_reg4 mc68681_reg8 \
|
C_PIECES=mc68681 mc68681_reg mc68681_reg2 mc68681_reg4 mc68681_reg8 \
|
||||||
ns16550 z85c30 \
|
ns16550 \
|
||||||
|
z85c30 z85c30_reg \
|
||||||
serprobe termios_baud2index termios_baud2num
|
serprobe termios_baud2index termios_baud2num
|
||||||
|
|
||||||
C_FILES=$(C_PIECES:%=%.c)
|
C_FILES=$(C_PIECES:%=%.c)
|
||||||
|
|||||||
@@ -47,6 +47,30 @@ extern console_fns z85c30_fns_polled;
|
|||||||
extern console_flow z85c30_flow_RTSCTS;
|
extern console_flow z85c30_flow_RTSCTS;
|
||||||
extern console_flow z85c30_flow_DTRCTS;
|
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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
103
c/src/libchip/serial/z85c30_reg.c
Normal file
103
c/src/libchip/serial/z85c30_reg.c
Normal 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;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user