1 /*
2  * Copyright (c) 2014-2015 Hisilicon Limited.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  */
9 
10 #ifndef _HNS_GMAC_H
11 #define _HNS_GMAC_H
12 
13 #include "hns_dsaf_mac.h"
14 
15 enum hns_port_mode {
16 	GMAC_10M_MII = 0,
17 	GMAC_100M_MII,
18 	GMAC_1000M_GMII,
19 	GMAC_10M_RGMII,
20 	GMAC_100M_RGMII,
21 	GMAC_1000M_RGMII,
22 	GMAC_10M_SGMII,
23 	GMAC_100M_SGMII,
24 	GMAC_1000M_SGMII,
25 	GMAC_10000M_SGMII	/* 10GE */
26 };
27 
28 enum hns_gmac_duplex_mdoe {
29 	GMAC_HALF_DUPLEX_MODE = 0,
30 	GMAC_FULL_DUPLEX_MODE
31 };
32 
33 struct hns_gmac_port_mode_cfg {
34 	enum hns_port_mode port_mode;
35 	u32 max_frm_size;
36 	u32 short_runts_thr;
37 	u32 pad_enable;
38 	u32 crc_add;
39 	u32 an_enable;	/*auto-nego enable  */
40 	u32 runt_pkt_en;
41 	u32 strip_pad_en;
42 };
43 
44 #define ETH_GMAC_DUMP_NUM		96
45 #endif				/* __HNS_GMAC_H__ */
46