linux/drivers/net/ethernet/aquantia/atlantic/hw_atl2/hw_atl2_utils.h

/* SPDX-License-Identifier: GPL-2.0-only */
/* Atlantic Network Driver
 * Copyright (C) 2020 Marvell International Ltd.
 */

#ifndef HW_ATL2_UTILS_H
#define HW_ATL2_UTILS_H

#include "aq_hw.h"

/* F W    A P I */

struct link_options_s {};

struct link_control_s {};

struct thermal_shutdown_s {};

struct mac_address_s {};

struct mac_address_aligned_s {};

struct sleep_proxy_s {};

struct pause_quanta_s {};

struct data_buffer_status_s {};

struct device_caps_s {};

struct version_s {};

struct link_status_s {};

struct wol_status_s {};

struct mac_health_monitor_s {};

struct phy_health_monitor_s {};

struct device_link_caps_s {};

struct sleep_proxy_caps_s {};

struct lkp_link_caps_s {};

struct core_dump_s {};

struct trace_s {};

struct cable_diag_control_s {};

struct cable_diag_lane_data_s {};

struct cable_diag_status_s {};

struct statistics_a0_s {};

struct __packed statistics_b0_s {};

struct __packed statistics_s {};

struct filter_caps_s {};

struct request_policy_s {};

struct fw_interface_in {};

struct transaction_counter_s {};

struct management_status_s {};

struct __packed fw_interface_out {};

#define AQ_A2_FW_LINK_RATE_INVALID
#define AQ_A2_FW_LINK_RATE_10M
#define AQ_A2_FW_LINK_RATE_100M
#define AQ_A2_FW_LINK_RATE_1G
#define AQ_A2_FW_LINK_RATE_2G5
#define AQ_A2_FW_LINK_RATE_5G
#define AQ_A2_FW_LINK_RATE_10G

#define AQ_HOST_MODE_INVALID
#define AQ_HOST_MODE_ACTIVE
#define AQ_HOST_MODE_SLEEP_PROXY
#define AQ_HOST_MODE_LOW_POWER
#define AQ_HOST_MODE_SHUTDOWN

#define AQ_A2_FW_INTERFACE_A0
#define AQ_A2_FW_INTERFACE_B0

int hw_atl2_utils_initfw(struct aq_hw_s *self, const struct aq_fw_ops **fw_ops);

int hw_atl2_utils_soft_reset(struct aq_hw_s *self);

u32 hw_atl2_utils_get_fw_version(struct aq_hw_s *self);

int hw_atl2_utils_get_action_resolve_table_caps(struct aq_hw_s *self,
						u8 *base_index, u8 *count);

extern const struct aq_fw_ops aq_a2_fw_ops;

#endif /* HW_ATL2_UTILS_H */