Patchwork [U-Boot,1/7] drivers: net: cpsw: remove hard coding bd ram for cpsw

login
register
mail settings
Submitter Mugunthan V N
Date July 8, 2013, 10:34 a.m.
Message ID <1373279683-12421-2-git-send-email-mugunthanvnm@ti.com>
Download mbox | patch
Permalink /patch/257515/
State Accepted
Delegated to: Tom Rini
Headers show

Comments

Mugunthan V N - July 8, 2013, 10:34 a.m.
BD ram address may vary in various SOC, so removing the hardcoding and
passing the same information through platform data

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
---
 board/ti/am335x/board.c |    1 +
 board/ti/ti814x/evm.c   |    1 +
 drivers/net/cpsw.c      |    4 +---
 include/cpsw.h          |    1 +
 4 files changed, 4 insertions(+), 3 deletions(-)

Patch

diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c
index fdbe26c..53981d2 100644
--- a/board/ti/am335x/board.c
+++ b/board/ti/am335x/board.c
@@ -443,6 +443,7 @@  static struct cpsw_platform_data cpsw_data = {
 	.ale_entries		= 1024,
 	.host_port_reg_ofs	= 0x108,
 	.hw_stats_reg_ofs	= 0x900,
+	.bd_ram_ofs		= 0x2000,
 	.mac_control		= (1 << 5),
 	.control		= cpsw_control,
 	.host_port_num		= 0,
diff --git a/board/ti/ti814x/evm.c b/board/ti/ti814x/evm.c
index 6ad3dd8..0a05571 100644
--- a/board/ti/ti814x/evm.c
+++ b/board/ti/ti814x/evm.c
@@ -215,6 +215,7 @@  static struct cpsw_platform_data cpsw_data = {
 	.ale_entries		= 1024,
 	.host_port_reg_ofs	= 0x28,
 	.hw_stats_reg_ofs	= 0x400,
+	.bd_ram_ofs		= 0x2000,
 	.mac_control		= (1 << 5),
 	.control		= cpsw_control,
 	.host_port_num		= 0,
diff --git a/drivers/net/cpsw.c b/drivers/net/cpsw.c
index 379b679..dc0a2be 100644
--- a/drivers/net/cpsw.c
+++ b/drivers/net/cpsw.c
@@ -51,8 +51,6 @@ 
 #define CPDMA_RXCP_VER1		0x160
 #define CPDMA_RXCP_VER2		0x260
 
-#define CPDMA_RAM_ADDR		0x4a102000
-
 /* Descriptor mode bits */
 #define CPDMA_DESC_SOP		BIT(31)
 #define CPDMA_DESC_EOP		BIT(30)
@@ -984,12 +982,12 @@  int cpsw_register(struct cpsw_platform_data *data)
 		return -ENOMEM;
 	}
 
-	priv->descs		= (void *)CPDMA_RAM_ADDR;
 	priv->host_port		= data->host_port_num;
 	priv->regs		= regs;
 	priv->host_port_regs	= regs + data->host_port_reg_ofs;
 	priv->dma_regs		= regs + data->cpdma_reg_ofs;
 	priv->ale_regs		= regs + data->ale_reg_ofs;
+	priv->descs		= (void *)regs + data->bd_ram_ofs;
 
 	int idx = 0;
 
diff --git a/include/cpsw.h b/include/cpsw.h
index 296b0e5..743cb96 100644
--- a/include/cpsw.h
+++ b/include/cpsw.h
@@ -39,6 +39,7 @@  struct cpsw_platform_data {
 	int	ale_entries;	/* ale table size			*/
 	u32	host_port_reg_ofs;	/* cpdma host port registers	*/
 	u32	hw_stats_reg_ofs;	/* cpsw hw stats counters	*/
+	u32	bd_ram_ofs;		/* Buffer Descriptor RAM offset */
 	u32	mac_control;
 	struct cpsw_slave_data	*slave_data;
 	void	(*control)(int enabled);