1 /* Texas Instruments Ethernet Switch Driver
3 * Copyright (C) 2013 Texas Instruments
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * version 2 as published by the Free Software Foundation.
9 * This program is distributed "as is" WITHOUT ANY WARRANTY of any
10 * kind, whether express or implied; without even the implied warranty
11 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
17 #include <linux/if_ether.h>
18 #include <linux/phy.h>
20 struct cpsw_slave_data
{
21 char phy_id
[MII_BUS_ID_SIZE
];
23 u8 mac_addr
[ETH_ALEN
];
24 u16 dual_emac_res_vlan
; /* Reserved VLAN for DualEMAC */
27 struct cpsw_platform_data
{
28 struct cpsw_slave_data
*slave_data
;
29 u32 ss_reg_ofs
; /* Subsystem control register offset */
30 u32 channels
; /* number of cpdma channels (symmetric) */
31 u32 slaves
; /* number of slave cpgmac ports */
32 u32 active_slave
; /* time stamping, ethtool and SIOCGMIIPHY slave */
33 u32 cpts_clock_mult
; /* convert input clock ticks to nanoseconds */
34 u32 cpts_clock_shift
; /* convert input clock ticks to nanoseconds */
35 u32 ale_entries
; /* ale table size */
36 u32 bd_ram_size
; /*buffer descriptor ram size */
37 u32 rx_descs
; /* Number of Rx Descriptios */
38 u32 mac_control
; /* Mac control register */
39 u16 default_vlan
; /* Def VLAN for ALE lookup in VLAN aware mode*/
40 bool dual_emac
; /* Enable Dual EMAC mode */
43 void cpsw_phy_sel(struct device
*dev
, phy_interface_t phy_mode
, int slave
);
44 int ti_cm_get_macid(struct device
*dev
, int slave
, u8
*mac_addr
);
46 #endif /* __CPSW_H__ */