summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2015-04-08 14:35:04 -0600
committerGregory Nutt <gnutt@nuttx.org>2015-04-08 14:35:04 -0600
commit2df0b62e8383f86c101f2ebc9ca34a252bce7052 (patch)
tree14eeccddaa491ff93ff983bd3b4ac0883470a878
parenta5b01a3404706d3cf6a62a70ff7a7d16b478a606 (diff)
downloadpx4-nuttx-2df0b62e8383f86c101f2ebc9ca34a252bce7052.tar.gz
px4-nuttx-2df0b62e8383f86c101f2ebc9ca34a252bce7052.tar.bz2
px4-nuttx-2df0b62e8383f86c101f2ebc9ca34a252bce7052.zip
SAMA5 Serial: Fix a couple of errors backporting termios and flowcontrol
-rw-r--r--nuttx/arch/arm/src/sama5/Kconfig7
-rw-r--r--nuttx/arch/arm/src/sama5/sam_serial.c11
2 files changed, 13 insertions, 5 deletions
diff --git a/nuttx/arch/arm/src/sama5/Kconfig b/nuttx/arch/arm/src/sama5/Kconfig
index d02ad3b40..1946b9b32 100644
--- a/nuttx/arch/arm/src/sama5/Kconfig
+++ b/nuttx/arch/arm/src/sama5/Kconfig
@@ -282,38 +282,45 @@ config SAMA5_UART0
default y
depends on SAMA5_HAVE_UART0
select ARCH_HAVE_UART0
+ select ARCH_HAVE_SERIAL_TERMIOS
config SAMA5_UART1
bool "UART 1"
default n
depends on SAMA5_HAVE_UART1
select ARCH_HAVE_UART1
+ select ARCH_HAVE_SERIAL_TERMIOS
config SAMA5_USART0
bool "USART 0"
default n
select ARCH_HAVE_USART0
+ select ARCH_HAVE_SERIAL_TERMIOS
config SAMA5_USART1
bool "USART 1"
default n
select ARCH_HAVE_USART1
+ select ARCH_HAVE_SERIAL_TERMIOS
config SAMA5_USART2
bool "USART 2"
default n
select ARCH_HAVE_USART2
+ select ARCH_HAVE_SERIAL_TERMIOS
config SAMA5_USART3
bool "USART 3"
default n
select ARCH_HAVE_USART3
+ select ARCH_HAVE_SERIAL_TERMIOS
config SAMA5_USART4
bool "USART 4"
default n
depends on SAMA5_HAVE_USART4
select ARCH_HAVE_USART4
+ select ARCH_HAVE_SERIAL_TERMIOS
config SAMA5_TWI0
bool "Two-Wire Interface 0 (TWI0)"
diff --git a/nuttx/arch/arm/src/sama5/sam_serial.c b/nuttx/arch/arm/src/sama5/sam_serial.c
index 11e4d8d43..2f5f54870 100644
--- a/nuttx/arch/arm/src/sama5/sam_serial.c
+++ b/nuttx/arch/arm/src/sama5/sam_serial.c
@@ -404,7 +404,7 @@ struct up_dev_s
uint8_t bits; /* Number of bits (7 or 8) */
bool stopbits2; /* true: Configure with 2 stop bits instead of 1 */
#if defined(CONFIG_SERIAL_IFLOWCONTROL) || defined(CONFIG_SERIAL_OFLOWCONTROL)
- bool flowc; /* input flow control (RTS) enabled */
+ bool flowc; /* input flow control (RTS) enabled */
#endif
};
@@ -521,7 +521,7 @@ static struct up_dev_s g_uart1priv =
.parity = CONFIG_UART1_PARITY,
.bits = CONFIG_UART1_BITS,
.stopbits2 = CONFIG_UART1_2STOP,
-;
+};
static uart_dev_t g_uart1port =
{
@@ -1239,16 +1239,17 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg)
#if defined(CONFIG_SERIAL_IFLOWCONTROL) || defined(CONFIG_SERIAL_OFLOWCONTROL)
priv->flowc = flowc;
#endif
- /* effect the changes immediately - note that we do not
+ /* Effect the changes immediately - note that we do not
* implement TCSADRAIN / TCSAFLUSH
*/
- up_disableallints(priv, &imr);
+ imr = up_serialin(priv, SAM_UART_IMR_OFFSET);
+ up_disableallints(priv);
ret = up_setup(dev);
/* Restore the interrupt state */
- up_restoreusartint(priv, imr);
+ up_serialout(priv, SAM_UART_IER_OFFSET, imr);
}
}
break;