[U-Boot] [PATCH 03/11] ARM: at91: ma5d4: Reset CAN controllers late

Marek Vasut marex at denx.de
Tue May 2 18:27:42 UTC 2017


The CAN controllers need slight delay between toggling of their reset
line. Move this action into board_init(), otherwise timer will not be
initialized and the board might hang.

Signed-off-by: Marek Vasut <marex at denx.de>
Cc: Andreas Bießmann <andreas.devel at googlemail.com>
---
 board/aries/ma5d4evk/ma5d4evk.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/board/aries/ma5d4evk/ma5d4evk.c b/board/aries/ma5d4evk/ma5d4evk.c
index dd74e29b8e..aa02b8a34b 100644
--- a/board/aries/ma5d4evk/ma5d4evk.c
+++ b/board/aries/ma5d4evk/ma5d4evk.c
@@ -269,12 +269,6 @@ int board_early_init_f(void)
 	at91_set_pio_output(AT91_PIO_PORTD, 29, 0);
 	at91_set_pio_output(AT91_PIO_PORTD, 30, 0);
 
-	/* Reset CAN controllers */
-	at91_set_pio_output(AT91_PIO_PORTB, 21, 0);
-	udelay(100);
-	at91_set_pio_output(AT91_PIO_PORTB, 21, 1);
-	at91_pio3_set_pio_pulldown(AT91_PIO_PORTB, 21, 0);
-
 	ma5d4evk_serial_hw_init();
 
 	return 0;
@@ -305,6 +299,12 @@ int board_init(void)
 	at91_udp_hw_init();
 #endif
 
+	/* Reset CAN controllers */
+	at91_set_pio_output(AT91_PIO_PORTB, 21, 0);
+	udelay(100);
+	at91_set_pio_output(AT91_PIO_PORTB, 21, 1);
+	at91_pio3_set_pio_pulldown(AT91_PIO_PORTB, 21, 0);
+
 	return 0;
 }
 
-- 
2.11.0



More information about the U-Boot mailing list