mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-15 08:44:14 +08:00
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: Cyril Chemparathy <cyril@ti.com> Signed-off-by: Sriramakrishnan A G <srk@ti.com> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
db82173f23
commit
df828598a7
@ -49,6 +49,17 @@ config TI_DAVINCI_CPDMA
|
||||
To compile this driver as a module, choose M here: the module
|
||||
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
|
||||
tristate "TI ThunderLAN support"
|
||||
depends on (PCI || EISA)
|
||||
|
@ -7,3 +7,5 @@ obj-$(CONFIG_CPMAC) += cpmac.o
|
||||
obj-$(CONFIG_TI_DAVINCI_EMAC) += davinci_emac.o
|
||||
obj-$(CONFIG_TI_DAVINCI_MDIO) += davinci_mdio.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
drivers/net/ethernet/ti/cpsw.c
Normal file
1018
drivers/net/ethernet/ti/cpsw.c
Normal file
File diff suppressed because it is too large
Load Diff
55
include/linux/platform_data/cpsw.h
Normal file
55
include/linux/platform_data/cpsw.h
Normal file
@ -0,0 +1,55 @@
|
||||
/*
|
||||
* 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__ */
|
Loading…
Reference in New Issue
Block a user