This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new 357f8093ac arch/arm/samv7: fix U(S)ART clock enable for 1-wire
357f8093ac is described below
commit 357f8093ac15caa9cdee3ec1e90aca7748bc94de
Author: Petro Karashchenko <[email protected]>
AuthorDate: Wed May 22 14:45:15 2024 +0200
arch/arm/samv7: fix U(S)ART clock enable for 1-wire
By default U(S)ART clocks are enabled in sam_lowput.c but
configuration check from sam_config.h may override USART configuration
and prevent clocks from been enabled.
This commit fix inconsistency in U(S)ART pinmux and clock configuration
Signed-off-by: Petro Karashchenko <[email protected]>
---
arch/arm/src/samv7/sam_1wire.c | 10 +++++++++-
arch/arm/src/samv7/sam_config.h | 22 ----------------------
arch/arm/src/samv7/sam_lowputc.c | 32 ++++++++++++++++----------------
3 files changed, 25 insertions(+), 39 deletions(-)
diff --git a/arch/arm/src/samv7/sam_1wire.c b/arch/arm/src/samv7/sam_1wire.c
index 28a2c17ef2..19c8300033 100644
--- a/arch/arm/src/samv7/sam_1wire.c
+++ b/arch/arm/src/samv7/sam_1wire.c
@@ -471,7 +471,7 @@ static int sam_init(struct sam_1wire_s *priv)
up_enable_irq(priv->irq);
}
- return OK;
+ return ret;
}
/****************************************************************************
@@ -885,41 +885,49 @@ struct onewire_dev_s *sam_1wireinitialize(int port)
{
#ifdef CONFIG_SAMV7_UART0_1WIREDRIVER
case 0:
+ sam_uart0_enableclk();
priv = &sam_1wire0_priv;
break;
#endif
#ifdef CONFIG_SAMV7_UART1_1WIREDRIVER
case 1:
+ sam_uart1_enableclk();
priv = &sam_1wire1_priv;
break;
#endif
#ifdef CONFIG_SAMV7_UART2_1WIREDRIVER
case 2:
+ sam_uart2_enableclk();
priv = &sam_1wire2_priv;
break;
#endif
#ifdef CONFIG_SAMV7_UART3_1WIREDRIVER
case 3:
+ sam_uart3_enableclk();
priv = &sam_1wire3_priv;
break;
#endif
#ifdef CONFIG_SAMV7_UART4_1WIREDRIVER
case 4:
+ sam_uart4_enableclk();
priv = &sam_1wire4_priv;
break;
#endif
#ifdef CONFIG_SAMV7_USART0_1WIREDRIVER
case 5:
+ sam_usart0_enableclk();
priv = &sam_1wire5_priv;
break;
#endif
#ifdef CONFIG_SAMV7_USART1_1WIREDRIVER
case 6:
+ sam_usart1_enableclk();
priv = &sam_1wire6_priv;
break;
#endif
#ifdef CONFIG_SAMV7_USART2_1WIREDRIVER
case 7:
+ sam_usart2_enableclk();
priv = &sam_1wire7_priv;
break;
#endif
diff --git a/arch/arm/src/samv7/sam_config.h b/arch/arm/src/samv7/sam_config.h
index eed358f026..94bf3fa4ff 100644
--- a/arch/arm/src/samv7/sam_config.h
+++ b/arch/arm/src/samv7/sam_config.h
@@ -97,28 +97,6 @@
/* USARTs *******************************************************************/
-/* If the USART is not being used as a UART or for SPI, then it really isn't
- * enabled for our purposes.
- */
-
-#if !defined(CONFIG_USART0_SERIALDRIVER) && !defined(CONFIG_USART0_ISSPI)
-# undef CONFIG_SAMV7_USART0
-# undef CONFIG_USART0_SERIAL_CONSOLE
-# undef CONFIG_USART0_IFLOWCONTROL
-#endif
-
-#if !defined(CONFIG_USART1_SERIALDRIVER) && !defined(CONFIG_USART1_ISSPI)
-# undef CONFIG_SAMV7_USART1
-# undef CONFIG_USART1_SERIAL_CONSOLE
-# undef CONFIG_USART1_IFLOWCONTROL
-#endif
-
-#if !defined(CONFIG_USART2_SERIALDRIVER) && !defined(CONFIG_USART2_ISSPI)
-# undef CONFIG_SAMV7_USART2
-# undef CONFIG_USART2_SERIAL_CONSOLE
-# undef CONFIG_USART2_IFLOWCONTROL
-#endif
-
/* Don't enable USARTs not supported by the chip. */
#if SAMV7_NUSART < 1
diff --git a/arch/arm/src/samv7/sam_lowputc.c b/arch/arm/src/samv7/sam_lowputc.c
index 8bddab861c..e0e55fd83e 100644
--- a/arch/arm/src/samv7/sam_lowputc.c
+++ b/arch/arm/src/samv7/sam_lowputc.c
@@ -249,59 +249,59 @@ void sam_lowsetup(void)
/* Enable clocking for all selected UART/USARTs */
-#ifdef CONFIG_SAMV7_UART0
+#ifdef CONFIG_UART0_SERIALDRIVER
sam_uart0_enableclk();
#endif
-#ifdef CONFIG_SAMV7_UART1
+#ifdef CONFIG_UART1_SERIALDRIVER
sam_uart1_enableclk();
#endif
-#ifdef CONFIG_SAMV7_UART2
+#ifdef CONFIG_UART2_SERIALDRIVER
sam_uart2_enableclk();
#endif
-#ifdef CONFIG_SAMV7_UART3
+#ifdef CONFIG_UART3_SERIALDRIVER
sam_uart3_enableclk();
#endif
-#ifdef CONFIG_SAMV7_UART4
+#ifdef CONFIG_UART4_SERIALDRIVER
sam_uart4_enableclk();
#endif
-#ifdef CONFIG_SAMV7_USART0
+#ifdef CONFIG_USART0_SERIALDRIVER
sam_usart0_enableclk();
#endif
-#ifdef CONFIG_SAMV7_USART1
+#ifdef CONFIG_USART1_SERIALDRIVER
sam_usart1_enableclk();
#endif
-#ifdef CONFIG_SAMV7_USART2
+#ifdef CONFIG_USART2_SERIALDRIVER
sam_usart2_enableclk();
#endif
/* Configure UART pins for all selected UART/USARTs */
-#ifdef CONFIG_SAMV7_UART0
+#ifdef CONFIG_UART0_SERIALDRIVER
sam_configgpio(GPIO_UART0_RXD);
sam_configgpio(GPIO_UART0_TXD);
#endif
-#ifdef CONFIG_SAMV7_UART1
+#ifdef CONFIG_UART1_SERIALDRIVER
sam_configgpio(GPIO_UART1_RXD);
sam_configgpio(GPIO_UART1_TXD);
#endif
-#ifdef CONFIG_SAMV7_UART2
+#ifdef CONFIG_UART2_SERIALDRIVER
sam_configgpio(GPIO_UART2_RXD);
sam_configgpio(GPIO_UART2_TXD);
#endif
-#ifdef CONFIG_SAMV7_UART3
+#ifdef CONFIG_UART3_SERIALDRIVER
sam_configgpio(GPIO_UART3_RXD);
sam_configgpio(GPIO_UART3_TXD);
#endif
-#ifdef CONFIG_SAMV7_UART4
+#ifdef CONFIG_UART4_SERIALDRIVER
sam_configgpio(GPIO_UART4_RXD);
sam_configgpio(GPIO_UART4_TXD);
#endif
-#ifdef CONFIG_SAMV7_USART0
+#ifdef CONFIG_USART0_SERIALDRIVER
sam_configgpio(GPIO_USART0_RXD);
sam_configgpio(GPIO_USART0_TXD);
#ifdef CONFIG_USART0_OFLOWCONTROL
@@ -312,7 +312,7 @@ void sam_lowsetup(void)
#endif
#endif
-#ifdef CONFIG_SAMV7_USART1
+#ifdef CONFIG_USART1_SERIALDRIVER
sam_configgpio(GPIO_USART1_RXD);
sam_configgpio(GPIO_USART1_TXD);
# ifdef CONFIG_USART1_OFLOWCONTROL
@@ -337,7 +337,7 @@ void sam_lowsetup(void)
#endif
-#ifdef CONFIG_SAMV7_USART2
+#ifdef CONFIG_USART2_SERIALDRIVER
sam_configgpio(GPIO_USART2_RXD);
sam_configgpio(GPIO_USART2_TXD);
#ifdef CONFIG_USART2_OFLOWCONTROL