@ -6,7 +6,6 @@
*/
# include <common.h>
# include <mmc.h>
# include <asm/io.h>
# include <asm/arch/sama5d3_smc.h>
# include <asm/arch/at91_common.h>
@ -16,19 +15,12 @@
# include <lcd.h>
# include <linux/ctype.h>
# include <atmel_hlcdc.h>
# include <atmel_mci.h>
# include <phy.h>
# include <micrel.h>
# include <net.h>
# include <netdev.h>
# include <spl.h>
# include <asm/arch/atmel_mpddrc.h>
# include <asm/arch/at91_wdt.h>
# ifdef CONFIG_USB_GADGET_ATMEL_USBA
# include <asm/arch/atmel_usba_udc.h>
# endif
DECLARE_GLOBAL_DATA_PTR ;
/* ------------------------------------------------------------------------- */
@ -135,8 +127,6 @@ static void sama5d3xek_usb_hw_init(void)
# ifdef CONFIG_GENERIC_ATMEL_MCI
static void sama5d3xek_mci_hw_init ( void )
{
at91_mci_hw_init ( ) ;
at91_set_pio_output ( AT91_PIO_PORTB , 10 , 0 ) ; /* MCI0 Power */
}
# endif
@ -217,12 +207,6 @@ void lcd_show_board_info(void)
int board_early_init_f ( void )
{
at91_periph_clk_enable ( ATMEL_ID_PIOA ) ;
at91_periph_clk_enable ( ATMEL_ID_PIOB ) ;
at91_periph_clk_enable ( ATMEL_ID_PIOC ) ;
at91_periph_clk_enable ( ATMEL_ID_PIOD ) ;
at91_periph_clk_enable ( ATMEL_ID_PIOE ) ;
at91_seriald_hw_init ( ) ;
return 0 ;
@ -242,21 +226,9 @@ int board_init(void)
# ifdef CONFIG_CMD_USB
sama5d3xek_usb_hw_init ( ) ;
# endif
# ifdef CONFIG_USB_GADGET_ATMEL_USBA
at91_udp_hw_init ( ) ;
# endif
# ifdef CONFIG_GENERIC_ATMEL_MCI
sama5d3xek_mci_hw_init ( ) ;
# endif
# ifdef CONFIG_ATMEL_SPI
at91_spi0_hw_init ( 1 < < 0 ) ;
# endif
# ifdef CONFIG_MACB
if ( has_emac ( ) )
at91_macb_hw_init ( ) ;
if ( has_gmac ( ) )
at91_gmac_hw_init ( ) ;
# endif
# ifdef CONFIG_LCD
if ( has_lcdc ( ) )
sama5d3xek_lcd_hw_init ( ) ;
@ -271,106 +243,6 @@ int dram_init(void)
return 0 ;
}
int board_phy_config ( struct phy_device * phydev )
{
/* board specific timings for GMAC */
if ( has_gmac ( ) ) {
/* rx data delay */
ksz9021_phy_extended_write ( phydev ,
MII_KSZ9021_EXT_RGMII_RX_DATA_SKEW ,
0x2222 ) ;
/* tx data delay */
ksz9021_phy_extended_write ( phydev ,
MII_KSZ9021_EXT_RGMII_TX_DATA_SKEW ,
0x2222 ) ;
/* rx/tx clock delay */
ksz9021_phy_extended_write ( phydev ,
MII_KSZ9021_EXT_RGMII_CLOCK_SKEW ,
0xf2f4 ) ;
}
/* always run the PHY's config routine */
if ( phydev - > drv - > config )
return phydev - > drv - > config ( phydev ) ;
return 0 ;
}
int board_eth_init ( bd_t * bis )
{
int rc = 0 ;
# ifdef CONFIG_MACB
if ( has_emac ( ) )
rc = macb_eth_initialize ( 0 , ( void * ) ATMEL_BASE_EMAC , 0x00 ) ;
if ( has_gmac ( ) )
rc = macb_eth_initialize ( 0 , ( void * ) ATMEL_BASE_GMAC , 0x00 ) ;
# endif
# ifdef CONFIG_USB_GADGET_ATMEL_USBA
usba_udc_probe ( & pdata ) ;
# ifdef CONFIG_USB_ETH_RNDIS
usb_eth_initialize ( bis ) ;
# endif
# endif
return rc ;
}
# ifdef CONFIG_GENERIC_ATMEL_MCI
int board_mmc_init ( bd_t * bis )
{
int rc = 0 ;
rc = atmel_mci_init ( ( void * ) ATMEL_BASE_MCI0 ) ;
return rc ;
}
# endif
/* SPI chip select control */
# ifdef CONFIG_ATMEL_SPI
# include <spi.h>
# ifndef CONFIG_DM_SPI
int spi_cs_is_valid ( unsigned int bus , unsigned int cs )
{
return bus = = 0 & & cs < 4 ;
}
void spi_cs_activate ( struct spi_slave * slave )
{
switch ( slave - > cs ) {
case 0 :
at91_set_pio_output ( AT91_PIO_PORTD , 13 , 0 ) ;
case 1 :
at91_set_pio_output ( AT91_PIO_PORTD , 14 , 0 ) ;
case 2 :
at91_set_pio_output ( AT91_PIO_PORTD , 15 , 0 ) ;
case 3 :
at91_set_pio_output ( AT91_PIO_PORTD , 16 , 0 ) ;
default :
break ;
}
}
void spi_cs_deactivate ( struct spi_slave * slave )
{
switch ( slave - > cs ) {
case 0 :
at91_set_pio_output ( AT91_PIO_PORTD , 13 , 1 ) ;
case 1 :
at91_set_pio_output ( AT91_PIO_PORTD , 14 , 1 ) ;
case 2 :
at91_set_pio_output ( AT91_PIO_PORTD , 15 , 1 ) ;
case 3 :
at91_set_pio_output ( AT91_PIO_PORTD , 16 , 1 ) ;
default :
break ;
}
}
# endif
# endif /* CONFIG_ATMEL_SPI */
# ifdef CONFIG_BOARD_LATE_INIT
int board_late_init ( void )
{
@ -394,12 +266,8 @@ int board_late_init(void)
# ifdef CONFIG_SPL_BUILD
void spl_board_init ( void )
{
# ifdef CONFIG_SYS_USE_MMC
sama5d3xek_mci_hw_init ( ) ;
# elif CONFIG_SYS_USE_NANDFLASH
# if CONFIG_SYS_USE_NANDFLASH
sama5d3xek_nand_hw_init ( ) ;
# elif CONFIG_SYS_USE_SERIALFLASH
at91_spi0_hw_init ( 1 < < 0 ) ;
# endif
}