summaryrefslogtreecommitdiff
path: root/nuttx
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-10-29 11:55:11 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-10-29 11:55:11 -0600
commit0b18779e58354a793217ac0180ea256ff710231a (patch)
tree3987655d068b983e8398928a4329187b78db36e1 /nuttx
parentf99c6fe2970b07fff316b9ce462fdc421f075470 (diff)
parent24b3cfdafcf97c9ae6ebc9edad39bad579972b60 (diff)
downloadpx4-nuttx-0b18779e58354a793217ac0180ea256ff710231a.tar.gz
px4-nuttx-0b18779e58354a793217ac0180ea256ff710231a.tar.bz2
px4-nuttx-0b18779e58354a793217ac0180ea256ff710231a.zip
Merge remote-tracking branch 'origin/master' into bas24
Diffstat (limited to 'nuttx')
-rwxr-xr-xnuttx/ChangeLog4
-rw-r--r--nuttx/arch/arm/src/efm32/efm32_lowputc.c6
-rw-r--r--nuttx/configs/efm32-g8xx-stk/README.txt15
-rw-r--r--nuttx/configs/efm32-g8xx-stk/nsh/defconfig40
-rw-r--r--nuttx/drivers/serial/serial.c2
5 files changed, 41 insertions, 26 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog
index 9eb98f67c..a0add2bfb 100755
--- a/nuttx/ChangeLog
+++ b/nuttx/ChangeLog
@@ -8894,3 +8894,7 @@
currently supported in the Nuttx C library (2014-10-27).
* include/termios.h, libc/termios/lib_isatty.c, and Make.defs: Add
isatty() function. From Alan Carvalho de Assis (2014-10-27).
+ * arch/arm/include/efm32, src/efm32, and configs/efm32-gxxx-stk:
+ The EFM32 Gecko Starter Kit port is now functional. At least
+ NSH is running over LEUART0 on the board (2014-10-29).
+
diff --git a/nuttx/arch/arm/src/efm32/efm32_lowputc.c b/nuttx/arch/arm/src/efm32/efm32_lowputc.c
index 4198288f5..f343d341a 100644
--- a/nuttx/arch/arm/src/efm32/efm32_lowputc.c
+++ b/nuttx/arch/arm/src/efm32/efm32_lowputc.c
@@ -323,6 +323,12 @@ void efm32_lowsetup(void)
#endif /* HAVE_UART_DEVICE */
#ifdef HAVE_LEUART_DEVICE
+ /* Enable the LE interface clock must be enabled in CMU_HFCORECLKEN0 */
+
+ regval = getreg32(EFM32_CMU_HFCORECLKEN0);
+ regval |= CMU_HFCORECLKEN0_LE;
+ putreg32(regval, EFM32_CMU_HFCORECLKEN0);
+
/* Enable clocking to configured LEUART interfaces */
regval = getreg32(EFM32_CMU_LFBCLKEN0);
diff --git a/nuttx/configs/efm32-g8xx-stk/README.txt b/nuttx/configs/efm32-g8xx-stk/README.txt
index 4459b2e00..0f6f3cab5 100644
--- a/nuttx/configs/efm32-g8xx-stk/README.txt
+++ b/nuttx/configs/efm32-g8xx-stk/README.txt
@@ -137,8 +137,15 @@ SERIAL CONSOLE
Default Serial Console
----------------------
- UART0 is configured as the default serial console at 115200 8N1
- on pins PE0 and PE1.
+ LEUART0 is configured as the default serial console at 2400 8N1
+ on pins PD5 and PD4. It certainly be possible to go to 4800 baud
+ and the documentation claims that 9600 baud is possible (although
+ I am not sure how).
+
+ It should also be possible to use UART0 is configured at 115200 8N1
+ on pins PE0 and PE1. However, my attempts to use USART0 were
+ unsuccessful -- I see no activity on PE0 and PE1 and have not yet
+ figured out why that is.
Communication through the Board Controller
------------------------------------------
@@ -218,9 +225,7 @@ CONFIGURATIONS
nsh:
---
Configures the NuttShell (nsh) located at apps/examples/nsh. The
- Configuration enables the serial interfaces on UART0. Support for
- built-in applications is enabled, but in the base configuration no
- built-in applications are selected (see NOTES below).
+ Configuration enables the serial interfaces on LEUART0 at 2400 8N1.
NOTES:
diff --git a/nuttx/configs/efm32-g8xx-stk/nsh/defconfig b/nuttx/configs/efm32-g8xx-stk/nsh/defconfig
index 753669d80..a1433dc71 100644
--- a/nuttx/configs/efm32-g8xx-stk/nsh/defconfig
+++ b/nuttx/configs/efm32-g8xx-stk/nsh/defconfig
@@ -141,17 +141,29 @@ CONFIG_EFM32_HAVE_UART0=y
CONFIG_EFM32_HAVE_LEUART1=y
# CONFIG_EFM32_USART_ISUART is not set
# CONFIG_EFM32_USART_ISSPI is not set
-CONFIG_EFM32_UART=y
-# CONFIG_EFM32_LEUART is not set
+# CONFIG_EFM32_UART is not set
+CONFIG_EFM32_LEUART=y
# CONFIG_EFM32_DMA is not set
# CONFIG_EFM32_USART0 is not set
# CONFIG_EFM32_USART1 is not set
# CONFIG_EFM32_USART2 is not set
-CONFIG_EFM32_UART0=y
+# CONFIG_EFM32_UART0 is not set
# CONFIG_EFM32_UART1 is not set
-# CONFIG_EFM32_LEUART0 is not set
+CONFIG_EFM32_LEUART0=y
# CONFIG_EFM32_LEUART1 is not set
CONFIG_EFM32_GPIO_IRQ=y
+CONFIG_LEUART0_SERIAL_CONSOLE=y
+# CONFIG_NO_LEUART_SERIAL_CONSOLE is not set
+
+#
+# LEUART0 Configuration
+#
+CONFIG_LEUART0_RXBUFSIZE=64
+CONFIG_LEUART0_TXBUFSIZE=64
+CONFIG_LEUART0_BAUD=2400
+CONFIG_LEUART0_BITS=8
+CONFIG_LEUART0_PARITY=0
+CONFIG_LEUART0_2STOP=0
#
# Architecture Options
@@ -374,7 +386,7 @@ CONFIG_SERIAL=y
# CONFIG_DEV_LOWCONSOLE is not set
# CONFIG_16550_UART is not set
# CONFIG_ARCH_HAVE_UART is not set
-CONFIG_ARCH_HAVE_UART0=y
+# CONFIG_ARCH_HAVE_UART0 is not set
# CONFIG_ARCH_HAVE_UART1 is not set
# CONFIG_ARCH_HAVE_UART2 is not set
# CONFIG_ARCH_HAVE_UART3 is not set
@@ -394,7 +406,7 @@ CONFIG_ARCH_HAVE_UART0=y
# CONFIG_ARCH_HAVE_USART6 is not set
# CONFIG_ARCH_HAVE_USART7 is not set
# CONFIG_ARCH_HAVE_USART8 is not set
-# CONFIG_ARCH_HAVE_OTHER_UART is not set
+CONFIG_ARCH_HAVE_OTHER_UART=y
#
# USART Configuration
@@ -402,21 +414,9 @@ CONFIG_ARCH_HAVE_UART0=y
CONFIG_MCU_SERIAL=y
CONFIG_STANDARD_SERIAL=y
# CONFIG_ARCH_HAVE_SERIAL_TERMIOS is not set
-CONFIG_UART0_SERIAL_CONSOLE=y
-# CONFIG_OTHER_SERIAL_CONSOLE is not set
+# CONFIG_UART0_SERIAL_CONSOLE is not set
+CONFIG_OTHER_SERIAL_CONSOLE=y
# CONFIG_NO_SERIAL_CONSOLE is not set
-
-#
-# UART0 Configuration
-#
-CONFIG_UART0_RXBUFSIZE=64
-CONFIG_UART0_TXBUFSIZE=64
-CONFIG_UART0_BAUD=115200
-CONFIG_UART0_BITS=8
-CONFIG_UART0_PARITY=0
-CONFIG_UART0_2STOP=0
-# CONFIG_UART0_IFLOWCONTROL is not set
-# CONFIG_UART0_OFLOWCONTROL is not set
# CONFIG_SERIAL_IFLOWCONTROL is not set
# CONFIG_SERIAL_OFLOWCONTROL is not set
# CONFIG_USBDEV is not set
diff --git a/nuttx/drivers/serial/serial.c b/nuttx/drivers/serial/serial.c
index 6a48b4fda..3cc779874 100644
--- a/nuttx/drivers/serial/serial.c
+++ b/nuttx/drivers/serial/serial.c
@@ -1376,7 +1376,7 @@ void uart_connected(FAR uart_dev_t *dev, bool connected)
(void)sem_post(&dev->recvsem);
}
- /* Notify all poll/select waiters that and hangup occurred */
+ /* Notify all poll/select waiters that a hangup occurred */
uart_pollnotify(dev, (POLLERR|POLLHUP));
}