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