summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-at91/at91rm9200_devices.c
diff options
context:
space:
mode:
authorPeter Rosin <peda@axentia.se>2017-02-13 18:06:56 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2017-02-14 08:54:59 +0100
commit31e16d17690e39e9ca8170a0066404e1069aa072 (patch)
treed337f538366557ba4b8f35983f3ef507fd85ba25 /arch/arm/mach-at91/at91rm9200_devices.c
parentb225bbf295c92263adbcec2c385c5e8d83542c72 (diff)
downloadbarebox-31e16d17690e39e9ca8170a0066404e1069aa072.tar.gz
barebox-31e16d17690e39e9ca8170a0066404e1069aa072.tar.xz
at91: serial: pullup RX pins, do not pullup TX pins
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@axentia.se> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-at91/at91rm9200_devices.c')
-rw-r--r--arch/arm/mach-at91/at91rm9200_devices.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/arch/arm/mach-at91/at91rm9200_devices.c b/arch/arm/mach-at91/at91rm9200_devices.c
index 7b68cdac29..a110ee3e3c 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 */