[For master PATCH 1/1] sama5de3k: add gmacb support

Nicolas Ferre nicolas.ferre at atmel.com
Fri Feb 8 05:24:08 EST 2013


On 02/08/2013 10:28 AM, Jean-Christophe PLAGNIOL-VILLARD :
> Cc: Nicolas Ferre <nicolas.ferre at atmel.com>

Tested-by: Nicolas Ferre <nicolas.ferre at atmel.com>

> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
> ---
>  arch/arm/boards/sama5d3xek/init.c |   31 +++++++++++++++++++++++++++++++
>  1 file changed, 31 insertions(+)
> 
> diff --git a/arch/arm/boards/sama5d3xek/init.c b/arch/arm/boards/sama5d3xek/init.c
> index 110a83f..d17e4c2 100644
> --- a/arch/arm/boards/sama5d3xek/init.c
> +++ b/arch/arm/boards/sama5d3xek/init.c
> @@ -110,6 +110,11 @@ static void ek_add_device_nand(void) {}
>  #endif
>  
>  #if defined(CONFIG_DRIVER_NET_MACB)
> +static struct at91_ether_platform_data gmac_pdata = {
> +	.phy_interface = PHY_INTERFACE_MODE_RGMII,
> +	.phy_addr = 7,
> +};
> +
>  static struct at91_ether_platform_data macb_pdata = {
>  	.phy_interface = PHY_INTERFACE_MODE_RMII,
>  	.phy_addr = 0,
> @@ -138,6 +143,28 @@ static int ek_register_mac_address_43(int id)
>  	return w1_local_mac_address_register(id, "tml", "w1-43-0");
>  }
>  
> +static int ksz9021rn_phy_fixup(struct phy_device *phy)
> +{
> +	int value;
> +
> +#define GMII_RCCPSR	260
> +#define GMII_RRDPSR	261
> +#define GMII_ERCR	11
> +#define GMII_ERDWR	12
> +
> +	/* Set delay values */
> +	value = GMII_RCCPSR | 0x8000;
> +	phy_write(phy, GMII_ERCR, value);
> +	value = 0xF2F4;
> +	phy_write(phy, GMII_ERDWR, value);
> +	value = GMII_RRDPSR | 0x8000;
> +	phy_write(phy, GMII_ERCR, value);
> +	value = 0x2222;
> +	phy_write(phy, GMII_ERDWR, value);
> +
> +	return 0;
> +}
> +
>  static void ek_add_device_eth(void)
>  {
>  	if (w1_local_mac_address_register(0, "tml", "w1-2d-0"))
> @@ -147,6 +174,10 @@ static void ek_add_device_eth(void)
>  	if (ek_register_mac_address_23(1))
>  		ek_register_mac_address_43(1);
>  
> +	phy_register_fixup_for_uid(PHY_ID_KSZ9021, MICREL_PHY_ID_MASK,
> +					   ksz9021rn_phy_fixup);
> +
> +	at91_add_device_eth(0, &gmac_pdata);
>  	at91_add_device_eth(1, &macb_pdata);
>  }
>  #else
> 


-- 
Nicolas Ferre



More information about the barebox mailing list