net: sunxi-emac: Write HW address via function
Currently the mac address is programmed directly in _sunxi_emac_eth_init making it a one time inflexible operation. By moving it into a separate function, we can now use this more flexibly. Signed-off-by: Olliver Schinagl <oliver@schinagl.nl> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
		
							parent
							
								
									5cf618ee60
								
							
						
					
					
						commit
						ace1520cb5
					
				|  | @ -327,6 +327,20 @@ static void emac_reset(struct emac_eth_dev *priv) | ||||||
| 	udelay(200); | 	udelay(200); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | static int _sunxi_write_hwaddr(struct emac_eth_dev *priv, u8 *enetaddr) | ||||||
|  | { | ||||||
|  | 	struct emac_regs *regs = priv->regs; | ||||||
|  | 	u32 enetaddr_lo, enetaddr_hi; | ||||||
|  | 
 | ||||||
|  | 	enetaddr_lo = enetaddr[2] | (enetaddr[1] << 8) | (enetaddr[0] << 16); | ||||||
|  | 	enetaddr_hi = enetaddr[5] | (enetaddr[4] << 8) | (enetaddr[3] << 16); | ||||||
|  | 
 | ||||||
|  | 	writel(enetaddr_hi, ®s->mac_a1); | ||||||
|  | 	writel(enetaddr_lo, ®s->mac_a0); | ||||||
|  | 
 | ||||||
|  | 	return 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| static int _sunxi_emac_eth_init(struct emac_eth_dev *priv, u8 *enetaddr) | static int _sunxi_emac_eth_init(struct emac_eth_dev *priv, u8 *enetaddr) | ||||||
| { | { | ||||||
| 	struct emac_regs *regs = priv->regs; | 	struct emac_regs *regs = priv->regs; | ||||||
|  | @ -350,10 +364,7 @@ static int _sunxi_emac_eth_init(struct emac_eth_dev *priv, u8 *enetaddr) | ||||||
| 	/* Set up EMAC */ | 	/* Set up EMAC */ | ||||||
| 	emac_setup(priv); | 	emac_setup(priv); | ||||||
| 
 | 
 | ||||||
| 	writel(enetaddr[0] << 16 | enetaddr[1] << 8 | enetaddr[2], | 	_sunxi_write_hwaddr(priv, enetaddr); | ||||||
| 	       ®s->mac_a1); |  | ||||||
| 	writel(enetaddr[3] << 16 | enetaddr[4] << 8 | enetaddr[5], |  | ||||||
| 	       ®s->mac_a0); |  | ||||||
| 
 | 
 | ||||||
| 	mdelay(1); | 	mdelay(1); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue