mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
arm: atmel: add gmac support for sama5d3xek board
add gmac support for sama5d3xek board, the gmac embedded in: - sama5d33, sama5d34, sama5d35 Signed-off-by: Bo Shen <voice.shen@atmel.com> Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
This commit is contained in:
parent
8314ccd8d4
commit
e08d6f3aaf
4 changed files with 50 additions and 0 deletions
|
@ -144,6 +144,30 @@ void at91_macb_hw_init(void)
|
|||
/* Enable clock */
|
||||
at91_periph_clk_enable(ATMEL_ID_EMAC);
|
||||
}
|
||||
|
||||
void at91_gmac_hw_init(void)
|
||||
{
|
||||
at91_set_a_periph(AT91_PIO_PORTB, 0, 0); /* GTX0 */
|
||||
at91_set_a_periph(AT91_PIO_PORTB, 1, 0); /* GTX1 */
|
||||
at91_set_a_periph(AT91_PIO_PORTB, 2, 0); /* GTX2 */
|
||||
at91_set_a_periph(AT91_PIO_PORTB, 3, 0); /* GTX3 */
|
||||
at91_set_a_periph(AT91_PIO_PORTB, 4, 0); /* GRX0 */
|
||||
at91_set_a_periph(AT91_PIO_PORTB, 5, 0); /* GRX1 */
|
||||
at91_set_a_periph(AT91_PIO_PORTB, 6, 0); /* GRX2 */
|
||||
at91_set_a_periph(AT91_PIO_PORTB, 7, 0); /* GRX3 */
|
||||
at91_set_a_periph(AT91_PIO_PORTB, 8, 0); /* GTXCK */
|
||||
at91_set_a_periph(AT91_PIO_PORTB, 9, 0); /* GTXEN */
|
||||
|
||||
at91_set_a_periph(AT91_PIO_PORTB, 11, 0); /* GRXCK */
|
||||
at91_set_a_periph(AT91_PIO_PORTB, 13, 0); /* GRXER */
|
||||
|
||||
at91_set_a_periph(AT91_PIO_PORTB, 16, 0); /* GMDC */
|
||||
at91_set_a_periph(AT91_PIO_PORTB, 17, 0); /* GMDIO */
|
||||
at91_set_a_periph(AT91_PIO_PORTB, 18, 0); /* G125CK */
|
||||
|
||||
/* Enable clock */
|
||||
at91_periph_clk_enable(ATMEL_ID_GMAC);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_LCD
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#define AT91_COMMON_H
|
||||
|
||||
void at91_can_hw_init(void);
|
||||
void at91_gmac_hw_init(void);
|
||||
void at91_macb_hw_init(void);
|
||||
void at91_mci_hw_init(void);
|
||||
void at91_serial0_hw_init(void);
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include <lcd.h>
|
||||
#include <atmel_lcdc.h>
|
||||
#include <atmel_mci.h>
|
||||
#include <micrel.h>
|
||||
#include <net.h>
|
||||
#include <netdev.h>
|
||||
|
||||
|
@ -178,6 +179,8 @@ int board_init(void)
|
|||
#ifdef CONFIG_MACB
|
||||
if (has_emac())
|
||||
at91_macb_hw_init();
|
||||
if (has_gmac())
|
||||
at91_gmac_hw_init();
|
||||
#endif
|
||||
#ifdef CONFIG_LCD
|
||||
if (has_lcdc())
|
||||
|
@ -193,6 +196,21 @@ int dram_init(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int board_phy_config(struct phy_device *phydev)
|
||||
{
|
||||
/* 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);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int board_eth_init(bd_t *bis)
|
||||
{
|
||||
int rc = 0;
|
||||
|
@ -200,6 +218,8 @@ int board_eth_init(bd_t *bis)
|
|||
#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
|
||||
|
||||
return rc;
|
||||
|
|
|
@ -136,6 +136,11 @@
|
|||
#define CONFIG_NET_MULTI
|
||||
#define CONFIG_NET_RETRY_COUNT 20
|
||||
#define CONFIG_MACB_SEARCH_PHY
|
||||
#define CONFIG_RGMII
|
||||
#define CONFIG_CMD_MII
|
||||
#define CONFIG_PHYLIB
|
||||
#define CONFIG_PHY_MICREL
|
||||
#define CONFIG_PHY_MICREL_KSZ9021
|
||||
|
||||
/* MMC */
|
||||
#define CONFIG_CMD_MMC
|
||||
|
|
Loading…
Reference in a new issue