diff options
author | Kevin Kirspel <kevin-kirspel@idexx.com> | 2017-03-21 15:39:48 -0400 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-03-22 11:55:04 +0100 |
commit | 1c6926c11f2e5efcb166c668b097d64a0321d66e (patch) | |
tree | 30683dcf11979f51273413aade68a3828d00da10 /c/src/lib/libcpu/sh/sh7032 | |
parent | bsp/atsam: Fix DMA support of some drivers (diff) | |
download | rtems-1c6926c11f2e5efcb166c668b097d64a0321d66e.tar.bz2 |
termios: Synchronize with latest FreeBSD headers
Adding modified FreeBSD headers to synchronize RTEMS termios with
FreeBSD. Modify termios to support dedicated input and output baud for
termios structure. Updated BSPs to use dedicated input and output baud
in termios structure. Updated tools to use dedicated input and output
baud in termios structure. Updated termios testsuites to use dedicated
input and output baud in termios structure.
Close #2897.
Diffstat (limited to 'c/src/lib/libcpu/sh/sh7032')
-rw-r--r-- | c/src/lib/libcpu/sh/sh7032/sci/sci.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/c/src/lib/libcpu/sh/sh7032/sci/sci.c b/c/src/lib/libcpu/sh/sh7032/sci/sci.c index c9db0fec73..04d9ca5c70 100644 --- a/c/src/lib/libcpu/sh/sh7032/sci/sci.c +++ b/c/src/lib/libcpu/sh/sh7032/sci/sci.c @@ -46,29 +46,31 @@ struct scidev_t { rtems_device_minor_number minor ; unsigned short opened ; tcflag_t cflags ; + speed_t spd ; } sci_device[SCI_MINOR_DEVICES] = { - { "/dev/sci0", SH_SCI_BASE_0, 0, 0, B9600 | CS8 }, - { "/dev/sci1", SH_SCI_BASE_1, 1, 0, B9600 | CS8 } + { "/dev/sci0", SH_SCI_BASE_0, 0, 0, CS8, B9600 }, + { "/dev/sci1", SH_SCI_BASE_1, 1, 0, CS8, B9600 } } ; /* imported from scitab.rel */ extern int _sci_get_brparms( - tcflag_t cflag, + speed_t spd, unsigned char *smr, unsigned char *brr ); /* Translate termios' tcflag_t into sci settings */ static int _sci_set_cflags( struct scidev_t *sci_dev, - tcflag_t c_cflag ) + tcflag_t c_cflag, + speed_t spd ) { uint8_t smr ; uint8_t brr ; - if ( c_cflag & CBAUD ) + if ( spd ) { - if ( _sci_get_brparms( c_cflag, &smr, &brr ) != 0 ) + if ( _sci_get_brparms( spd, &smr, &brr ) != 0 ) return -1 ; } @@ -239,7 +241,7 @@ rtems_device_driver sh_sci_open( temp8 = read8(sci_device[minor].addr + SCI_SCR); temp8 &= ~(SCI_TE | SCI_RE) ; write8(temp8, sci_device[minor].addr + SCI_SCR); /* Clear SCR */ - _sci_set_cflags( &sci_device[minor], sci_device[minor].cflags ); + _sci_set_cflags( &sci_device[minor], sci_device[minor].cflags, sci_device[minor].spd ); /* FIXME: Should be one bit delay */ CPU_delay(50000); /* microseconds */ @@ -250,7 +252,7 @@ rtems_device_driver sh_sci_open( temp8 = read8(sci_device[minor].addr + SCI_SCR); temp8 &= ~(SCI_TE | SCI_RE) ; write8(temp8, sci_device[minor].addr + SCI_SCR); /* Clear SCR */ - _sci_set_cflags( &sci_device[minor], sci_device[minor].cflags ); + _sci_set_cflags( &sci_device[minor], sci_device[minor].cflags, sci_device[minor].spd ); /* FIXME: Should be one bit delay */ CPU_delay(50000); /* microseconds */ |