mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 02:15:45 +01:00 
			
		
		
		
	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:
		
				
					committed by
					
						 Joe Hershberger
						Joe Hershberger
					
				
			
			
				
	
			
			
			
						parent
						
							5cf618ee60
						
					
				
				
					commit
					ace1520cb5
				
			| @@ -327,6 +327,20 @@ static void emac_reset(struct emac_eth_dev *priv) | ||||
| 	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) | ||||
| { | ||||
| 	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 */ | ||||
| 	emac_setup(priv); | ||||
|  | ||||
| 	writel(enetaddr[0] << 16 | enetaddr[1] << 8 | enetaddr[2], | ||||
| 	       ®s->mac_a1); | ||||
| 	writel(enetaddr[3] << 16 | enetaddr[4] << 8 | enetaddr[5], | ||||
| 	       ®s->mac_a0); | ||||
| 	_sunxi_write_hwaddr(priv, enetaddr); | ||||
|  | ||||
| 	mdelay(1); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user