@ -8,8 +8,8 @@
# include <common.h>
# include <asm/io.h>
# include <asm/arch/at91_common.h>
# include <asm/arch/at91_pmc.h>
# include <asm/arch/at91_pio.h>
# include <asm/arch/clk.h>
unsigned int has_lcdc ( )
{
@ -18,60 +18,47 @@ unsigned int has_lcdc()
void at91_serial0_hw_init ( void )
{
struct at91_pmc * pmc = ( struct at91_pmc * ) ATMEL_BASE_PMC ;
at91_set_a_periph ( AT91_PIO_PORTA , 0 , 1 ) ; /* TXD0 */
at91_set_a_periph ( AT91_PIO_PORTA , 1 , 0 ) ; /* RXD0 */
writel ( 1 < < ATMEL_ID_USART0 , & pmc - > pcer ) ;
at91_periph_clk_enable ( ATMEL_ID_USART0 ) ;
}
void at91_serial1_hw_init ( void )
{
struct at91_pmc * pmc = ( struct at91_pmc * ) ATMEL_BASE_PMC ;
at91_set_a_periph ( AT91_PIO_PORTA , 5 , 1 ) ; /* TXD1 */
at91_set_a_periph ( AT91_PIO_PORTA , 6 , 0 ) ; /* RXD1 */
writel ( 1 < < ATMEL_ID_USART1 , & pmc - > pcer ) ;
at91_periph_clk_enable ( ATMEL_ID_USART1 ) ;
}
void at91_serial2_hw_init ( void )
{
struct at91_pmc * pmc = ( struct at91_pmc * ) ATMEL_BASE_PMC ;
at91_set_a_periph ( AT91_PIO_PORTA , 7 , 1 ) ; /* TXD2 */
at91_set_a_periph ( AT91_PIO_PORTA , 8 , 0 ) ; /* RXD2 */
writel ( 1 < < ATMEL_ID_USART2 , & pmc - > pcer ) ;
at91_periph_clk_enable ( ATMEL_ID_USART2 ) ;
}
void at91_serial3_hw_init ( void )
{
struct at91_pmc * pmc = ( struct at91_pmc * ) ATMEL_BASE_PMC ;
at91_set_b_periph ( AT91_PIO_PORTC , 22 , 1 ) ; /* TXD3 */
at91_set_b_periph ( AT91_PIO_PORTC , 23 , 0 ) ; /* RXD3 */
writel ( 1 < < ATMEL_ID_USART3 , & pmc - > pcer ) ;
at91_periph_clk_enable ( ATMEL_ID_USART3 ) ;
}
void at91_seriald_hw_init ( void )
{
struct at91_pmc * pmc = ( struct at91_pmc * ) ATMEL_BASE_PMC ;
at91_set_a_periph ( AT91_PIO_PORTA , 10 , 1 ) ; /* DTXD */
at91_set_a_periph ( AT91_PIO_PORTA , 9 , 0 ) ; /* DRXD */
writel ( 1 < < ATMEL_ID_SYS , & pmc - > pcer ) ;
at91_periph_clk_enable ( ATMEL_ID_SYS ) ;
}
# ifdef CONFIG_ATMEL_SPI
void at91_spi0_hw_init ( unsigned long cs_mask )
{
struct at91_pmc * pmc = ( struct at91_pmc * ) ATMEL_BASE_PMC ;
at91_set_a_periph ( AT91_PIO_PORTA , 11 , 0 ) ; /* SPI0_MISO */
at91_set_a_periph ( AT91_PIO_PORTA , 12 , 0 ) ; /* SPI0_MOSI */
at91_set_a_periph ( AT91_PIO_PORTA , 13 , 0 ) ; /* SPI0_SPCK */
/* Enable clock */
writel ( 1 < < ATMEL_ID_SPI0 , & pmc - > pcer ) ;
at91_periph_clk_enable ( ATMEL_ID_SPI0 ) ;
if ( cs_mask & ( 1 < < 0 ) )
at91_set_pio_output ( AT91_PIO_PORTA , 14 , 1 ) ;
@ -85,14 +72,11 @@ void at91_spi0_hw_init(unsigned long cs_mask)
void at91_spi1_hw_init ( unsigned long cs_mask )
{
struct at91_pmc * pmc = ( struct at91_pmc * ) ATMEL_BASE_PMC ;
at91_set_b_periph ( AT91_PIO_PORTA , 21 , 0 ) ; /* SPI1_MISO */
at91_set_b_periph ( AT91_PIO_PORTA , 22 , 0 ) ; /* SPI1_MOSI */
at91_set_b_periph ( AT91_PIO_PORTA , 23 , 0 ) ; /* SPI1_SPCK */
/* Enable clock */
writel ( 1 < < ATMEL_ID_SPI1 , & pmc - > pcer ) ;
at91_periph_clk_enable ( ATMEL_ID_SPI1 ) ;
if ( cs_mask & ( 1 < < 0 ) )
at91_set_pio_output ( AT91_PIO_PORTA , 8 , 1 ) ;
@ -107,8 +91,6 @@ void at91_spi1_hw_init(unsigned long cs_mask)
void at91_mci_hw_init ( void )
{
struct at91_pmc * pmc = ( struct at91_pmc * ) ATMEL_BASE_PMC ;
at91_set_a_periph ( AT91_PIO_PORTA , 17 , 0 ) ; /* MCCK */
at91_set_a_periph ( AT91_PIO_PORTA , 16 , 0 ) ; /* MCCDA */
at91_set_a_periph ( AT91_PIO_PORTA , 15 , 0 ) ; /* MCDA0 */
@ -116,14 +98,12 @@ void at91_mci_hw_init(void)
at91_set_a_periph ( AT91_PIO_PORTA , 19 , 0 ) ; /* MCDA2 */
at91_set_a_periph ( AT91_PIO_PORTA , 20 , 0 ) ; /* MCDA3 */
writel ( 1 < < ATMEL_ID_HSMCI0 , & pmc - > pcer ) ;
at91_periph_clk_enable ( ATMEL_ID_HSMCI0 ) ;
}
# ifdef CONFIG_LCD
void at91_lcd_hw_init ( void )
{
struct at91_pmc * pmc = ( struct at91_pmc * ) ATMEL_BASE_PMC ;
at91_set_a_periph ( AT91_PIO_PORTC , 24 , 0 ) ; /* LCDDPWR */
at91_set_a_periph ( AT91_PIO_PORTC , 26 , 0 ) ; /* LCDVSYNC */
at91_set_a_periph ( AT91_PIO_PORTC , 27 , 0 ) ; /* LCDHSYNC */
@ -156,6 +136,6 @@ void at91_lcd_hw_init(void)
at91_set_a_periph ( AT91_PIO_PORTC , 22 , 0 ) ; /* LCDD22 */
at91_set_a_periph ( AT91_PIO_PORTC , 23 , 0 ) ; /* LCDD23 */
writel ( 1 < < ATMEL_ID_LCDC , & pmc - > pcer ) ;
at91_periph_clk_enable ( ATMEL_ID_LCDC ) ;
}
# endif