board: sama5d4ek: clean up code

Due to the introduction of the pinctrl and clk driver, and using
device tree files, remove the unneeded hardcoded pin configuration
and clock enabling code from the board file.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
Reviewed-by: Andreas Bießmann <andreas@biessmann.org>
This commit is contained in:
Wenyou Yang 2017-04-13 10:31:20 +08:00 committed by Simon Glass
parent ef33aa3dca
commit 33034a77a5

View File

@ -10,54 +10,17 @@
#include <asm/arch/at91_common.h>
#include <asm/arch/at91_rstc.h>
#include <asm/arch/atmel_mpddrc.h>
#include <asm/arch/atmel_usba_udc.h>
#include <asm/arch/gpio.h>
#include <asm/arch/clk.h>
#include <asm/arch/sama5d3_smc.h>
#include <asm/arch/sama5d4.h>
#include <atmel_hlcdc.h>
#include <atmel_mci.h>
#include <lcd.h>
#include <mmc.h>
#include <net.h>
#include <netdev.h>
#include <nand.h>
#include <spi.h>
#include <version.h>
DECLARE_GLOBAL_DATA_PTR;
#ifdef CONFIG_ATMEL_SPI
#ifndef CONFIG_DM_SPI
int spi_cs_is_valid(unsigned int bus, unsigned int cs)
{
return bus == 0 && cs == 0;
}
#endif
void spi_cs_activate(struct spi_slave *slave)
{
at91_set_pio_output(AT91_PIO_PORTC, 3, 0);
}
void spi_cs_deactivate(struct spi_slave *slave)
{
at91_set_pio_output(AT91_PIO_PORTC, 3, 1);
}
static void sama5d4ek_spi0_hw_init(void)
{
at91_pio3_set_a_periph(AT91_PIO_PORTC, 0, 0); /* SPI0_MISO */
at91_pio3_set_a_periph(AT91_PIO_PORTC, 1, 0); /* SPI0_MOSI */
at91_pio3_set_a_periph(AT91_PIO_PORTC, 2, 0); /* SPI0_SPCK */
at91_set_pio_output(AT91_PIO_PORTC, 3, 1); /* SPI0_CS0 */
/* Enable clock */
at91_periph_clk_enable(ATMEL_ID_SPI0);
}
#endif /* CONFIG_ATMEL_SPI */
#ifdef CONFIG_NAND_ATMEL
static void sama5d4ek_nand_hw_init(void)
{
@ -198,61 +161,6 @@ void lcd_show_board_info(void)
#endif /* CONFIG_LCD */
#ifdef CONFIG_GENERIC_ATMEL_MCI
void sama5d4ek_mci1_hw_init(void)
{
at91_pio3_set_c_periph(AT91_PIO_PORTE, 19, 1); /* MCI1 CDA */
at91_pio3_set_c_periph(AT91_PIO_PORTE, 20, 1); /* MCI1 DA0 */
at91_pio3_set_c_periph(AT91_PIO_PORTE, 21, 1); /* MCI1 DA1 */
at91_pio3_set_c_periph(AT91_PIO_PORTE, 22, 1); /* MCI1 DA2 */
at91_pio3_set_c_periph(AT91_PIO_PORTE, 23, 1); /* MCI1 DA3 */
at91_pio3_set_c_periph(AT91_PIO_PORTE, 18, 0); /* MCI1 CLK */
/*
* As the mci io internal pull down is too strong, so if the io needs
* external pull up, the pull up resistor will be very small, if so
* the power consumption will increase, so disable the interanl pull
* down to save the power.
*/
at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 18, 0);
at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 19, 0);
at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 20, 0);
at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 21, 0);
at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 22, 0);
at91_pio3_set_pio_pulldown(AT91_PIO_PORTE, 23, 0);
/* Enable clock */
at91_periph_clk_enable(ATMEL_ID_MCI1);
}
int board_mmc_init(bd_t *bis)
{
/* Enable power for MCI1 interface */
at91_set_pio_output(AT91_PIO_PORTE, 15, 0);
return atmel_mci_init((void *)ATMEL_BASE_MCI1);
}
#endif /* CONFIG_GENERIC_ATMEL_MCI */
#ifdef CONFIG_MACB
void sama5d4ek_macb0_hw_init(void)
{
at91_pio3_set_a_periph(AT91_PIO_PORTB, 0, 0); /* ETXCK_EREFCK */
at91_pio3_set_a_periph(AT91_PIO_PORTB, 6, 0); /* ERXDV */
at91_pio3_set_a_periph(AT91_PIO_PORTB, 8, 0); /* ERX0 */
at91_pio3_set_a_periph(AT91_PIO_PORTB, 9, 0); /* ERX1 */
at91_pio3_set_a_periph(AT91_PIO_PORTB, 7, 0); /* ERXER */
at91_pio3_set_a_periph(AT91_PIO_PORTB, 2, 0); /* ETXEN */
at91_pio3_set_a_periph(AT91_PIO_PORTB, 12, 0); /* ETX0 */
at91_pio3_set_a_periph(AT91_PIO_PORTB, 13, 0); /* ETX1 */
at91_pio3_set_a_periph(AT91_PIO_PORTB, 17, 0); /* EMDIO */
at91_pio3_set_a_periph(AT91_PIO_PORTB, 16, 0); /* EMDC */
/* Enable clock */
at91_periph_clk_enable(ATMEL_ID_GMAC0);
}
#endif
static void sama5d4ek_serial3_hw_init(void)
{
at91_pio3_set_b_periph(AT91_PIO_PORTE, 17, 1); /* TXD3 */
@ -264,12 +172,6 @@ static void sama5d4ek_serial3_hw_init(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);
sama5d4ek_serial3_hw_init();
return 0;
@ -280,27 +182,15 @@ int board_init(void)
/* adress of boot parameters */
gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
#ifdef CONFIG_ATMEL_SPI
sama5d4ek_spi0_hw_init();
#endif
#ifdef CONFIG_NAND_ATMEL
sama5d4ek_nand_hw_init();
#endif
#ifdef CONFIG_GENERIC_ATMEL_MCI
sama5d4ek_mci1_hw_init();
#endif
#ifdef CONFIG_MACB
sama5d4ek_macb0_hw_init();
#endif
#ifdef CONFIG_LCD
sama5d4ek_lcd_hw_init();
#endif
#ifdef CONFIG_CMD_USB
sama5d4ek_usb_hw_init();
#endif
#ifdef CONFIG_USB_GADGET_ATMEL_USBA
at91_udp_hw_init();
#endif
return 0;
}
@ -312,34 +202,12 @@ int dram_init(void)
return 0;
}
int board_eth_init(bd_t *bis)
{
int rc = 0;
#ifdef CONFIG_MACB
rc = macb_eth_initialize(0, (void *)ATMEL_BASE_GMAC0, 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;
}
/* SPL */
#ifdef CONFIG_SPL_BUILD
void spl_board_init(void)
{
#ifdef CONFIG_SYS_USE_MMC
sama5d4ek_mci1_hw_init();
#elif CONFIG_SYS_USE_NANDFLASH
#if CONFIG_SYS_USE_NANDFLASH
sama5d4ek_nand_hw_init();
#elif CONFIG_SYS_USE_SERIALFLASH
sama5d4ek_spi0_hw_init();
#endif
}