igc_api.h revision 1.2.2.2 1 1.2.2.2 martin /* $NetBSD: igc_api.h,v 1.2.2.2 2023/10/08 13:19:34 martin Exp $ */
2 1.2.2.2 martin /* $OpenBSD: igc_api.h,v 1.2 2022/05/11 06:14:15 kevlo Exp $ */
3 1.2.2.2 martin /*-
4 1.2.2.2 martin * Copyright 2021 Intel Corp
5 1.2.2.2 martin * Copyright 2021 Rubicon Communications, LLC (Netgate)
6 1.2.2.2 martin * SPDX-License-Identifier: BSD-3-Clause
7 1.2.2.2 martin *
8 1.2.2.2 martin * $FreeBSD$
9 1.2.2.2 martin */
10 1.2.2.2 martin
11 1.2.2.2 martin #ifndef _IGC_API_H_
12 1.2.2.2 martin #define _IGC_API_H_
13 1.2.2.2 martin
14 1.2.2.2 martin #include <dev/pci/igc/if_igc.h>
15 1.2.2.2 martin #include <dev/pci/igc/igc_hw.h>
16 1.2.2.2 martin
17 1.2.2.2 martin extern void igc_init_function_pointers_i225(struct igc_hw *);
18 1.2.2.2 martin
19 1.2.2.2 martin int igc_set_mac_type(struct igc_hw *);
20 1.2.2.2 martin int igc_setup_init_funcs(struct igc_hw *, bool);
21 1.2.2.2 martin int igc_init_mac_params(struct igc_hw *);
22 1.2.2.2 martin int igc_init_nvm_params(struct igc_hw *);
23 1.2.2.2 martin int igc_init_phy_params(struct igc_hw *);
24 1.2.2.2 martin int igc_get_bus_info(struct igc_hw *);
25 1.2.2.2 martin void igc_clear_vfta(struct igc_hw *);
26 1.2.2.2 martin void igc_write_vfta(struct igc_hw *, uint32_t, uint32_t);
27 1.2.2.2 martin int igc_force_mac_fc(struct igc_hw *);
28 1.2.2.2 martin int igc_check_for_link(struct igc_hw *);
29 1.2.2.2 martin int igc_reset_hw(struct igc_hw *);
30 1.2.2.2 martin int igc_init_hw(struct igc_hw *);
31 1.2.2.2 martin int igc_setup_link(struct igc_hw *);
32 1.2.2.2 martin int igc_get_speed_and_duplex(struct igc_hw *, uint16_t *,
33 1.2.2.2 martin uint16_t *);
34 1.2.2.2 martin int igc_disable_pcie_master(struct igc_hw *);
35 1.2.2.2 martin void igc_config_collision_dist(struct igc_hw *);
36 1.2.2.2 martin int igc_rar_set(struct igc_hw *, uint8_t *, uint32_t);
37 1.2.2.2 martin uint32_t igc_hash_mc_addr(struct igc_hw *, uint8_t *);
38 1.2.2.2 martin void igc_update_mc_addr_list(struct igc_hw *, uint8_t *, uint32_t);
39 1.2.2.2 martin int igc_check_reset_block(struct igc_hw *);
40 1.2.2.2 martin int igc_get_cable_length(struct igc_hw *);
41 1.2.2.2 martin int igc_validate_mdi_setting(struct igc_hw *);
42 1.2.2.2 martin int igc_get_phy_info(struct igc_hw *);
43 1.2.2.2 martin int igc_phy_hw_reset(struct igc_hw *);
44 1.2.2.2 martin void igc_power_up_phy(struct igc_hw *);
45 1.2.2.2 martin void igc_power_down_phy(struct igc_hw *);
46 1.2.2.2 martin int igc_read_mac_addr(struct igc_hw *);
47 1.2.2.2 martin int igc_read_pba_string(struct igc_hw *, uint8_t *, uint32_t);
48 1.2.2.2 martin void igc_reload_nvm(struct igc_hw *);
49 1.2.2.2 martin int igc_validate_nvm_checksum(struct igc_hw *);
50 1.2.2.2 martin int igc_read_nvm(struct igc_hw *, uint16_t, uint16_t, uint16_t *);
51 1.2.2.2 martin int igc_write_nvm(struct igc_hw *, uint16_t, uint16_t, uint16_t *);
52 1.2.2.2 martin int igc_set_d3_lplu_state(struct igc_hw *, bool);
53 1.2.2.2 martin int igc_set_d0_lplu_state(struct igc_hw *, bool);
54 1.2.2.2 martin
55 1.2.2.2 martin #endif /* _IGC_API_H_ */
56