[U-Boot] [RFC] AT91SAM9 series - cleanup USART definitions
Reinhard Meyer
reinhard.meyer at emk-elektronik.de
Tue Jun 29 20:32:34 CEST 2010
Hi,
AT91SAM9 based boards have something like this in their include/configs
file:
#define CONFIG_ATMEL_USART 1
#undef CONFIG_USART0
#undef CONFIG_USART1
#undef CONFIG_USART2
#define CONFIG_USART3 1 /* USART 3 is DBGU */
these defines are used in drivers/serial/atmel_usart.c:
#if defined(CONFIG_USART0)
# define USART_ID 0
# define USART_BASE USART0_BASE
#elif defined(CONFIG_USART1)
# define USART_ID 1
# define USART_BASE USART1_BASE
#elif defined(CONFIG_USART2)
# define USART_ID 2
# define USART_BASE USART2_BASE
#elif defined(CONFIG_USART3)
# define USART_ID 3
# define USART_BASE USART3_BASE
#endif
USARTx_BASE is defined in arch/arm/include/asm/arch-at91/memory_map.h:
#define USART0_BASE AT91_USART0
#define USART1_BASE AT91_USART1
#define USART2_BASE AT91_USART2
#define USART3_BASE (AT91_BASE_SYS + AT91_DBGU)
#define SPI0_BASE AT91_BASE_SPI
(note that nothing else is defined in that file!)
AT91_USARTx finally comes from arch/arm/include/asm/arch-at91/at91sam*.h:
#define AT91_USART0 AT91SAM9260_BASE_US0
#define AT91_USART1 AT91SAM9260_BASE_US1
#define AT91_USART2 AT91SAM9260_BASE_US2
#define AT91_USART3 AT91SAM9260_BASE_US3
#define AT91_USART4 AT91SAM9260_BASE_US4
#define AT91_USART5 AT91SAM9260_BASE_US5
1. memory_map.h is misleading, it just defines a few USARTs and one SPI
2. equalling CONFIG_USART3 with the debug UART is plain wrong, the 9260
for example has 6 'regular' USARTs (0..5) plus the debug UART
I propose to make the following changes:
1. get rid of memory_map.h and the references to it, move the USART
definitions to the respective at91sam*.h files
2. use DBU_BASE for the debug UART, leaving USART[0-5]_BASE to adress
the 'regular' USARTs
3. use CONFIG_UARTDEBUG to indicate use of the debug UART for console output
Note for those that don't want to dig the datasheets: the debug UART is
software compatible to the 'regular' USARTs as long as only asynchronous
features are used (true for the atmel_usart.c driver)
Reinhard
More information about the U-Boot
mailing list