2013-08-19 19:17:40 +07:00
|
|
|
/* Texas Instruments Ethernet Switch Driver
|
2012-03-19 03:17:54 +07:00
|
|
|
*
|
2013-08-19 19:17:40 +07:00
|
|
|
* Copyright (C) 2013 Texas Instruments
|
2012-03-19 03:17:54 +07:00
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or
|
2013-08-19 19:17:40 +07:00
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
* version 2 as published by the Free Software Foundation.
|
2012-03-19 03:17:54 +07:00
|
|
|
*
|
|
|
|
* 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>
|
2014-09-29 13:53:15 +07:00
|
|
|
#include <linux/phy.h>
|
2012-03-19 03:17:54 +07:00
|
|
|
|
|
|
|
struct cpsw_slave_data {
|
2012-11-14 16:07:56 +07:00
|
|
|
char phy_id[MII_BUS_ID_SIZE];
|
2012-03-19 03:17:54 +07:00
|
|
|
int phy_if;
|
|
|
|
u8 mac_addr[ETH_ALEN];
|
2013-02-11 16:52:20 +07:00
|
|
|
u16 dual_emac_res_vlan; /* Reserved VLAN for DualEMAC */
|
2012-03-19 03:17:54 +07:00
|
|
|
};
|
|
|
|
|
|
|
|
struct cpsw_platform_data {
|
2013-08-19 19:17:40 +07:00
|
|
|
struct cpsw_slave_data *slave_data;
|
2012-03-19 03:17:54 +07:00
|
|
|
u32 ss_reg_ofs; /* Subsystem control register offset */
|
|
|
|
u32 channels; /* number of cpdma channels (symmetric) */
|
|
|
|
u32 slaves; /* number of slave cpgmac ports */
|
2013-03-12 06:16:35 +07:00
|
|
|
u32 active_slave; /* time stamping, ethtool and SIOCGMIIPHY slave */
|
2012-10-29 15:45:19 +07:00
|
|
|
u32 cpts_clock_mult; /* convert input clock ticks to nanoseconds */
|
|
|
|
u32 cpts_clock_shift; /* convert input clock ticks to nanoseconds */
|
2012-03-19 03:17:54 +07:00
|
|
|
u32 ale_entries; /* ale table size */
|
|
|
|
u32 bd_ram_size; /*buffer descriptor ram size */
|
|
|
|
u32 rx_descs; /* Number of Rx Descriptios */
|
|
|
|
u32 mac_control; /* Mac control register */
|
2013-02-05 15:26:48 +07:00
|
|
|
u16 default_vlan; /* Def VLAN for ALE lookup in VLAN aware mode*/
|
2013-02-11 16:52:20 +07:00
|
|
|
bool dual_emac; /* Enable Dual EMAC mode */
|
2012-03-19 03:17:54 +07:00
|
|
|
};
|
|
|
|
|
2013-09-21 02:20:39 +07:00
|
|
|
void cpsw_phy_sel(struct device *dev, phy_interface_t phy_mode, int slave);
|
2015-01-29 02:33:04 +07:00
|
|
|
int cpsw_am33xx_cm_get_macid(struct device *dev, u16 offset, int slave,
|
|
|
|
u8 *mac_addr);
|
2013-09-21 02:20:39 +07:00
|
|
|
|
2012-03-19 03:17:54 +07:00
|
|
|
#endif /* __CPSW_H__ */
|