summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/sh/sh7032/sci/sci.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libcpu/sh/sh7032/sci/sci.c')
-rw-r--r--c/src/lib/libcpu/sh/sh7032/sci/sci.c50
1 files changed, 25 insertions, 25 deletions
diff --git a/c/src/lib/libcpu/sh/sh7032/sci/sci.c b/c/src/lib/libcpu/sh/sh7032/sci/sci.c
index bd23038941..d5de4f4f43 100644
--- a/c/src/lib/libcpu/sh/sh7032/sci/sci.c
+++ b/c/src/lib/libcpu/sh/sh7032/sci/sci.c
@@ -8,7 +8,7 @@
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
+ *
*
* COPYRIGHT (c) 1998.
* On-Line Applications Research Corporation (OAR).
@@ -36,9 +36,9 @@
/*
* NOTE: Some SH variants have 3 sci devices
*/
-
+
#define SCI_MINOR_DEVICES 2
-
+
#define SH_SCI_BASE_0 SCI0_SMR
#define SH_SCI_BASE_1 SCI1_SMR
@@ -67,13 +67,13 @@ static int _sci_set_cflags(
{
uint8_t smr ;
uint8_t brr ;
-
+
if ( c_cflag & CBAUD )
{
if ( _sci_get_brparms( c_cflag, &smr, &brr ) != 0 )
return -1 ;
}
-
+
if ( c_cflag & CSIZE )
{
if ( c_cflag & CS8 )
@@ -98,26 +98,26 @@ static int _sci_set_cflags(
smr |= SCI_ODD_PARITY ;
else
smr &= ~SCI_ODD_PARITY;
-
+
write8( smr, sci_dev->addr + SCI_SMR );
write8( brr, sci_dev->addr + SCI_BRR );
-
+
return 0 ;
}
-static void _sci_init(
+static void _sci_init(
rtems_device_minor_number minor )
{
uint16_t temp16 ;
- /* Pin function controller initialisation for asynchronous mode */
+ /* Pin function controller initialisation for asynchronous mode */
if( minor == 0)
{
temp16 = read16( PFC_PBCR1);
temp16 &= ~( PB8MD | PB9MD );
temp16 |= (PB_TXD0 | PB_RXD0);
write16( temp16, PFC_PBCR1);
- }
+ }
else
{
temp16 = read16( PFC_PBCR1);
@@ -147,7 +147,7 @@ static void _sci_tx_polled(
{
struct scidev_t *scidev = &sci_device[minor] ;
int8_t ssr ;
-
+
while ( !inb((scidev->addr + SCI_SSR) & SCI_TDRE ))
;
write8(buf,scidev->addr+SCI_TDR);
@@ -155,13 +155,13 @@ static void _sci_tx_polled(
ssr = inb(scidev->addr+SCI_SSR);
ssr &= ~SCI_TDRE ;
write8(ssr,scidev->addr+SCI_SSR);
-}
+}
static int _sci_rx_polled (
int minor)
{
struct scidev_t *scidev = &sci_device[minor] ;
-
+
unsigned char c;
char ssr ;
ssr = read8(scidev->addr + SCI_SSR) ;
@@ -171,9 +171,9 @@ static int _sci_rx_polled (
if ( !(ssr & SCI_RDRF) )
return -1;
-
+
c = read8(scidev->addr + SCI_RDR) ;
-
+
write8(ssr & ~SCI_RDRF,scidev->addr + SCI_SSR);
return c;
}
@@ -189,7 +189,7 @@ rtems_device_driver sh_sci_initialize(
{
rtems_device_driver status ;
rtems_device_minor_number i;
-
+
/*
* register all possible devices.
* the initialization of the hardware is done by sci_open
@@ -206,7 +206,7 @@ rtems_device_driver sh_sci_initialize(
}
/* default hardware setup */
-
+
return RTEMS_SUCCESSFUL;
}
@@ -221,20 +221,20 @@ rtems_device_driver sh_sci_open(
void * arg )
{
uint8_t temp8;
-
+
/* check for valid minor number */
if(( minor > ( SCI_MINOR_DEVICES -1 )) || ( minor < 0 ))
{
return RTEMS_INVALID_NUMBER;
}
-
+
/* device already opened */
if ( sci_device[minor].opened > 0 )
{
sci_device[minor].opened++ ;
return RTEMS_SUCCESSFUL ;
}
-
+
_sci_init( minor );
if (minor == 0) {
@@ -256,16 +256,16 @@ rtems_device_driver sh_sci_open(
/* FIXME: Should be one bit delay */
CPU_delay(50000); /* microseconds */
-
+
temp8 |= SCI_RE | SCI_TE;
write8(temp8, sci_device[minor].addr + SCI_SCR); /* Enable clock output */
- }
+ }
sci_device[minor].opened++ ;
return RTEMS_SUCCESSFUL ;
}
-
+
/*
* Close entry point
*/
@@ -282,7 +282,7 @@ rtems_device_driver sh_sci_close(
}
sci_device[minor].opened-- ;
-
+
return RTEMS_SUCCESSFUL ;
}
@@ -297,7 +297,7 @@ rtems_device_driver sh_sci_read(
)
{
int count = 0;
-
+
rtems_libio_rw_args_t *rw_args = (rtems_libio_rw_args_t *) arg;
char * buffer = rw_args->buffer;
int maximum = rw_args->count;