Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit df828598 authored by Mugunthan V N's avatar Mugunthan V N Committed by David S. Miller
Browse files

netdev: driver: ethernet: Add TI CPSW driver



This patch adds support for TI's CPSW driver.

The three port switch gigabit ethernet subsystem provides ethernet packet
communication and can be configured as an ethernet switch. Supports
10/100/1000 Mbps.

Signed-off-by: default avatarCyril Chemparathy <cyril@ti.com>
Signed-off-by: default avatarSriramakrishnan A G <srk@ti.com>
Signed-off-by: default avatarMugunthan V N <mugunthanvnm@ti.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent db82173f
Loading
Loading
Loading
Loading
+11 −0
Original line number Original line Diff line number Diff line
@@ -49,6 +49,17 @@ config TI_DAVINCI_CPDMA
	  To compile this driver as a module, choose M here: the module
	  To compile this driver as a module, choose M here: the module
	  will be called davinci_cpdma.  This is recommended.
	  will be called davinci_cpdma.  This is recommended.


config TI_CPSW
	tristate "TI CPSW Switch Support"
	depends on ARM && (ARCH_DAVINCI || SOC_OMAPAM33XX)
	select TI_DAVINCI_CPDMA
	select TI_DAVINCI_MDIO
	---help---
	  This driver supports TI's CPSW Ethernet Switch.

	  To compile this driver as a module, choose M here: the module
	  will be called cpsw.

config TLAN
config TLAN
	tristate "TI ThunderLAN support"
	tristate "TI ThunderLAN support"
	depends on (PCI || EISA)
	depends on (PCI || EISA)
+2 −0
Original line number Original line Diff line number Diff line
@@ -7,3 +7,5 @@ obj-$(CONFIG_CPMAC) += cpmac.o
obj-$(CONFIG_TI_DAVINCI_EMAC) += davinci_emac.o
obj-$(CONFIG_TI_DAVINCI_EMAC) += davinci_emac.o
obj-$(CONFIG_TI_DAVINCI_MDIO) += davinci_mdio.o
obj-$(CONFIG_TI_DAVINCI_MDIO) += davinci_mdio.o
obj-$(CONFIG_TI_DAVINCI_CPDMA) += davinci_cpdma.o
obj-$(CONFIG_TI_DAVINCI_CPDMA) += davinci_cpdma.o
obj-$(CONFIG_TI_CPSW) += ti_cpsw.o
ti_cpsw-y := cpsw_ale.o cpsw.o
+1018 −0

File added.

Preview size limit exceeded, changes collapsed.

+55 −0
Original line number Original line Diff line number Diff line
/*
 * Texas Instruments Ethernet Switch Driver
 *
 * Copyright (C) 2012 Texas Instruments
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation version 2.
 *
 * This program is distributed "as is" WITHOUT ANY WARRANTY of any
 * kind, whether express or implied; without even the implied warranty
 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */
#ifndef __CPSW_H__
#define __CPSW_H__

#include <linux/if_ether.h>

struct cpsw_slave_data {
	u32		slave_reg_ofs;
	u32		sliver_reg_ofs;
	const char	*phy_id;
	int		phy_if;
	u8		mac_addr[ETH_ALEN];
};

struct cpsw_platform_data {
	u32	ss_reg_ofs;	/* Subsystem control register offset */
	u32	channels;	/* number of cpdma channels (symmetric) */
	u32	cpdma_reg_ofs;	/* cpdma register offset */
	u32	cpdma_sram_ofs;	/* cpdma sram offset */

	u32	slaves;		/* number of slave cpgmac ports */
	struct cpsw_slave_data	*slave_data;

	u32	ale_reg_ofs;	/* address lookup engine reg offset */
	u32	ale_entries;	/* ale table size */

	u32	host_port_reg_ofs; /* cpsw cpdma host port registers */
	u32     host_port_num; /* The port number for the host port */

	u32	hw_stats_reg_ofs;  /* cpsw hardware statistics counters */

	u32	bd_ram_ofs;   /* embedded buffer descriptor RAM offset*/
	u32	bd_ram_size;  /*buffer descriptor ram size */
	u32	hw_ram_addr; /*if the HW address for BD RAM is different */
	bool	no_bd_ram; /* no embedded BD ram*/

	u32	rx_descs;	/* Number of Rx Descriptios */

	u32	mac_control;	/* Mac control register */
};

#endif /* __CPSW_H__ */