summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2014-01-21 06:52:33 -0800
committerLorenz Meier <lm@inf.ethz.ch>2014-01-21 06:52:33 -0800
commitec06a8f50621be5954abfd3553f1fb7df6567e84 (patch)
tree26ed046966578df04e6a2d50957d0ba27de75cf1
parentbfbccf65227026c961c22612f84555dcd48588ac (diff)
parentb4a58caddb56ea3b6a6f750eed0c0c77a008e9c4 (diff)
downloadpx4-nuttx-ec06a8f50621be5954abfd3553f1fb7df6567e84.tar.gz
px4-nuttx-ec06a8f50621be5954abfd3553f1fb7df6567e84.tar.bz2
px4-nuttx-ec06a8f50621be5954abfd3553f1fb7df6567e84.zip
Merge pull request #9 from PX4/STM32F1_singlewire_uart
STM32F10xxx single wire usart support
-rw-r--r--nuttx/arch/arm/src/stm32/stm32_serial.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/nuttx/arch/arm/src/stm32/stm32_serial.c b/nuttx/arch/arm/src/stm32/stm32_serial.c
index 0cf1f209b..e2a0da226 100644
--- a/nuttx/arch/arm/src/stm32/stm32_serial.c
+++ b/nuttx/arch/arm/src/stm32/stm32_serial.c
@@ -1743,6 +1743,18 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg)
*/
uint32_t cr = up_serialin(priv, STM32_USART_CR3_OFFSET);
+#if defined(CONFIG_STM32_STM32F10XX)
+ if (arg == SER_SINGLEWIRE_ENABLED)
+ {
+ stm32_configgpio((priv->tx_gpio & ~(GPIO_CNF_MASK)) | GPIO_CNF_AFOD);
+ cr |= USART_CR3_HDSEL;
+ }
+ else
+ {
+ stm32_configgpio((priv->tx_gpio & ~(GPIO_CNF_MASK)) | GPIO_CNF_AFPP);
+ cr &= ~USART_CR3_HDSEL;
+ }
+#else
if (arg == SER_SINGLEWIRE_ENABLED)
{
@@ -1754,6 +1766,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg)
stm32_configgpio(priv->tx_gpio | GPIO_PUSHPULL);
cr &= ~USART_CR3_HDSEL;
}
+#endif
up_serialout(priv, STM32_USART_CR3_OFFSET, cr);
}