Commit | Line | Data |
---|---|---|
dbe34724 | 1 | /* Texas Instruments Ethernet Switch Driver |
df828598 | 2 | * |
dbe34724 | 3 | * Copyright (C) 2013 Texas Instruments |
df828598 M |
4 | * |
5 | * This program is free software; you can redistribute it and/or | |
dbe34724 M |
6 | * modify it under the terms of the GNU General Public License |
7 | * version 2 as published by the Free Software Foundation. | |
df828598 M |
8 | * |
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. | |
13 | */ | |
14 | #ifndef __CPSW_H__ | |
15 | #define __CPSW_H__ | |
16 | ||
17 | #include <linux/if_ether.h> | |
bd07d34f | 18 | #include <linux/phy.h> |
df828598 M |
19 | |
20 | struct cpsw_slave_data { | |
552165bc | 21 | struct device_node *phy_node; |
549985ee | 22 | char phy_id[MII_BUS_ID_SIZE]; |
df828598 M |
23 | int phy_if; |
24 | u8 mac_addr[ETH_ALEN]; | |
d9ba8f9e | 25 | u16 dual_emac_res_vlan; /* Reserved VLAN for DualEMAC */ |
df828598 M |
26 | }; |
27 | ||
28 | struct cpsw_platform_data { | |
dbe34724 | 29 | struct cpsw_slave_data *slave_data; |
df828598 M |
30 | u32 ss_reg_ofs; /* Subsystem control register offset */ |
31 | u32 channels; /* number of cpdma channels (symmetric) */ | |
df828598 | 32 | u32 slaves; /* number of slave cpgmac ports */ |
e86ac13b | 33 | u32 active_slave; /* time stamping, ethtool and SIOCGMIIPHY slave */ |
00ab94ee RC |
34 | u32 cpts_clock_mult; /* convert input clock ticks to nanoseconds */ |
35 | u32 cpts_clock_shift; /* convert input clock ticks to nanoseconds */ | |
df828598 | 36 | u32 ale_entries; /* ale table size */ |
df828598 | 37 | u32 bd_ram_size; /*buffer descriptor ram size */ |
df828598 | 38 | u32 rx_descs; /* Number of Rx Descriptios */ |
df828598 | 39 | u32 mac_control; /* Mac control register */ |
3b72c2fe | 40 | u16 default_vlan; /* Def VLAN for ALE lookup in VLAN aware mode*/ |
d9ba8f9e | 41 | bool dual_emac; /* Enable Dual EMAC mode */ |
df828598 M |
42 | }; |
43 | ||
5892cd13 | 44 | void cpsw_phy_sel(struct device *dev, phy_interface_t phy_mode, int slave); |
b6745f6e | 45 | int ti_cm_get_macid(struct device *dev, int slave, u8 *mac_addr); |
5892cd13 | 46 | |
df828598 | 47 | #endif /* __CPSW_H__ */ |