From a04eba99f5a00aff54bef32cafa986830b094532 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Sat, 5 Nov 2011 04:46:51 +0000 Subject: tegra2: Plumb in SPI/UART switch code On Seaboard the UART and SPI interfere with each other. This causes the UART to receive spurious zero bytes after SPI transactions and also means that SPI can corrupt a few output characters when it starts up if they are still in the UART buffer. This updates the board to use the SPI/UART switch to avoid the problem. For now this feature is turned off since it needs changes to the NS16550 UART to operate. Signed-off-by: Simon Glass Signed-off-by: Tom Warren --- board/nvidia/common/board.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'board/nvidia/common/board.c') diff --git a/board/nvidia/common/board.c b/board/nvidia/common/board.c index 6a1312c5aa..c3f6796d5d 100644 --- a/board/nvidia/common/board.c +++ b/board/nvidia/common/board.c @@ -112,9 +112,13 @@ static void pin_mux_uart(int uart_ids) */ int board_init(void) { + /* Do clocks and UART first so that printf() works */ clock_init(); clock_verify(); +#ifdef CONFIG_SPI_UART_SWITCH + gpio_config_uart(); +#endif #ifdef CONFIG_TEGRA2_SPI spi_init(); #endif @@ -152,7 +156,11 @@ int board_early_init_f(void) pin_mux_uart(uart_ids); /* Initialize periph GPIOs */ +#ifdef CONFIG_SPI_UART_SWITCH + gpio_early_init_uart(); +#else gpio_config_uart(); +#endif return 0; } #endif /* EARLY_INIT */ -- cgit