net/ngbe: set MAC type and LAN ID with initialization
[dpdk.git] / drivers / net / ngbe / base / ngbe_type.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2018-2021 Beijing WangXun Technology Co., Ltd.
3  * Copyright(c) 2010-2017 Intel Corporation
4  */
5
6 #ifndef _NGBE_TYPE_H_
7 #define _NGBE_TYPE_H_
8
9 #include "ngbe_status.h"
10 #include "ngbe_osdep.h"
11 #include "ngbe_devids.h"
12
13 enum ngbe_mac_type {
14         ngbe_mac_unknown = 0,
15         ngbe_mac_em,
16         ngbe_mac_em_vf,
17         ngbe_num_macs
18 };
19
20 enum ngbe_phy_type {
21         ngbe_phy_unknown = 0,
22         ngbe_phy_none,
23         ngbe_phy_rtl,
24         ngbe_phy_mvl,
25         ngbe_phy_mvl_sfi,
26         ngbe_phy_yt8521s,
27         ngbe_phy_yt8521s_sfi,
28         ngbe_phy_zte,
29         ngbe_phy_cu_mtd,
30 };
31
32 enum ngbe_media_type {
33         ngbe_media_type_unknown = 0,
34         ngbe_media_type_fiber,
35         ngbe_media_type_fiber_qsfp,
36         ngbe_media_type_copper,
37         ngbe_media_type_backplane,
38         ngbe_media_type_cx4,
39         ngbe_media_type_virtual
40 };
41
42 struct ngbe_hw;
43
44 /* Bus parameters */
45 struct ngbe_bus_info {
46         void (*set_lan_id)(struct ngbe_hw *hw);
47
48         u16 func;
49         u8 lan_id;
50 };
51
52 struct ngbe_mac_info {
53         enum ngbe_mac_type type;
54 };
55
56 struct ngbe_phy_info {
57         enum ngbe_media_type media_type;
58         enum ngbe_phy_type type;
59 };
60
61 struct ngbe_hw {
62         void IOMEM *hw_addr;
63         void *back;
64         struct ngbe_mac_info mac;
65         struct ngbe_phy_info phy;
66         struct ngbe_bus_info bus;
67         u16 device_id;
68         u16 vendor_id;
69         u16 sub_device_id;
70         u16 sub_system_id;
71
72         bool is_pf;
73 };
74
75 #include "ngbe_regs.h"
76 #include "ngbe_dummy.h"
77
78 #endif /* _NGBE_TYPE_H_ */