[PATCH] at91: serial: pullup RX pins, do not pullup TX pins

Sascha Hauer s.hauer at pengutronix.de
Mon Feb 13 23:55:56 PST 2017


On Mon, Feb 13, 2017 at 06:06:56PM +0100, Peter Rosin wrote:
> We have a number of sama5d3 devices that sometimes hangs at the
> barebox prompt during boot due to floating RX pins. This patch
> fixes the problem for us (and probably others). It is similar in
> nature to linux kernel commit 138c2b2f175b ("ARM: dts: at91: fixes
> dbgu pinctrl, set pullup on rx, clear pullup on tx")
> 
> While at it, remove pointless waste of power that the pullup of
> the TX pins causes and fix the signal comments for SAMA5D4.
> 
> Signed-off-by: Peter Rosin <peda at axentia.se>
> ---
>  arch/arm/mach-at91/at91rm9200_devices.c  | 20 ++++++++++----------
>  arch/arm/mach-at91/at91sam9260_devices.c | 28 ++++++++++++++--------------
>  arch/arm/mach-at91/at91sam9261_devices.c | 16 ++++++++--------
>  arch/arm/mach-at91/at91sam9263_devices.c | 16 ++++++++--------
>  arch/arm/mach-at91/at91sam9g45_devices.c | 20 ++++++++++----------
>  arch/arm/mach-at91/at91sam9n12_devices.c | 20 ++++++++++----------
>  arch/arm/mach-at91/at91sam9x5_devices.c  | 20 ++++++++++----------
>  arch/arm/mach-at91/sama5d3_devices.c     | 12 ++++++------
>  arch/arm/mach-at91/sama5d4_devices.c     | 32 ++++++++++++++++----------------
>  9 files changed, 92 insertions(+), 92 deletions(-)
> 
> This is resend with the correct barebox ML address (hopefully). Sorry about
> that...

Appearantly it was the correct address ;)

Applied, thanks

Sascha


> 
> Cheers,
> peda
> 
> diff --git a/arch/arm/mach-at91/at91rm9200_devices.c b/arch/arm/mach-at91/at91rm9200_devices.c
> index 7b68cda..a110ee3 100644
> --- a/arch/arm/mach-at91/at91rm9200_devices.c
> +++ b/arch/arm/mach-at91/at91rm9200_devices.c
> @@ -250,16 +250,16 @@ void __init at91_add_device_spi(int spi_id, struct at91_spi_platform_data *pdata
>  
>  resource_size_t __init at91_configure_dbgu(void)
>  {
> -	at91_set_A_periph(AT91_PIN_PA30, 0);		/* DRXD */
> -	at91_set_A_periph(AT91_PIN_PA31, 1);		/* DTXD */
> +	at91_set_A_periph(AT91_PIN_PA30, 1);		/* DRXD */
> +	at91_set_A_periph(AT91_PIN_PA31, 0);		/* DTXD */
>  
>  	return AT91_BASE_SYS + AT91_DBGU;
>  }
>  
>  resource_size_t __init at91_configure_usart0(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PA17, 1);		/* TXD0 */
> -	at91_set_A_periph(AT91_PIN_PA18, 0);		/* RXD0 */
> +	at91_set_A_periph(AT91_PIN_PA17, 0);		/* TXD0 */
> +	at91_set_A_periph(AT91_PIN_PA18, 1);		/* RXD0 */
>  
>  	if (pins & ATMEL_UART_CTS)
>  		at91_set_A_periph(AT91_PIN_PA20, 0);	/* CTS0 */
> @@ -277,8 +277,8 @@ resource_size_t __init at91_configure_usart0(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart1(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PB20, 1);		/* TXD1 */
> -	at91_set_A_periph(AT91_PIN_PB21, 0);		/* RXD1 */
> +	at91_set_A_periph(AT91_PIN_PB20, 0);		/* TXD1 */
> +	at91_set_A_periph(AT91_PIN_PB21, 1);		/* RXD1 */
>  
>  	if (pins & ATMEL_UART_RI)
>  		at91_set_A_periph(AT91_PIN_PB18, 0);	/* RI1 */
> @@ -298,8 +298,8 @@ resource_size_t __init at91_configure_usart1(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart2(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PA22, 0);		/* RXD2 */
> -	at91_set_A_periph(AT91_PIN_PA23, 1);		/* TXD2 */
> +	at91_set_A_periph(AT91_PIN_PA22, 1);		/* RXD2 */
> +	at91_set_A_periph(AT91_PIN_PA23, 0);		/* TXD2 */
>  
>  	if (pins & ATMEL_UART_CTS)
>  		at91_set_B_periph(AT91_PIN_PA30, 0);	/* CTS2 */
> @@ -311,8 +311,8 @@ resource_size_t __init at91_configure_usart2(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart3(unsigned pins)
>  {
> -	at91_set_B_periph(AT91_PIN_PA5, 1);		/* TXD3 */
> -	at91_set_B_periph(AT91_PIN_PA6, 0);		/* RXD3 */
> +	at91_set_B_periph(AT91_PIN_PA5, 0);		/* TXD3 */
> +	at91_set_B_periph(AT91_PIN_PA6, 1);		/* RXD3 */
>  
>  	if (pins & ATMEL_UART_CTS)
>  		at91_set_B_periph(AT91_PIN_PB1, 0);	/* CTS3 */
> diff --git a/arch/arm/mach-at91/at91sam9260_devices.c b/arch/arm/mach-at91/at91sam9260_devices.c
> index 67c4ea8..99919b3 100644
> --- a/arch/arm/mach-at91/at91sam9260_devices.c
> +++ b/arch/arm/mach-at91/at91sam9260_devices.c
> @@ -261,16 +261,16 @@ void __init at91_add_device_spi(int spi_id, struct at91_spi_platform_data *pdata
>  
>  resource_size_t __init at91_configure_dbgu(void)
>  {
> -	at91_set_A_periph(AT91_PIN_PB14, 0);		/* DRXD */
> -	at91_set_A_periph(AT91_PIN_PB15, 1);		/* DTXD */
> +	at91_set_A_periph(AT91_PIN_PB14, 1);		/* DRXD */
> +	at91_set_A_periph(AT91_PIN_PB15, 0);		/* DTXD */
>  
>  	return AT91_BASE_SYS + AT91_DBGU;
>  }
>  
>  resource_size_t __init at91_configure_usart0(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PB4, 1);		/* TXD0 */
> -	at91_set_A_periph(AT91_PIN_PB5, 0);		/* RXD0 */
> +	at91_set_A_periph(AT91_PIN_PB4, 0);		/* TXD0 */
> +	at91_set_A_periph(AT91_PIN_PB5, 1);		/* RXD0 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_A_periph(AT91_PIN_PB26, 0);	/* RTS0 */
> @@ -290,8 +290,8 @@ resource_size_t __init at91_configure_usart0(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart1(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PB6, 1);		/* TXD1 */
> -	at91_set_A_periph(AT91_PIN_PB7, 0);		/* RXD1 */
> +	at91_set_A_periph(AT91_PIN_PB6, 0);		/* TXD1 */
> +	at91_set_A_periph(AT91_PIN_PB7, 1);		/* RXD1 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_A_periph(AT91_PIN_PB28, 0);	/* RTS1 */
> @@ -303,8 +303,8 @@ resource_size_t __init at91_configure_usart1(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart2(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PB8, 1);		/* TXD2 */
> -	at91_set_A_periph(AT91_PIN_PB9, 0);		/* RXD2 */
> +	at91_set_A_periph(AT91_PIN_PB8, 0);		/* TXD2 */
> +	at91_set_A_periph(AT91_PIN_PB9, 1);		/* RXD2 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_A_periph(AT91_PIN_PA4, 0);	/* RTS2 */
> @@ -316,8 +316,8 @@ resource_size_t __init at91_configure_usart2(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart3(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PB10, 1);		/* TXD3 */
> -	at91_set_A_periph(AT91_PIN_PB11, 0);		/* RXD3 */
> +	at91_set_A_periph(AT91_PIN_PB10, 0);		/* TXD3 */
> +	at91_set_A_periph(AT91_PIN_PB11, 1);		/* RXD3 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_B_periph(AT91_PIN_PC8, 0);	/* RTS3 */
> @@ -329,16 +329,16 @@ resource_size_t __init at91_configure_usart3(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart4(unsigned pins)
>  {
> -	at91_set_B_periph(AT91_PIN_PA31, 1);		/* TXD4 */
> -	at91_set_B_periph(AT91_PIN_PA30, 0);		/* RXD4 */
> +	at91_set_B_periph(AT91_PIN_PA31, 0);		/* TXD4 */
> +	at91_set_B_periph(AT91_PIN_PA30, 1);		/* RXD4 */
>  
>  	return AT91SAM9260_BASE_US4;
>  }
>  
>  resource_size_t __init at91_configure_usart5(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PB12, 1);		/* TXD5 */
> -	at91_set_A_periph(AT91_PIN_PB13, 0);		/* RXD5 */
> +	at91_set_A_periph(AT91_PIN_PB12, 0);		/* TXD5 */
> +	at91_set_A_periph(AT91_PIN_PB13, 1);		/* RXD5 */
>  
>  	return AT91SAM9260_BASE_US5;
>  }
> diff --git a/arch/arm/mach-at91/at91sam9261_devices.c b/arch/arm/mach-at91/at91sam9261_devices.c
> index 620ed65..e63e0e7 100644
> --- a/arch/arm/mach-at91/at91sam9261_devices.c
> +++ b/arch/arm/mach-at91/at91sam9261_devices.c
> @@ -265,16 +265,16 @@ void __init at91_add_device_lcdc(struct atmel_lcdfb_platform_data *data) {}
>  
>  resource_size_t __init at91_configure_dbgu(void)
>  {
> -	at91_set_A_periph(AT91_PIN_PA9, 0);		/* DRXD */
> -	at91_set_A_periph(AT91_PIN_PA10, 1);		/* DTXD */
> +	at91_set_A_periph(AT91_PIN_PA9, 1);		/* DRXD */
> +	at91_set_A_periph(AT91_PIN_PA10, 0);		/* DTXD */
>  
>  	return AT91_BASE_SYS + AT91_DBGU;
>  }
>  
>  resource_size_t __init at91_configure_usart0(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PC8, 1);		/* TXD0 */
> -	at91_set_A_periph(AT91_PIN_PC9, 0);		/* RXD0 */
> +	at91_set_A_periph(AT91_PIN_PC8, 0);		/* TXD0 */
> +	at91_set_A_periph(AT91_PIN_PC9, 1);		/* RXD0 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_A_periph(AT91_PIN_PC10, 0);	/* RTS0 */
> @@ -286,8 +286,8 @@ resource_size_t __init at91_configure_usart0(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart1(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PC12, 1);		/* TXD1 */
> -	at91_set_A_periph(AT91_PIN_PC13, 0);		/* RXD1 */
> +	at91_set_A_periph(AT91_PIN_PC12, 0);		/* TXD1 */
> +	at91_set_A_periph(AT91_PIN_PC13, 1);		/* RXD1 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_B_periph(AT91_PIN_PA12, 0);	/* RTS1 */
> @@ -299,8 +299,8 @@ resource_size_t __init at91_configure_usart1(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart2(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PC15, 0);		/* RXD2 */
> -	at91_set_A_periph(AT91_PIN_PC14, 1);		/* TXD2 */
> +	at91_set_A_periph(AT91_PIN_PC15, 1);		/* RXD2 */
> +	at91_set_A_periph(AT91_PIN_PC14, 0);		/* TXD2 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_B_periph(AT91_PIN_PA15, 0);	/* RTS2*/
> diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c
> index a3683e5..559b77e 100644
> --- a/arch/arm/mach-at91/at91sam9263_devices.c
> +++ b/arch/arm/mach-at91/at91sam9263_devices.c
> @@ -296,16 +296,16 @@ void __init at91_add_device_lcdc(struct atmel_lcdfb_platform_data *data) {}
>  
>  resource_size_t __init at91_configure_dbgu(void)
>  {
> -	at91_set_A_periph(AT91_PIN_PC30, 0);		/* DRXD */
> -	at91_set_A_periph(AT91_PIN_PC31, 1);		/* DTXD */
> +	at91_set_A_periph(AT91_PIN_PC30, 1);		/* DRXD */
> +	at91_set_A_periph(AT91_PIN_PC31, 0);		/* DTXD */
>  
>  	return AT91_BASE_SYS + AT91_DBGU;
>  }
>  
>  resource_size_t __init at91_configure_usart0(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PA26, 1);		/* TXD0 */
> -	at91_set_A_periph(AT91_PIN_PA27, 0);		/* RXD0 */
> +	at91_set_A_periph(AT91_PIN_PA26, 0);		/* TXD0 */
> +	at91_set_A_periph(AT91_PIN_PA27, 1);		/* RXD0 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_A_periph(AT91_PIN_PA28, 0);	/* RTS0 */
> @@ -317,8 +317,8 @@ resource_size_t __init at91_configure_usart0(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart1(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PD0, 1);		/* TXD1 */
> -	at91_set_A_periph(AT91_PIN_PD1, 0);		/* RXD1 */
> +	at91_set_A_periph(AT91_PIN_PD0, 0);		/* TXD1 */
> +	at91_set_A_periph(AT91_PIN_PD1, 1);		/* RXD1 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_B_periph(AT91_PIN_PD7, 0);	/* RTS1 */
> @@ -330,8 +330,8 @@ resource_size_t __init at91_configure_usart1(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart2(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PD2, 1);		/* TXD2 */
> -	at91_set_A_periph(AT91_PIN_PD3, 0);		/* RXD2 */
> +	at91_set_A_periph(AT91_PIN_PD2, 0);		/* TXD2 */
> +	at91_set_A_periph(AT91_PIN_PD3, 1);		/* RXD2 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_B_periph(AT91_PIN_PD5, 0);	/* RTS2 */
> diff --git a/arch/arm/mach-at91/at91sam9g45_devices.c b/arch/arm/mach-at91/at91sam9g45_devices.c
> index bad7f9c..bc41320 100644
> --- a/arch/arm/mach-at91/at91sam9g45_devices.c
> +++ b/arch/arm/mach-at91/at91sam9g45_devices.c
> @@ -213,16 +213,16 @@ void at91_add_device_i2c(short i2c_id, struct i2c_board_info *devices, int nr_de
>  
>  resource_size_t __init at91_configure_dbgu(void)
>  {
> -	at91_set_A_periph(AT91_PIN_PB12, 0);		/* DRXD */
> -	at91_set_A_periph(AT91_PIN_PB13, 1);		/* DTXD */
> +	at91_set_A_periph(AT91_PIN_PB12, 1);		/* DRXD */
> +	at91_set_A_periph(AT91_PIN_PB13, 0);		/* DTXD */
>  
>  	return AT91_BASE_SYS + AT91_DBGU;
>  }
>  
>  resource_size_t __init at91_configure_usart0(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PB19, 1);		/* TXD0 */
> -	at91_set_A_periph(AT91_PIN_PB18, 0);		/* RXD0 */
> +	at91_set_A_periph(AT91_PIN_PB19, 0);		/* TXD0 */
> +	at91_set_A_periph(AT91_PIN_PB18, 1);		/* RXD0 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_B_periph(AT91_PIN_PB17, 0);	/* RTS0 */
> @@ -234,8 +234,8 @@ resource_size_t __init at91_configure_usart0(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart1(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PB4, 1);		/* TXD1 */
> -	at91_set_A_periph(AT91_PIN_PB5, 0);		/* RXD1 */
> +	at91_set_A_periph(AT91_PIN_PB4, 0);		/* TXD1 */
> +	at91_set_A_periph(AT91_PIN_PB5, 1);		/* RXD1 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_A_periph(AT91_PIN_PD16, 0);	/* RTS1 */
> @@ -247,8 +247,8 @@ resource_size_t __init at91_configure_usart1(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart2(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PB6, 1);		/* TXD2 */
> -	at91_set_A_periph(AT91_PIN_PB7, 0);		/* RXD2 */
> +	at91_set_A_periph(AT91_PIN_PB6, 0);		/* TXD2 */
> +	at91_set_A_periph(AT91_PIN_PB7, 1);		/* RXD2 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_B_periph(AT91_PIN_PC9, 0);	/* RTS2 */
> @@ -260,8 +260,8 @@ resource_size_t __init at91_configure_usart2(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart3(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PB8, 1);		/* TXD3 */
> -	at91_set_A_periph(AT91_PIN_PB9, 0);		/* RXD3 */
> +	at91_set_A_periph(AT91_PIN_PB8, 0);		/* TXD3 */
> +	at91_set_A_periph(AT91_PIN_PB9, 1);		/* RXD3 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_B_periph(AT91_PIN_PA23, 0);	/* RTS3 */
> diff --git a/arch/arm/mach-at91/at91sam9n12_devices.c b/arch/arm/mach-at91/at91sam9n12_devices.c
> index bac023f..84c871c 100644
> --- a/arch/arm/mach-at91/at91sam9n12_devices.c
> +++ b/arch/arm/mach-at91/at91sam9n12_devices.c
> @@ -370,16 +370,16 @@ void __init at91_add_device_lcdc(struct atmel_lcdfb_platform_data *data) {}
>  #if defined(CONFIG_DRIVER_SERIAL_ATMEL)
>  resource_size_t __init at91_configure_dbgu(void)
>  {
> -	at91_set_A_periph(AT91_PIN_PA9, 0);		/* DRXD */
> -	at91_set_A_periph(AT91_PIN_PA10, 1);		/* DTXD */
> +	at91_set_A_periph(AT91_PIN_PA9, 1);		/* DRXD */
> +	at91_set_A_periph(AT91_PIN_PA10, 0);		/* DTXD */
>  
>  	return AT91_BASE_SYS + AT91_DBGU;
>  }
>  
>  resource_size_t __init at91_configure_usart0(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PA0, 1);		/* TXD0 */
> -	at91_set_A_periph(AT91_PIN_PA1, 0);		/* RXD0 */
> +	at91_set_A_periph(AT91_PIN_PA0, 0);		/* TXD0 */
> +	at91_set_A_periph(AT91_PIN_PA1, 1);		/* RXD0 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_A_periph(AT91_PIN_PA2, 0);	/* RTS0 */
> @@ -391,8 +391,8 @@ resource_size_t __init at91_configure_usart0(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart1(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PA5, 1);		/* TXD1 */
> -	at91_set_A_periph(AT91_PIN_PA6, 0);		/* RXD1 */
> +	at91_set_A_periph(AT91_PIN_PA5, 0);		/* TXD1 */
> +	at91_set_A_periph(AT91_PIN_PA6, 1);		/* RXD1 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_C_periph(AT91_PIN_PC27, 0);	/* RTS1 */
> @@ -404,8 +404,8 @@ resource_size_t __init at91_configure_usart1(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart2(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PA7, 1);		/* TXD2 */
> -	at91_set_A_periph(AT91_PIN_PA8, 0);		/* RXD2 */
> +	at91_set_A_periph(AT91_PIN_PA7, 0);		/* TXD2 */
> +	at91_set_A_periph(AT91_PIN_PA8, 1);		/* RXD2 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_B_periph(AT91_PIN_PB0, 0);	/* RTS2 */
> @@ -417,8 +417,8 @@ resource_size_t __init at91_configure_usart2(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart3(unsigned pins)
>  {
> -	at91_set_B_periph(AT91_PIN_PC22, 1);		/* TXD3 */
> -	at91_set_B_periph(AT91_PIN_PC23, 0);		/* RXD3 */
> +	at91_set_B_periph(AT91_PIN_PC22, 0);		/* TXD3 */
> +	at91_set_B_periph(AT91_PIN_PC23, 1);		/* RXD3 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_B_periph(AT91_PIN_PC24, 0);	/* RTS3 */
> diff --git a/arch/arm/mach-at91/at91sam9x5_devices.c b/arch/arm/mach-at91/at91sam9x5_devices.c
> index 34537d8..d7ddda4 100644
> --- a/arch/arm/mach-at91/at91sam9x5_devices.c
> +++ b/arch/arm/mach-at91/at91sam9x5_devices.c
> @@ -453,16 +453,16 @@ void __init at91_add_device_lcdc(struct atmel_lcdfb_platform_data *data) {}
>  #if defined(CONFIG_DRIVER_SERIAL_ATMEL)
>  resource_size_t __init at91_configure_dbgu(void)
>  {
> -	at91_set_A_periph(AT91_PIN_PA9, 0);		/* DRXD */
> -	at91_set_A_periph(AT91_PIN_PA10, 1);		/* DTXD */
> +	at91_set_A_periph(AT91_PIN_PA9, 1);		/* DRXD */
> +	at91_set_A_periph(AT91_PIN_PA10, 0);		/* DTXD */
>  
>  	return AT91_BASE_SYS + AT91_DBGU;
>  }
>  
>  resource_size_t __init at91_configure_usart0(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PA0, 1);		/* TXD0 */
> -	at91_set_A_periph(AT91_PIN_PA1, 0);		/* RXD0 */
> +	at91_set_A_periph(AT91_PIN_PA0, 0);		/* TXD0 */
> +	at91_set_A_periph(AT91_PIN_PA1, 1);		/* RXD0 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_A_periph(AT91_PIN_PA2, 0);	/* RTS0 */
> @@ -474,8 +474,8 @@ resource_size_t __init at91_configure_usart0(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart1(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PA5, 1);		/* TXD1 */
> -	at91_set_A_periph(AT91_PIN_PA6, 0);		/* RXD1 */
> +	at91_set_A_periph(AT91_PIN_PA5, 0);		/* TXD1 */
> +	at91_set_A_periph(AT91_PIN_PA6, 1);		/* RXD1 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_C_periph(AT91_PIN_PC27, 0);	/* RTS1 */
> @@ -487,8 +487,8 @@ resource_size_t __init at91_configure_usart1(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart2(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PA7, 1);		/* TXD2 */
> -	at91_set_A_periph(AT91_PIN_PA8, 0);		/* RXD2 */
> +	at91_set_A_periph(AT91_PIN_PA7, 0);		/* TXD2 */
> +	at91_set_A_periph(AT91_PIN_PA8, 1);		/* RXD2 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_B_periph(AT91_PIN_PB0, 0);	/* RTS2 */
> @@ -500,8 +500,8 @@ resource_size_t __init at91_configure_usart2(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart3(unsigned pins)
>  {
> -	at91_set_B_periph(AT91_PIN_PC22, 1);		/* TXD3 */
> -	at91_set_B_periph(AT91_PIN_PC23, 0);		/* RXD3 */
> +	at91_set_B_periph(AT91_PIN_PC22, 0);		/* TXD3 */
> +	at91_set_B_periph(AT91_PIN_PC23, 1);		/* RXD3 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_B_periph(AT91_PIN_PC24, 0);	/* RTS3 */
> diff --git a/arch/arm/mach-at91/sama5d3_devices.c b/arch/arm/mach-at91/sama5d3_devices.c
> index 3fdfca8..c6f5e3a 100644
> --- a/arch/arm/mach-at91/sama5d3_devices.c
> +++ b/arch/arm/mach-at91/sama5d3_devices.c
> @@ -464,16 +464,16 @@ void __init at91_add_device_lcdc(struct atmel_lcdfb_platform_data *data) {}
>  #if defined(CONFIG_DRIVER_SERIAL_ATMEL)
>  resource_size_t __init at91_configure_dbgu(void)
>  {
> -	at91_set_A_periph(AT91_PIN_PB30, 0);		/* DRXD */
> -	at91_set_A_periph(AT91_PIN_PB31, 1);		/* DTXD */
> +	at91_set_A_periph(AT91_PIN_PB30, 1);		/* DRXD */
> +	at91_set_A_periph(AT91_PIN_PB31, 0);		/* DTXD */
>  
>  	return AT91_BASE_DBGU1;
>  }
>  
>  resource_size_t __init at91_configure_usart0(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PD18, 1);		/* TXD0 */
> -	at91_set_A_periph(AT91_PIN_PD17, 0);		/* RXD0 */
> +	at91_set_A_periph(AT91_PIN_PD18, 0);		/* TXD0 */
> +	at91_set_A_periph(AT91_PIN_PD17, 1);		/* RXD0 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_A_periph(AT91_PIN_PD16, 0);	/* RTS0 */
> @@ -485,8 +485,8 @@ resource_size_t __init at91_configure_usart0(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart1(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PB29, 1);		/* TXD1 */
> -	at91_set_A_periph(AT91_PIN_PB28, 0);		/* RXD1 */
> +	at91_set_A_periph(AT91_PIN_PB29, 0);		/* TXD1 */
> +	at91_set_A_periph(AT91_PIN_PB28, 1);		/* RXD1 */
>  
>  	if (pins & ATMEL_UART_RTS)
>  		at91_set_A_periph(AT91_PIN_PB27, 0);	/* RTS1 */
> diff --git a/arch/arm/mach-at91/sama5d4_devices.c b/arch/arm/mach-at91/sama5d4_devices.c
> index e1b0a64..c2f171a 100644
> --- a/arch/arm/mach-at91/sama5d4_devices.c
> +++ b/arch/arm/mach-at91/sama5d4_devices.c
> @@ -430,24 +430,24 @@ void __init at91_add_device_lcdc(struct atmel_lcdfb_platform_data *data) {}
>  #if defined(CONFIG_DRIVER_SERIAL_ATMEL)
>  resource_size_t __init at91_configure_dbgu(void)
>  {
> -	at91_set_A_periph(AT91_PIN_PB25, 1);		/* TXD1 */
> -	at91_set_A_periph(AT91_PIN_PB24, 0);		/* RXD1 */
> +	at91_set_A_periph(AT91_PIN_PB25, 0);		/* DTXD */
> +	at91_set_A_periph(AT91_PIN_PB24, 1);		/* DRXD */
>  
>  	return SAMA5D4_BASE_DBGU;
>  }
>  
>  resource_size_t __init at91_configure_usart0(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PD13, 1);		/* TXD1 */
> -	at91_set_A_periph(AT91_PIN_PD12, 0);		/* RXD1 */
> +	at91_set_A_periph(AT91_PIN_PD13, 0);		/* TXD0 */
> +	at91_set_A_periph(AT91_PIN_PD12, 1);		/* RXD0 */
>  
>  	return SAMA5D4_BASE_USART0;
>  }
>  
>  resource_size_t __init at91_configure_usart1(unsigned pins)
>  {
> -	at91_set_A_periph(AT91_PIN_PD17, 1);		/* TXD1 */
> -	at91_set_A_periph(AT91_PIN_PD16, 0);		/* RXD1 */
> +	at91_set_A_periph(AT91_PIN_PD17, 0);		/* TXD1 */
> +	at91_set_A_periph(AT91_PIN_PD16, 1);		/* RXD1 */
>  
>  	return SAMA5D4_BASE_USART1;
>  }
> @@ -455,40 +455,40 @@ resource_size_t __init at91_configure_usart1(unsigned pins)
>  
>  resource_size_t __init at91_configure_usart2(unsigned pins)
>  {
> -	at91_set_B_periph(AT91_PIN_PB5, 1);		/* TXD1 */
> -	at91_set_B_periph(AT91_PIN_PB4, 0);		/* RXD1 */
> +	at91_set_B_periph(AT91_PIN_PB5, 0);		/* TXD2 */
> +	at91_set_B_periph(AT91_PIN_PB4, 1);		/* RXD2 */
>  
>  	return SAMA5D4_BASE_USART2;
>  }
>  
>  resource_size_t __init at91_configure_usart3(unsigned pins)
>  {
> -	at91_set_B_periph(AT91_PIN_PE17, 1);		/* TXD1 */
> -	at91_set_B_periph(AT91_PIN_PE16, 0);		/* RXD1 */
> +	at91_set_B_periph(AT91_PIN_PE17, 0);		/* TXD3 */
> +	at91_set_B_periph(AT91_PIN_PE16, 1);		/* RXD3 */
>  
>  	return SAMA5D4_BASE_USART3;
>  }
>  
>  resource_size_t __init at91_configure_usart4(unsigned pins)
>  {
> -	at91_set_B_periph(AT91_PIN_PE27, 1);		/* TXD1 */
> -	at91_set_B_periph(AT91_PIN_PE26, 0);		/* RXD1 */
> +	at91_set_B_periph(AT91_PIN_PE27, 0);		/* TXD4 */
> +	at91_set_B_periph(AT91_PIN_PE26, 1);		/* RXD4 */
>  
>  	return SAMA5D4_BASE_USART4;
>  }
>  
>  resource_size_t __init at91_configure_usart5(unsigned pins)
>  {
> -	at91_set_B_periph(AT91_PIN_PE30, 1);		/* TXD1 */
> -	at91_set_B_periph(AT91_PIN_PE29, 0);		/* RXD1 */
> +	at91_set_B_periph(AT91_PIN_PE30, 0);		/* UTXD0 */
> +	at91_set_B_periph(AT91_PIN_PE29, 1);		/* URXD0 */
>  
>  	return SAMA5D4_BASE_UART0;
>  }
>  
>  resource_size_t __init at91_configure_usart6(unsigned pins)
>  {
> -	at91_set_C_periph(AT91_PIN_PC26, 1);		/* TXD1 */
> -	at91_set_C_periph(AT91_PIN_PC25, 0);		/* RXD1 */
> +	at91_set_C_periph(AT91_PIN_PC26, 0);		/* UTXD1 */
> +	at91_set_C_periph(AT91_PIN_PC25, 1);		/* URXD1 */
>  
>  	return SAMA5D4_BASE_UART1;
>  }
> -- 
> 2.1.4
> 
> 
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list