@ -27,6 +27,7 @@
# include <asm/arch/tegra2.h>
# include <asm/arch/sys_proto.h>
# include <asm/arch/board.h>
# include <asm/arch/clk_rst.h>
# include <asm/arch/clock.h>
# include <asm/arch/pinmux.h>
@ -36,13 +37,6 @@
DECLARE_GLOBAL_DATA_PTR ;
enum {
/* UARTs which we can enable */
UARTA = 1 < < 0 ,
UARTB = 1 < < 1 ,
UARTD = 1 < < 3 ,
} ;
const struct tegra2_sysinfo sysinfo = {
CONFIG_TEGRA2_BOARD_STRING
} ;
@ -56,56 +50,6 @@ int timer_init(void)
return 0 ;
}
static void enable_uart ( enum periph_id pid )
{
/* Assert UART reset and enable clock */
reset_set_enable ( pid , 1 ) ;
clock_enable ( pid ) ;
clock_ll_set_source ( pid , 0 ) ; /* UARTx_CLK_SRC = 00, PLLP_OUT0 */
/* wait for 2us */
udelay ( 2 ) ;
/* De-assert reset to UART */
reset_set_enable ( pid , 0 ) ;
}
/*
* Routine : clock_init_uart
* Description : init clock for the UART ( s )
*/
static void clock_init_uart ( int uart_ids )
{
if ( uart_ids & UARTA )
enable_uart ( PERIPH_ID_UART1 ) ;
if ( uart_ids & UARTB )
enable_uart ( PERIPH_ID_UART2 ) ;
if ( uart_ids & UARTD )
enable_uart ( PERIPH_ID_UART4 ) ;
}
/*
* Routine : pin_mux_uart
* Description : setup the pin muxes / tristate values for the UART ( s )
*/
static void pin_mux_uart ( int uart_ids )
{
if ( uart_ids & UARTA ) {
pinmux_set_func ( PINGRP_IRRX , PMUX_FUNC_UARTA ) ;
pinmux_set_func ( PINGRP_IRTX , PMUX_FUNC_UARTA ) ;
pinmux_tristate_disable ( PINGRP_IRRX ) ;
pinmux_tristate_disable ( PINGRP_IRTX ) ;
}
if ( uart_ids & UARTB ) {
pinmux_set_func ( PINGRP_UAD , PMUX_FUNC_IRDA ) ;
pinmux_tristate_disable ( PINGRP_UAD ) ;
}
if ( uart_ids & UARTD ) {
pinmux_set_func ( PINGRP_GMC , PMUX_FUNC_UARTD ) ;
pinmux_tristate_disable ( PINGRP_GMC ) ;
}
}
/*
* Routine : board_init
* Description : Early hardware init .
@ -131,23 +75,7 @@ int board_init(void)
# ifdef CONFIG_BOARD_EARLY_INIT_F
int board_early_init_f ( void )
{
int uart_ids = 0 ; /* bit mask of which UART ids to enable */
# ifdef CONFIG_TEGRA2_ENABLE_UARTA
uart_ids | = UARTA ;
# endif
# ifdef CONFIG_TEGRA2_ENABLE_UARTB
uart_ids | = UARTB ;
# endif
# ifdef CONFIG_TEGRA2_ENABLE_UARTD
uart_ids | = UARTD ;
# endif
/* Initialize UART clocks */
clock_init_uart ( uart_ids ) ;
/* Initialize periph pinmuxes */
pin_mux_uart ( uart_ids ) ;
board_init_uart_f ( ) ;
/* Initialize periph GPIOs */
# ifdef CONFIG_SPI_UART_SWITCH