diff --git a/arch/arm/src/sama5/Kconfig b/arch/arm/src/sama5/Kconfig index 0f55b71e1f..0e5e451c69 100644 --- a/arch/arm/src/sama5/Kconfig +++ b/arch/arm/src/sama5/Kconfig @@ -796,6 +796,8 @@ choice config SAMA5_FLEXCOM0_USART bool "USART" select SAMA5_FLEXCOM_USART + select ARCH_HAVE_USART0 + select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_FLEXCOM0_SPI bool "SPI" @@ -815,6 +817,8 @@ choice config SAMA5_FLEXCOM1_USART bool "USART" select SAMA5_FLEXCOM_USART + select ARCH_HAVE_USART1 + select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_FLEXCOM1_SPI bool "SPI" @@ -834,6 +838,8 @@ choice config SAMA5_FLEXCOM2_USART bool "USART" select SAMA5_FLEXCOM_USART + select ARCH_HAVE_USART2 + select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_FLEXCOM2_SPI bool "SPI" @@ -857,6 +863,8 @@ config SAMA5_FLEXCOM3_USART config SAMA5_FLEXCOM3_SPI bool "SPI" select SAMA5_FLEXCOM_SPI + select ARCH_HAVE_USART3 + select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_FLEXCOM3_SPI bool "TWI" @@ -872,6 +880,8 @@ choice config SAMA5_FLEXCOM4_USART bool "USART" select SAMA5_FLEXCOM_USART + select ARCH_HAVE_USART4 + select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_FLEXCOM4_SPI bool "SPI" diff --git a/arch/arm/src/sama5/sam_config.h b/arch/arm/src/sama5/sam_config.h new file mode 100644 index 0000000000..af25f9f755 --- /dev/null +++ b/arch/arm/src/sama5/sam_config.h @@ -0,0 +1,284 @@ +/************************************************************************** + * arch/arm/src/sama5/sam_config.h + * + * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + **************************************************************************/ + +#ifndef __ARCH_ARM_SRC_SAMA5_SAM_CONFIG_H +#define __ARCH_ARM_SRC_SAMA5_SAM_CONFIG_H 1 + +/************************************************************************** + * Included Files + **************************************************************************/ + +#include + +/************************************************************************** + * Pre-processor Definitions + **************************************************************************/ + +/* Configuration **********************************************************/ + +/* If the USART is not being used as a UART, then it really isn't enabled + * for our purposes. + */ + +#ifndef CONFIG_SAMA5_USART0 +# undef CONFIG_USART0_ISUART +# undef CONFIG_USART0_SERIAL_CONSOLE +#endif +#ifndef CONFIG_SAMA5_USART1 +# undef CONFIG_USART1_ISUART +# undef CONFIG_USART1_SERIAL_CONSOLE +#endif +#ifndef CONFIG_SAMA5_USART2 +# undef CONFIG_USART2_ISUART +# undef CONFIG_USART2_SERIAL_CONSOLE +#endif +#ifndef CONFIG_SAMA5_USART3 +# undef CONFIG_USART3_ISUART +# undef CONFIG_USART3_SERIAL_CONSOLE +#endif +#ifndef CONFIG_SAMA5_USART4 +# undef CONFIG_USART4_ISUART +# undef CONFIG_USART4_SERIAL_CONSOLE +#endif + +/* Is there a USART/USART enabled? */ + +#if defined(CONFIG_SAMA5_UART0) || defined(CONFIG_SAMA5_UART1) || \ + defined(CONFIG_SAMA5_UART2) || defined(CONFIG_SAMA5_UART3) || \ + defined(CONFIG_SAMA5_UART4) +# define SAMA5_HAVE_UART +#endif + +#if defined(CONFIG_USART0_ISUART) || defined(CONFIG_USART1_ISUART) || \ + defined(CONFIG_USART2_ISUART) || defined(CONFIG_USART3_ISUART) || \ + defined(CONFIG_USART4_ISUART) +# define SAMA5_HAVE_USART +#endif + +/* Same is true for Flexcom USARTs */ + +#ifndef CONFIG_SAMA5_FLEXCOM +# undef CONFIG_SAMA5_FLEXCOM_USART +#endif + +#ifndef CONFIG_SAMA5_FLEXCOM_USART +# undef CONFIG_SAMA5_FLEXCOM0_USART +# undef CONFIG_SAMA5_FLEXCOM1_USART +# undef CONFIG_SAMA5_FLEXCOM2_USART +# undef CONFIG_SAMA5_FLEXCOM3_USART +# undef CONFIG_SAMA5_FLEXCOM4_USART +#endif + +#ifndef CONFIG_USART0_ISUART +# undef CONFIG_SAMA5_FLEXCOM0_USART +#endif +#ifndef CONFIG_USART1_ISUART +# undef CONFIG_SAMA5_FLEXCOM1_USART +#endif +#ifndef CONFIG_USART2_ISUART +# undef CONFIG_SAMA5_FLEXCOM2_USART +#endif +#ifndef CONFIG_USART3_ISUART +# undef CONFIG_SAMA5_FLEXCOM3_USART +#endif +#ifndef CONFIG_USART4_ISUART +# undef CONFIG_SAMA5_FLEXCOM4_USART +#endif + +#if defined(CONFIG_SAMA5_FLEXCOM0_USART) || defined(CONFIG_SAMA5_FLEXCOM1_USART) || \ + defined(CONFIG_SAMA5_FLEXCOM2_USART) || defined(CONFIG_SAMA5_FLEXCOM3_USART) || \ + defined(CONFIG_SAMA5_FLEXCOM4_USART) +# define SAMA5_HAVE_FLEXCOM_USART +#endif + +#if defined(SAMA5_HAVE_FLEXCOM_USART) && defined(SAMA5_HAVE_USART) +# error "Cannot have both USART and Flexcom USART" +#endif + +#undef SUPPRESS_CONSOLE_CONFIG +#ifdef CONFIG_SUPPRESS_UART_CONFIG +# define SUPPRESS_CONSOLE_CONFIG 1 +#endif + +/* Is there a serial console? It could be on UART0-4 or USART0-3 */ + +#if defined(CONFIG_SAMA5_DBGU_CONSOLE) && defined(CONFIG_SAMA5_DBGU) +# undef CONFIG_UART0_SERIAL_CONSOLE +# undef CONFIG_UART1_SERIAL_CONSOLE +# undef CONFIG_UART2_SERIAL_CONSOLE +# undef CONFIG_UART3_SERIAL_CONSOLE +# undef CONFIG_UART4_SERIAL_CONSOLE +# undef CONFIG_USART0_SERIAL_CONSOLE +# undef CONFIG_USART1_SERIAL_CONSOLE +# undef CONFIG_USART2_SERIAL_CONSOLE +# undef CONFIG_USART3_SERIAL_CONSOLE +# undef CONFIG_USART4_SERIAL_CONSOLE +# undef SAMA5_HAVE_SERIAL_CONSOLE +#elif defined(CONFIG_UART0_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_UART0) +# undef CONFIG_SAMA5_DBGU_CONSOLE +# undef CONFIG_UART1_SERIAL_CONSOLE +# undef CONFIG_UART2_SERIAL_CONSOLE +# undef CONFIG_UART3_SERIAL_CONSOLE +# undef CONFIG_UART4_SERIAL_CONSOLE +# undef CONFIG_USART0_SERIAL_CONSOLE +# undef CONFIG_USART1_SERIAL_CONSOLE +# undef CONFIG_USART2_SERIAL_CONSOLE +# undef CONFIG_USART3_SERIAL_CONSOLE +# undef CONFIG_USART4_SERIAL_CONSOLE +# define SAMA5_HAVE_SERIAL_CONSOLE 1 +#elif defined(CONFIG_UART1_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_UART1) +# undef CONFIG_SAMA5_DBGU_CONSOLE +# undef CONFIG_UART0_SERIAL_CONSOLE +# undef CONFIG_UART2_SERIAL_CONSOLE +# undef CONFIG_UART3_SERIAL_CONSOLE +# undef CONFIG_UART4_SERIAL_CONSOLE +# undef CONFIG_USART0_SERIAL_CONSOLE +# undef CONFIG_USART1_SERIAL_CONSOLE +# undef CONFIG_USART2_SERIAL_CONSOLE +# undef CONFIG_USART3_SERIAL_CONSOLE +# undef CONFIG_USART4_SERIAL_CONSOLE +# define SAMA5_HAVE_SERIAL_CONSOLE 1 +#elif defined(CONFIG_UART2_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_UART2) +# undef CONFIG_SAMA5_DBGU_CONSOLE +# undef CONFIG_UART0_SERIAL_CONSOLE +# undef CONFIG_UART1_SERIAL_CONSOLE +# undef CONFIG_UART3_SERIAL_CONSOLE +# undef CONFIG_UART4_SERIAL_CONSOLE +# undef CONFIG_USART0_SERIAL_CONSOLE +# undef CONFIG_USART1_SERIAL_CONSOLE +# undef CONFIG_USART2_SERIAL_CONSOLE +# undef CONFIG_USART3_SERIAL_CONSOLE +# undef CONFIG_USART4_SERIAL_CONSOLE +# define SAMA5_HAVE_SERIAL_CONSOLE 1 +#elif defined(CONFIG_UART3_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_UART3) +# undef CONFIG_SAMA5_DBGU_CONSOLE +# undef CONFIG_UART0_SERIAL_CONSOLE +# undef CONFIG_UART1_SERIAL_CONSOLE +# undef CONFIG_UART2_SERIAL_CONSOLE +# undef CONFIG_UART4_SERIAL_CONSOLE +# undef CONFIG_USART0_SERIAL_CONSOLE +# undef CONFIG_USART1_SERIAL_CONSOLE +# undef CONFIG_USART2_SERIAL_CONSOLE +# undef CONFIG_USART3_SERIAL_CONSOLE +# define SAMA5_HAVE_SERIAL_CONSOLE 1 +#elif defined(CONFIG_UART4_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_UART4) +# undef CONFIG_SAMA5_DBGU_CONSOLE +# undef CONFIG_UART0_SERIAL_CONSOLE +# undef CONFIG_UART1_SERIAL_CONSOLE +# undef CONFIG_UART2_SERIAL_CONSOLE +# undef CONFIG_UART3_SERIAL_CONSOLE +# undef CONFIG_USART0_SERIAL_CONSOLE +# undef CONFIG_USART1_SERIAL_CONSOLE +# undef CONFIG_USART2_SERIAL_CONSOLE +# undef CONFIG_USART3_SERIAL_CONSOLE +# undef CONFIG_USART4_SERIAL_CONSOLE +# define SAMA5_HAVE_SERIAL_CONSOLE 1 +#elif defined(CONFIG_USART0_SERIAL_CONSOLE) && defined(CONFIG_USART0_ISUART) +# undef CONFIG_SAMA5_DBGU_CONSOLE +# undef CONFIG_UART0_SERIAL_CONSOLE +# undef CONFIG_UART1_SERIAL_CONSOLE +# undef CONFIG_UART2_SERIAL_CONSOLE +# undef CONFIG_UART3_SERIAL_CONSOLE +# undef CONFIG_UART4_SERIAL_CONSOLE +# undef CONFIG_USART1_SERIAL_CONSOLE +# undef CONFIG_USART2_SERIAL_CONSOLE +# undef CONFIG_USART3_SERIAL_CONSOLE +# undef CONFIG_USART4_SERIAL_CONSOLE +# define SAMA5_HAVE_SERIAL_CONSOLE 1 +#elif defined(CONFIG_USART1_SERIAL_CONSOLE) && defined(CONFIG_USART1_ISUART) +# undef CONFIG_SAMA5_DBGU_CONSOLE +# undef CONFIG_UART0_SERIAL_CONSOLE +# undef CONFIG_UART1_SERIAL_CONSOLE +# undef CONFIG_UART2_SERIAL_CONSOLE +# undef CONFIG_UART3_SERIAL_CONSOLE +# undef CONFIG_UART4_SERIAL_CONSOLE +# undef CONFIG_USART0_SERIAL_CONSOLE +# undef CONFIG_USART2_SERIAL_CONSOLE +# undef CONFIG_USART3_SERIAL_CONSOLE +# undef CONFIG_USART4_SERIAL_CONSOLE +# define SAMA5_HAVE_SERIAL_CONSOLE 1 +#elif defined(CONFIG_USART2_SERIAL_CONSOLE) && defined(CONFIG_USART2_ISUART) +# undef CONFIG_SAMA5_DBGU_CONSOLE +# undef CONFIG_UART0_SERIAL_CONSOLE +# undef CONFIG_UART1_SERIAL_CONSOLE +# undef CONFIG_UART2_SERIAL_CONSOLE +# undef CONFIG_UART3_SERIAL_CONSOLE +# undef CONFIG_UART4_SERIAL_CONSOLE +# undef CONFIG_USART0_SERIAL_CONSOLE +# undef CONFIG_USART1_SERIAL_CONSOLE +# undef CONFIG_USART3_SERIAL_CONSOLE +# undef CONFIG_USART4_SERIAL_CONSOLE +# define SAMA5_HAVE_SERIAL_CONSOLE 1 +#elif defined(CONFIG_USART3_SERIAL_CONSOLE) && defined(CONFIG_USART3_ISUART) +# undef CONFIG_SAMA5_DBGU_CONSOLE +# undef CONFIG_UART0_SERIAL_CONSOLE +# undef CONFIG_UART1_SERIAL_CONSOLE +# undef CONFIG_UART2_SERIAL_CONSOLE +# undef CONFIG_UART3_SERIAL_CONSOLE +# undef CONFIG_UART4_SERIAL_CONSOLE +# undef CONFIG_USART0_SERIAL_CONSOLE +# undef CONFIG_USART1_SERIAL_CONSOLE +# undef CONFIG_USART2_SERIAL_CONSOLE +# undef CONFIG_USART4_SERIAL_CONSOLE +# define SAMA5_HAVE_SERIAL_CONSOLE 1 +#elif defined(CONFIG_USART4_SERIAL_CONSOLE) && defined(CONFIG_USART4_ISUART) +# undef CONFIG_SAMA5_DBGU_CONSOLE +# undef CONFIG_UART0_SERIAL_CONSOLE +# undef CONFIG_UART1_SERIAL_CONSOLE +# undef CONFIG_UART2_SERIAL_CONSOLE +# undef CONFIG_UART3_SERIAL_CONSOLE +# undef CONFIG_UART4_SERIAL_CONSOLE +# undef CONFIG_USART0_SERIAL_CONSOLE +# undef CONFIG_USART1_SERIAL_CONSOLE +# undef CONFIG_USART2_SERIAL_CONSOLE +# undef CONFIG_USART3_SERIAL_CONSOLE +# define SAMA5_HAVE_SERIAL_CONSOLE 1 +#else +# warning "No valid CONFIG_USARTn_SERIAL_CONSOLE Setting" +# undef CONFIG_SAMA5_DBGU_CONSOLE +# undef CONFIG_UART0_SERIAL_CONSOLE +# undef CONFIG_UART1_SERIAL_CONSOLE +# undef CONFIG_UART2_SERIAL_CONSOLE +# undef CONFIG_UART3_SERIAL_CONSOLE +# undef CONFIG_UART4_SERIAL_CONSOLE +# undef CONFIG_USART0_SERIAL_CONSOLE +# undef CONFIG_USART1_SERIAL_CONSOLE +# undef CONFIG_USART2_SERIAL_CONSOLE +# undef CONFIG_USART3_SERIAL_CONSOLE +# undef CONFIG_USART4_SERIAL_CONSOLE +# undef SAMA5_HAVE_SERIAL_CONSOLE +#endif + +#endif /* __ARCH_ARM_SRC_SAMA5_SAM_CONFIG_H */ diff --git a/arch/arm/src/sama5/sam_lowputc.c b/arch/arm/src/sama5/sam_lowputc.c index e4c1ec31af..d37a3685b4 100644 --- a/arch/arm/src/sama5/sam_lowputc.c +++ b/arch/arm/src/sama5/sam_lowputc.c @@ -49,6 +49,7 @@ #include "sam_pio.h" #include "sam_periphclks.h" +#include "sam_config.h" #include "sam_dbgu.h" #include "sam_lowputc.h" @@ -60,157 +61,6 @@ * Pre-processor Definitions **************************************************************************/ -/* Configuration **********************************************************/ - -/* If the USART is not being used as a UART, then it really isn't enabled - * for our purposes. - */ - -#ifndef CONFIG_USART0_ISUART -# undef CONFIG_SAMA5_USART0 -#endif -#ifndef CONFIG_USART1_ISUART -# undef CONFIG_SAMA5_USART1 -#endif -#ifndef CONFIG_USART2_ISUART -# undef CONFIG_SAMA5_USART2 -#endif -#ifndef CONFIG_USART3_ISUART -# undef CONFIG_SAMA5_USART3 -#endif - -#undef SUPPRESS_CONSOLE_CONFIG -#ifdef CONFIG_SUPPRESS_UART_CONFIG -# define SUPPRESS_CONSOLE_CONFIG 1 -#endif - -/* Is there a serial console? It could be on UART0-4 or USART0-3 */ - -#if defined(CONFIG_SAMA5_DBGU_CONSOLE) && defined(CONFIG_SAMA5_DBGU) -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# undef HAVE_UART_CONSOLE -#elif defined(CONFIG_UART0_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_UART0) -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# define HAVE_UART_CONSOLE 1 -#elif defined(CONFIG_UART1_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_UART1) -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# define HAVE_UART_CONSOLE 1 -#elif defined(CONFIG_UART2_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_UART2) -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# define HAVE_UART_CONSOLE 1 -#elif defined(CONFIG_UART3_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_UART3) -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# define HAVE_UART_CONSOLE 1 -#elif defined(CONFIG_UART4_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_UART4) -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# define HAVE_UART_CONSOLE 1 -#elif defined(CONFIG_USART0_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_USART0) -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# define HAVE_UART_CONSOLE 1 -#elif defined(CONFIG_USART1_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_USART1) -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# define HAVE_UART_CONSOLE 1 -#elif defined(CONFIG_USART2_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_USART2) -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# define HAVE_UART_CONSOLE 1 -#elif defined(CONFIG_USART3_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_USART3) -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# define HAVE_UART_CONSOLE 1 -#else -# warning "No valid CONFIG_USARTn_SERIAL_CONSOLE Setting" -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# undef HAVE_UART_CONSOLE -#endif - /* The UART/USART modules are driven by the peripheral clock (MCK or MCK2). */ #define SAM_USART_CLOCK BOARD_USART_FREQUENCY /* Frequency of the USART clock */ @@ -295,6 +145,13 @@ # define SAM_CONSOLE_PARITY CONFIG_USART3_PARITY # define SAM_CONSOLE_2STOP CONFIG_USART3_2STOP # undef SAM_CONSOLE_ISUART +#elif defined(CONFIG_USART4_SERIAL_CONSOLE) +# define SAM_CONSOLE_VBASE SAM_USART4_VBASE +# define SAM_CONSOLE_BAUD CONFIG_USART4_BAUD +# define SAM_CONSOLE_BITS CONFIG_USART4_BITS +# define SAM_CONSOLE_PARITY CONFIG_USART4_PARITY +# define SAM_CONSOLE_2STOP CONFIG_USART4_2STOP +# undef SAM_CONSOLE_ISUART #else # error "No CONFIG_U[S]ARTn_SERIAL_CONSOLE Setting" #endif @@ -351,26 +208,6 @@ UART_MR_CHMODE_NORMAL) #endif -/************************************************************************** - * Private Types - **************************************************************************/ - -/************************************************************************** - * Private Function Prototypes - **************************************************************************/ - -/************************************************************************** - * Global Variables - **************************************************************************/ - -/************************************************************************** - * Private Variables - **************************************************************************/ - -/************************************************************************** - * Private Functions - **************************************************************************/ - /************************************************************************** * Public Functions **************************************************************************/ @@ -385,7 +222,7 @@ void up_lowputc(char ch) { -#if defined(HAVE_UART_CONSOLE) +#if defined(SAMA5_HAVE_SERIAL_CONSOLE) irqstate_t flags; for (;;) @@ -450,7 +287,7 @@ void up_lowputc(char ch) int up_putc(int ch) { -#if defined(HAVE_UART_CONSOLE) || defined(CONFIG_SAMA5_DBGU_CONSOLE) +#if defined(SAMA5_HAVE_SERIAL_CONSOLE) || defined(CONFIG_SAMA5_DBGU_CONSOLE) /* Check for LF */ if (ch == '\n') @@ -461,9 +298,9 @@ int up_putc(int ch) } up_lowputc(ch); +#endif return ch; } -#endif /************************************************************************** * Name: sam_lowsetup @@ -477,7 +314,9 @@ int up_putc(int ch) void sam_lowsetup(void) { - /* Enable clocking for all selected UART/USARTs */ + /* Enable clocking for all selected UART/USARTs (USARTs may not + * necessarily be configured as UARTs). + */ #ifdef CONFIG_SAMA5_UART0 sam_uart0_enableclk(); @@ -494,7 +333,7 @@ void sam_lowsetup(void) #ifdef CONFIG_SAMA5_UART4 sam_uart4_enableclk(); #endif -#ifdef CONFIG_SAMA5_USART0 +#ifdef CONFIG_USART0_ISUART sam_usart0_enableclk(); #endif #ifdef CONFIG_SAMA5_USART1 @@ -507,7 +346,9 @@ void sam_lowsetup(void) sam_usart3_enableclk(); #endif - /* Configure UART pins for all selected UART/USARTs */ + /* Configure UART pins for all selected UART/USARTs. USARTs pins are + * only configured if the USART is also configured as as a UART. + */ #ifdef CONFIG_SAMA5_UART0 (void)sam_configpio(PIO_UART0_RXD); @@ -534,7 +375,7 @@ void sam_lowsetup(void) (void)sam_configpio(PIO_UART4_TXD); #endif -#ifdef CONFIG_SAMA5_USART0 +#if defined(CONFIG_USART0_ISUART) && defined(CONFIG_SAMA5_USART0) (void)sam_configpio(PIO_USART0_RXD); (void)sam_configpio(PIO_USART0_TXD); #ifdef CONFIG_USART0_OFLOWCONTROL @@ -545,7 +386,7 @@ void sam_lowsetup(void) #endif #endif -#ifdef CONFIG_SAMA5_USART1 +#if defined(CONFIG_USART1_ISUART) && defined(CONFIG_SAMA5_USART1) (void)sam_configpio(PIO_USART1_RXD); (void)sam_configpio(PIO_USART1_TXD); #ifdef CONFIG_USART1_OFLOWCONTROL @@ -556,7 +397,7 @@ void sam_lowsetup(void) #endif #endif -#ifdef CONFIG_SAMA5_USART2 +#if defined(CONFIG_USART2_ISUART) && defined(CONFIG_SAMA5_USART2) (void)sam_configpio(PIO_USART2_RXD); (void)sam_configpio(PIO_USART2_TXD); #ifdef CONFIG_USART2_OFLOWCONTROL @@ -567,7 +408,7 @@ void sam_lowsetup(void) #endif #endif -#ifdef CONFIG_SAMA5_USART3 +#if defined(CONFIG_USART3_ISUART) && defined(CONFIG_SAMA5_USART3) (void)sam_configpio(PIO_USART3_RXD); (void)sam_configpio(PIO_USART3_TXD); #ifdef CONFIG_USART3_OFLOWCONTROL @@ -576,11 +417,22 @@ void sam_lowsetup(void) #ifdef CONFIG_USART3_IFLOWCONTROL (void)sam_configpio(PIO_USART3_RTS); #endif +#endif + +#if defined(CONFIG_USART4_ISUART) && defined(CONFIG_SAMA5_USART4) + (void)sam_configpio(PIO_USART4_RXD); + (void)sam_configpio(PIO_USART4_TXD); +#ifdef CONFIG_USART4_OFLOWCONTROL + (void)sam_configpio(PIO_USART4_CTS); +#endif +#ifdef CONFIG_USART4_IFLOWCONTROL + (void)sam_configpio(PIO_USART4_RTS); +#endif #endif /* Configure the console (only) */ -#if defined(HAVE_UART_CONSOLE) && !defined(SUPPRESS_CONSOLE_CONFIG) +#if defined(SAMA5_HAVE_SERIAL_CONSOLE) && !defined(SUPPRESS_CONSOLE_CONFIG) /* Reset and disable receiver and transmitter */ putreg32((UART_CR_RSTRX | UART_CR_RSTTX | UART_CR_RXDIS | UART_CR_TXDIS), diff --git a/arch/arm/src/sama5/sam_serial.c b/arch/arm/src/sama5/sam_serial.c index 62c5f31fa1..6d75afec35 100644 --- a/arch/arm/src/sama5/sam_serial.c +++ b/arch/arm/src/sama5/sam_serial.c @@ -64,6 +64,7 @@ #include "chip.h" #include "chip/sam_uart.h" +#include "sam_config.h" #include "sam_dbgu.h" #include "sam_serial.h" @@ -71,192 +72,6 @@ * Pre-processor Definitions ****************************************************************************/ -/* Some sanity checks *******************************************************/ - -/* If the USART is not being used as a UART, then it really isn't enabled - * for our purposes. - */ - -#ifndef CONFIG_USART0_ISUART -# undef CONFIG_SAMA5_USART0 -#endif -#ifndef CONFIG_USART1_ISUART -# undef CONFIG_SAMA5_USART1 -#endif -#ifndef CONFIG_USART2_ISUART -# undef CONFIG_SAMA5_USART2 -#endif -#ifndef CONFIG_USART3_ISUART -# undef CONFIG_SAMA5_USART3 -#endif -#ifndef CONFIG_USART4_ISUART -# undef CONFIG_SAMA5_USART4 -#endif - -/* Is there a USART/USART enabled? */ - -#if defined(CONFIG_SAMA5_UART0) || defined(CONFIG_SAMA5_UART1) || \ - defined(CONFIG_SAMA5_UART2) || defined(CONFIG_SAMA5_UART3) || \ - defined(CONFIG_SAMA5_UART4) -# define HAVE_UART -#endif - -#if defined(CONFIG_SAMA5_USART0) || defined(CONFIG_SAMA5_USART1) || \ - defined(CONFIG_SAMA5_USART2) || defined(CONFIG_SAMA5_USART3) || \ - defined(CONFIG_SAMA5_USART4) -# define HAVE_USART -#endif - -/* Is there a serial console? It could be on UART0-1 or USART0-3 */ - -#if defined(CONFIG_SAMA5_DBGU_CONSOLE) && defined(CONFIG_SAMA5_DBGU) -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# undef CONFIG_USART4_SERIAL_CONSOLE -# undef HAVE_UART_CONSOLE -#elif defined(CONFIG_UART0_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_UART0) -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# undef CONFIG_USART4_SERIAL_CONSOLE -# define HAVE_UART_CONSOLE 1 -#elif defined(CONFIG_UART1_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_UART1) -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# undef CONFIG_USART4_SERIAL_CONSOLE -# define HAVE_UART_CONSOLE 1 -#elif defined(CONFIG_UART2_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_UART2) -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# undef CONFIG_USART4_SERIAL_CONSOLE -# define HAVE_UART_CONSOLE 1 -#elif defined(CONFIG_UART3_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_UART3) -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# undef CONFIG_USART4_SERIAL_CONSOLE -# define HAVE_UART_CONSOLE 1 -#elif defined(CONFIG_UART4_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_UART4) -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# undef CONFIG_USART4_SERIAL_CONSOLE -# define HAVE_UART_CONSOLE 1 -#elif defined(CONFIG_USART0_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_USART0) -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# undef CONFIG_USART4_SERIAL_CONSOLE -# define HAVE_UART_CONSOLE 1 -#elif defined(CONFIG_USART1_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_USART1) -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# undef CONFIG_USART4_SERIAL_CONSOLE -# define HAVE_UART_CONSOLE 1 -#elif defined(CONFIG_USART2_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_USART2) -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# undef CONFIG_USART4_SERIAL_CONSOLE -# define HAVE_UART_CONSOLE 1 -#elif defined(CONFIG_USART3_SERIAL_CONSOLE) && defined(CONFIG_SAMA5_USART3) -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART4_SERIAL_CONSOLE -# define HAVE_UART_CONSOLE 1 -#elif defined(CONFIG_USART4_SERIAL_CONSOLE) && defined(CONFIG_SAMA4_USART4) -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# define HAVE_UART_CONSOLE 1 -#else -# warning "No valid CONFIG_USARTn_SERIAL_CONSOLE Setting" -# undef CONFIG_SAMA5_DBGU_CONSOLE -# undef CONFIG_UART0_SERIAL_CONSOLE -# undef CONFIG_UART1_SERIAL_CONSOLE -# undef CONFIG_UART2_SERIAL_CONSOLE -# undef CONFIG_UART3_SERIAL_CONSOLE -# undef CONFIG_UART4_SERIAL_CONSOLE -# undef CONFIG_USART0_SERIAL_CONSOLE -# undef CONFIG_USART1_SERIAL_CONSOLE -# undef CONFIG_USART2_SERIAL_CONSOLE -# undef CONFIG_USART3_SERIAL_CONSOLE -# undef CONFIG_USART4_SERIAL_CONSOLE -# undef HAVE_UART_CONSOLE -#endif - /* If we are not using the serial driver for the console, then we still must * provide some minimal implementation of up_putc. */ @@ -284,7 +99,7 @@ #undef USART3_ASSIGNED #undef USART4_ASSIGNED -#if defined(HAVE_UART) || defined(HAVE_USART) +#if defined(SAMA5_HAVE_UART) || defined(SAMA5_HAVE_USART) /* Which UART/USART with be tty0/console and which tty1? tty2? tty3? ... tty9? */ @@ -347,19 +162,19 @@ # elif defined(CONFIG_SAMA5_UART4) # define TTYS0_DEV g_uart1port /* UART4 is ttyS0 */ # define UART4_ASSIGNED 1 -# elif defined(CONFIG_SAMA5_USART0) +# elif defined(CONFIG_USART0_ISUART) # define TTYS0_DEV g_usart0port /* USART0 is ttyS0 */ # define USART0_ASSIGNED 1 -# elif defined(CONFIG_SAMA5_USART1) +# elif defined(CONFIG_USART1_ISUART) # define TTYS0_DEV g_usart1port /* USART1 is ttyS0 */ # define USART1_ASSIGNED 1 -# elif defined(CONFIG_SAMA5_USART2) +# elif defined(CONFIG_USART2_ISUART) # define TTYS0_DEV g_usart2port /* USART2 is ttyS0 */ # define USART2_ASSIGNED 1 -# elif defined(CONFIG_SAMA5_USART3) +# elif defined(CONFIG_USART3_ISUART) # define TTYS0_DEV g_usart3port /* USART3 is ttyS0 */ # define USART3_ASSIGNED 1 -# elif defined(CONFIG_SAMA5_USART4) +# elif defined(CONFIG_USART4_ISUART) # define TTYS0_DEV g_usart4port /* USART4 is ttyS0 */ # define USART4_ASSIGNED 4 # endif @@ -382,19 +197,19 @@ #elif defined(CONFIG_SAMA5_UART4) && !defined(UART4_ASSIGNED) # define TTYS1_DEV g_uart1port /* UART4 is ttyS1 */ # define UART4_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART0) && !defined(USART0_ASSIGNED) +#elif defined(CONFIG_USART0_ISUART) && !defined(USART0_ASSIGNED) # define TTYS1_DEV g_usart0port /* USART0 is ttyS1 */ # define USART0_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART1) && !defined(USART1_ASSIGNED) +#elif defined(CONFIG_USART1_ISUART) && !defined(USART1_ASSIGNED) # define TTYS1_DEV g_usart1port /* USART1 is ttyS1 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART2) && !defined(USART2_ASSIGNED) +#elif defined(CONFIG_USART2_ISUART) && !defined(USART2_ASSIGNED) # define TTYS1_DEV g_usart2port /* USART2 is ttyS1 */ # define USART2_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART3) && !defined(USART3_ASSIGNED) +#elif defined(CONFIG_USART3_ISUART) && !defined(USART3_ASSIGNED) # define TTYS1_DEV g_usart3port /* USART3 is ttyS1 */ # define USART3_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART4) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) # define TTYS1_DEV g_usart4port /* USART4 is ttyS1 */ # define USART4_ASSIGNED 1 #endif @@ -416,19 +231,19 @@ #elif defined(CONFIG_SAMA5_UART4) && !defined(UART4_ASSIGNED) # define TTYS2_DEV g_uart1port /* UART4 is ttyS2 */ # define UART4_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART0) && !defined(USART0_ASSIGNED) +#elif defined(CONFIG_USART0_ISUART) && !defined(USART0_ASSIGNED) # define TTYS2_DEV g_usart0port /* USART0 is ttyS2 */ # define USART0_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART1) && !defined(USART1_ASSIGNED) +#elif defined(CONFIG_USART1_ISUART) && !defined(USART1_ASSIGNED) # define TTYS2_DEV g_usart1port /* USART1 is ttyS2 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART2) && !defined(USART2_ASSIGNED) +#elif defined(CONFIG_USART2_ISUART) && !defined(USART2_ASSIGNED) # define TTYS2_DEV g_usart2port /* USART2 is ttyS2 */ # define USART2_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART3) && !defined(USART3_ASSIGNED) +#elif defined(CONFIG_USART3_ISUART) && !defined(USART3_ASSIGNED) # define TTYS2_DEV g_usart3port /* USART3 is ttyS2 */ # define USART3_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART4) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) # define TTYS2_DEV g_usart4port /* USART4 is ttyS2 */ # define USART4_ASSIGNED 1 #endif @@ -447,19 +262,19 @@ #elif defined(CONFIG_SAMA5_UART4) && !defined(UART4_ASSIGNED) # define TTYS3_DEV g_uart1port /* UART4 is ttyS3 */ # define UART4_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART0) && !defined(USART0_ASSIGNED) +#elif defined(CONFIG_USART0_ISUART) && !defined(USART0_ASSIGNED) # define TTYS3_DEV g_usart0port /* USART0 is ttyS3 */ # define USART0_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART1) && !defined(USART1_ASSIGNED) +#elif defined(CONFIG_USART1_ISUART) && !defined(USART1_ASSIGNED) # define TTYS3_DEV g_usart1port /* USART1 is ttyS3 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART2) && !defined(USART2_ASSIGNED) +#elif defined(CONFIG_USART2_ISUART) && !defined(USART2_ASSIGNED) # define TTYS3_DEV g_usart2port /* USART2 is ttyS3 */ # define USART2_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART3) && !defined(USART3_ASSIGNED) +#elif defined(CONFIG_USART3_ISUART) && !defined(USART3_ASSIGNED) # define TTYS3_DEV g_usart3port /* USART3 is ttyS3 */ # define USART3_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART4) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) # define TTYS3_DEV g_usart4port /* USART4 is ttyS3 */ # define USART4_ASSIGNED 1 #endif @@ -475,19 +290,19 @@ #elif defined(CONFIG_SAMA5_UART4) && !defined(UART4_ASSIGNED) # define TTYS4_DEV g_uart1port /* UART4 is ttyS4 */ # define UART4_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART0) && !defined(USART0_ASSIGNED) +#elif defined(CONFIG_USART0_ISUART) && !defined(USART0_ASSIGNED) # define TTYS4_DEV g_usart0port /* USART0 is ttyS4 */ # define USART0_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART1) && !defined(USART1_ASSIGNED) +#elif defined(CONFIG_USART1_ISUART) && !defined(USART1_ASSIGNED) # define TTYS4_DEV g_usart1port /* USART1 is ttyS4 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART2) && !defined(USART2_ASSIGNED) +#elif defined(CONFIG_USART2_ISUART) && !defined(USART2_ASSIGNED) # define TTYS4_DEV g_usart2port /* USART2 is ttyS4 */ # define USART2_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART3) && !defined(USART3_ASSIGNED) +#elif defined(CONFIG_USART3_ISUART) && !defined(USART3_ASSIGNED) # define TTYS4_DEV g_usart3port /* USART3 is ttyS4 */ # define USART3_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART4) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) # define TTYS4_DEV g_usart4port /* USART4 is ttyS4 */ # define USART4_ASSIGNED 1 #endif @@ -500,19 +315,19 @@ #if defined(CONFIG_SAMA5_UART4) && !defined(UART4_ASSIGNED) # define TTYS5_DEV g_uart4port /* UART4 is ttyS5 */ # define UART1_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART0) && !defined(USART0_ASSIGNED) +#elif defined(CONFIG_USART0_ISUART) && !defined(USART0_ASSIGNED) # define TTYS5_DEV g_usart0port /* USART0 is ttyS5 */ # define USART0_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART1) && !defined(USART1_ASSIGNED) +#elif defined(CONFIG_USART1_ISUART) && !defined(USART1_ASSIGNED) # define TTYS5_DEV g_usart1port /* USART1 is ttyS5 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART2) && !defined(USART2_ASSIGNED) +#elif defined(CONFIG_USART2_ISUART) && !defined(USART2_ASSIGNED) # define TTYS5_DEV g_usart2port /* USART2 is ttyS5 */ # define USART2_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART3) && !defined(USART3_ASSIGNED) +#elif defined(CONFIG_USART3_ISUART) && !defined(USART3_ASSIGNED) # define TTYS5_DEV g_usart3port /* USART3 is ttyS5 */ # define USART3_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART4) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) # define TTYS5_DEV g_usart4port /* USART4 is ttyS5 */ # define USART4_ASSIGNED 1 #endif @@ -522,19 +337,19 @@ * could also be the console. */ -#if defined(CONFIG_SAMA5_USART0) && !defined(USART0_ASSIGNED) +#if defined(CONFIG_USART0_ISUART) && !defined(USART0_ASSIGNED) # define TTYS6_DEV g_usart0port /* USART0 is ttyS6 */ # define USART0_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART1) && !defined(USART1_ASSIGNED) +#elif defined(CONFIG_USART1_ISUART) && !defined(USART1_ASSIGNED) # define TTYS6_DEV g_usart1port /* USART1 is ttyS6 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART2) && !defined(USART2_ASSIGNED) +#elif defined(CONFIG_USART2_ISUART) && !defined(USART2_ASSIGNED) # define TTYS6_DEV g_usart2port /* USART2 is ttyS6 */ # define USART2_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART3) && !defined(USART3_ASSIGNED) +#elif defined(CONFIG_USART3_ISUART) && !defined(USART3_ASSIGNED) # define TTYS6_DEV g_usart3port /* USART3 is ttyS6 */ # define USART3_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART4) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) # define TTYS6_DEV g_usart4port /* USART4 is ttyS6 */ # define USART4_ASSIGNED 1 #endif @@ -544,16 +359,16 @@ * USART1-4 could also be the console. */ -#if defined(CONFIG_SAMA5_USART1) && !defined(USART1_ASSIGNED) +#if defined(CONFIG_USART1_ISUART) && !defined(USART1_ASSIGNED) # define TTYS7_DEV g_usart1port /* USART1 is ttyS7 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART2) && !defined(USART2_ASSIGNED) +#elif defined(CONFIG_USART2_ISUART) && !defined(USART2_ASSIGNED) # define TTYS7_DEV g_usart2port /* USART2 is ttyS7 */ # define USART2_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART3) && !defined(USART3_ASSIGNED) +#elif defined(CONFIG_USART3_ISUART) && !defined(USART3_ASSIGNED) # define TTYS7_DEV g_usart3port /* USART3 is ttyS7 */ # define USART3_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART4) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) # define TTYS7_DEV g_usart4port /* USART4 is ttyS7 */ # define USART4_ASSIGNED 1 #endif @@ -563,13 +378,13 @@ * USART2-4 could also be the console. */ -#if defined(CONFIG_SAMA5_USART2) && !defined(USART2_ASSIGNED) +#if defined(CONFIG_USART2_ISUART) && !defined(USART2_ASSIGNED) # define TTYS8_DEV g_usart2port /* USART2 is ttyS8 */ # define USART2_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART3) && !defined(USART3_ASSIGNED) +#elif defined(CONFIG_USART3_ISUART) && !defined(USART3_ASSIGNED) # define TTYS8_DEV g_usart3port /* USART3 is ttyS8 */ # define USART3_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART4) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) # define TTYS8_DEV g_usart4port /* USART4 is ttyS8 */ # define USART4_ASSIGNED 1 #endif @@ -579,10 +394,10 @@ * USART3-4 could also be the console. */ -#if defined(CONFIG_SAMA5_USART3) && !defined(USART3_ASSIGNED) +#if defined(CONFIG_USART3_ISUART) && !defined(USART3_ASSIGNED) # define TTYS9_DEV g_usart3port /* USART3 is ttyS9 */ # define USART3_ASSIGNED 1 -#elif defined(CONFIG_SAMA5_USART4) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) # define TTYS9_DEV g_usart4port /* USART4 is ttyS9 */ # define USART4_ASSIGNED 1 #endif @@ -673,23 +488,23 @@ static char g_uart3txbuffer[CONFIG_UART3_TXBUFSIZE]; static char g_uart4rxbuffer[CONFIG_UART4_RXBUFSIZE]; static char g_uart4txbuffer[CONFIG_UART4_TXBUFSIZE]; #endif -#ifdef CONFIG_SAMA5_USART0 +#ifdef CONFIG_USART0_ISUART static char g_usart0rxbuffer[CONFIG_USART0_RXBUFSIZE]; static char g_usart0txbuffer[CONFIG_USART0_TXBUFSIZE]; #endif -#ifdef CONFIG_SAMA5_USART1 +#ifdef CONFIG_USART1_ISUART static char g_usart1rxbuffer[CONFIG_USART1_RXBUFSIZE]; static char g_usart1txbuffer[CONFIG_USART1_TXBUFSIZE]; #endif -#ifdef CONFIG_SAMA5_USART2 +#ifdef CONFIG_USART2_ISUART static char g_usart2rxbuffer[CONFIG_USART2_RXBUFSIZE]; static char g_usart2txbuffer[CONFIG_USART2_TXBUFSIZE]; #endif -#ifdef CONFIG_SAMA5_USART3 +#ifdef CONFIG_USART3_ISUART static char g_usart3rxbuffer[CONFIG_USART3_RXBUFSIZE]; static char g_usart3txbuffer[CONFIG_USART3_TXBUFSIZE]; #endif -#ifdef CONFIG_SAMA5_USART4 +#ifdef CONFIG_USART4_ISUART static char g_usart4rxbuffer[CONFIG_USART4_RXBUFSIZE]; static char g_usart4txbuffer[CONFIG_USART4_TXBUFSIZE]; #endif @@ -896,7 +711,7 @@ static uart_dev_t g_uart4port = /* This describes the state of the USART0 port. */ -#ifdef CONFIG_SAMA5_USART0 +#ifdef CONFIG_USART0_ISUART static struct up_dev_s g_usart0priv = { .usartbase = SAM_USART0_VBASE, @@ -929,7 +744,7 @@ static uart_dev_t g_usart0port = /* This describes the state of the USART1 port. */ -#ifdef CONFIG_SAMA5_USART1 +#ifdef CONFIG_USART1_ISUART static struct up_dev_s g_usart1priv = { .usartbase = SAM_USART1_VBASE, @@ -962,7 +777,7 @@ static uart_dev_t g_usart1port = /* This describes the state of the USART2 port. */ -#ifdef CONFIG_SAMA5_USART2 +#ifdef CONFIG_USART2_ISUART static struct up_dev_s g_usart2priv = { .usartbase = SAM_USART2_VBASE, @@ -995,7 +810,7 @@ static uart_dev_t g_usart2port = /* This describes the state of the USART3 port. */ -#ifdef CONFIG_SAMA5_USART3 +#ifdef CONFIG_USART3_ISUART static struct up_dev_s g_usart3priv = { .usartbase = SAM_USART3_VBASE, @@ -1028,7 +843,7 @@ static uart_dev_t g_usart3port = /* This describes the state of the USART4 port. */ -#ifdef CONFIG_SAMA5_USART4 +#ifdef CONFIG_USART4_ISUART static struct up_dev_s g_usart4priv = { .usartbase = SAM_USART4_VBASE, @@ -1187,7 +1002,7 @@ static int up_setup(struct uart_dev_s *dev) { regval |= UART_MR_CHRL_7BITS; /* 7 bits */ } -#ifdef HAVE_USART +#ifdef SAMA5_HAVE_USART else if (priv->bits == 9 #if defined(CONFIG_SAMA5_UART0) && priv->usartbase != SAM_UART0_VBASE @@ -1392,35 +1207,35 @@ static int up_interrupt(int irq, void *context) } else #endif -#ifdef CONFIG_SAMA5_USART0 +#ifdef CONFIG_USART0_ISUART if (g_usart0priv.irq == irq) { dev = &g_usart0port; } else #endif -#ifdef CONFIG_SAMA5_USART1 +#ifdef CONFIG_USART1_ISUART if (g_usart1priv.irq == irq) { dev = &g_usart1port; } else #endif -#ifdef CONFIG_SAMA5_USART2 +#ifdef CONFIG_USART2_ISUART if (g_usart2priv.irq == irq) { dev = &g_usart2port; } else #endif -#ifdef CONFIG_SAMA5_USART3 +#ifdef CONFIG_USART3_ISUART if (g_usart3priv.irq == irq) { dev = &g_usart3port; } else #endif -#ifdef CONFIG_SAMA5_USART4 +#ifdef CONFIG_USART4_ISUART if (g_usart4priv.irq == irq) { dev = &g_usart4port; @@ -1826,7 +1641,7 @@ static bool up_txempty(struct uart_dev_s *dev) return ((up_serialin(priv, SAM_UART_SR_OFFSET) & UART_INT_TXEMPTY) != 0); } -#endif /* HAVE_UART || HAVE_USART */ +#endif /* SAMA5_HAVE_UART || SAMA5_HAVE_USART */ /**************************************************************************** * Public Functions @@ -1883,7 +1698,7 @@ void sam_earlyserialinit(void) /* Configuration whichever one is the console */ -#ifdef HAVE_UART_CONSOLE +#ifdef SAMA5_HAVE_SERIAL_CONSOLE CONSOLE_DEV.isconsole = true; up_setup(&CONSOLE_DEV); #endif @@ -1902,7 +1717,7 @@ void up_serialinit(void) { /* Register the console */ -#ifdef HAVE_UART_CONSOLE +#ifdef SAMA5_HAVE_SERIAL_CONSOLE (void)uart_register("/dev/console", &CONSOLE_DEV); #endif