blob: bb3cd58d71e3fbac50c9aed1afbf7ef0cbeaa108 [file] [log] [blame]
Mugunthan V Ndf828592012-03-18 20:17:54 +00001/*
2 * Texas Instruments Ethernet Switch Driver
3 *
4 * Copyright (C) 2012 Texas Instruments
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as
8 * published by the Free Software Foundation version 2.
9 *
10 * This program is distributed "as is" WITHOUT ANY WARRANTY of any
11 * kind, whether express or implied; without even the implied warranty
12 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15#ifndef __CPSW_H__
16#define __CPSW_H__
17
18#include <linux/if_ether.h>
19
20struct cpsw_slave_data {
Richard Cochran549985e2012-11-14 09:07:56 +000021 char phy_id[MII_BUS_ID_SIZE];
Mugunthan V Ndf828592012-03-18 20:17:54 +000022 int phy_if;
23 u8 mac_addr[ETH_ALEN];
Mugunthan V Nd9ba8f92013-02-11 09:52:20 +000024 u16 dual_emac_res_vlan; /* Reserved VLAN for DualEMAC */
25
Mugunthan V Ndf828592012-03-18 20:17:54 +000026};
27
28struct cpsw_platform_data {
29 u32 ss_reg_ofs; /* Subsystem control register offset */
30 u32 channels; /* number of cpdma channels (symmetric) */
Mugunthan V Ndf828592012-03-18 20:17:54 +000031 u32 slaves; /* number of slave cpgmac ports */
32 struct cpsw_slave_data *slave_data;
Mugunthan V Ne86ac132013-03-11 23:16:35 +000033 u32 active_slave; /* time stamping, ethtool and SIOCGMIIPHY slave */
Richard Cochran00ab94e2012-10-29 08:45:19 +000034 u32 cpts_clock_mult; /* convert input clock ticks to nanoseconds */
35 u32 cpts_clock_shift; /* convert input clock ticks to nanoseconds */
Mugunthan V Ndf828592012-03-18 20:17:54 +000036 u32 ale_entries; /* ale table size */
Mugunthan V Ndf828592012-03-18 20:17:54 +000037 u32 bd_ram_size; /*buffer descriptor ram size */
Mugunthan V Ndf828592012-03-18 20:17:54 +000038 u32 rx_descs; /* Number of Rx Descriptios */
Mugunthan V Ndf828592012-03-18 20:17:54 +000039 u32 mac_control; /* Mac control register */
Mugunthan V N3b72c2f2013-02-05 08:26:48 +000040 u16 default_vlan; /* Def VLAN for ALE lookup in VLAN aware mode*/
Mugunthan V Nd9ba8f92013-02-11 09:52:20 +000041 bool dual_emac; /* Enable Dual EMAC mode */
Mugunthan V Ndf828592012-03-18 20:17:54 +000042};
43
44#endif /* __CPSW_H__ */