blob: 59fb4dcf6f8004577ebe3f582495fdaa0a0416af [file] [log] [blame]
/*
* Copyright (c) 2019, The Linux Foundation. All rights reserved.
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all copies.
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/**
* @defgroup
* @{
*/
#ifndef _SFP_REG_H_
#define _SFP_REG_H_
/*[register] SFP_DEV_TYPE*/
#define SFP_DEV_TYPE
#define SFP_DEV_TYPE_ADDRESS 0x0
#define SFP_DEV_TYPE_NUM 1
#define SFP_DEV_TYPE_INC 0x1
#define SFP_DEV_TYPE_TYPE REG_TYPE_RO
#define SFP_DEV_TYPE_DEFAULT 0x0
/*[field] ID*/
#define SFP_DEV_TYPE_ID
#define SFP_DEV_TYPE_ID_OFFSET 0
#define SFP_DEV_TYPE_ID_LEN 8
#define SFP_DEV_TYPE_ID_DEFAULT 0x0
struct sfp_dev_type {
a_uint8_t id:8;
};
union sfp_dev_type_u {
a_uint8_t val;
struct sfp_dev_type bf;
};
/*[register] SFP_DEV_TYPE_EXT*/
#define SFP_DEV_TYPE_EXT
#define SFP_DEV_TYPE_EXT_ADDRESS 0x1
#define SFP_DEV_TYPE_EXT_NUM 1
#define SFP_DEV_TYPE_EXT_INC 0x1
#define SFP_DEV_TYPE_EXT_TYPE REG_TYPE_RO
#define SFP_DEV_TYPE_EXT_DEFAULT 0x0
/*[field] ID*/
#define SFP_DEV_TYPE_EXT_ID
#define SFP_DEV_TYPE_EXT_ID_OFFSET 0
#define SFP_DEV_TYPE_EXT_ID_LEN 8
#define SFP_DEV_TYPE_EXT_ID_DEFAULT 0x0
struct sfp_dev_type_ext {
a_uint8_t id:8;
};
union sfp_dev_type_ext_u {
a_uint8_t val;
struct sfp_dev_type_ext bf;
};
/*[register] SFP_DEV_CONNECTOR_TYPE*/
#define SFP_DEV_CONNECTOR_TYPE
#define SFP_DEV_CONNECTOR_TYPE_ADDRESS 0x2
#define SFP_DEV_CONNECTOR_TYPE_NUM 1
#define SFP_DEV_CONNECTOR_TYPE_INC 0x1
#define SFP_DEV_CONNECTOR_TYPE_TYPE REG_TYPE_RO
#define SFP_DEV_CONNECTOR_TYPE_DEFAULT 0x0
/*[field] CODE*/
#define SFP_DEV_CONNECTOR_TYPE_CODE
#define SFP_DEV_CONNECTOR_TYPE_CODE_OFFSET 0
#define SFP_DEV_CONNECTOR_TYPE_CODE_LEN 8
#define SFP_DEV_CONNECTOR_TYPE_CODE_DEFAULT 0x0
struct sfp_dev_connector_type {
a_uint8_t code:8;
};
union sfp_dev_connector_type_u {
a_uint8_t val;
struct sfp_dev_connector_type bf;
};
/*[register] SFP_TRANSC*/
#define SFP_TRANSC
#define SFP_TRANSC_ADDRESS 0x3
#define SFP_TRANSC_NUM 1
#define SFP_TRANSC_INC 0x8
#define SFP_TRANSC_TYPE REG_TYPE_RO
#define SFP_TRANSC_DEFAULT 0x0
/*[field] INFINIBAND_CCODE*/
#define SFP_TRANSC_INFINIBAND_CCODE
#define SFP_TRANSC_INFINIBAND_CCODE_OFFSET 0
#define SFP_TRANSC_INFINIBAND_CCODE_LEN 4
#define SFP_TRANSC_INFINIBAND_CCODE_DEFAULT 0x0
/*[field] ETH_10G_CCODE*/
#define SFP_TRANSC_ETH_10G_CCODE
#define SFP_TRANSC_ETH_10G_CCODE_OFFSET 4
#define SFP_TRANSC_ETH_10G_CCODE_LEN 4
#define SFP_TRANSC_ETH_10G_CCODE_DEFAULT 0x0
/*[field] SONET_CCODE_1*/
#define SFP_TRANSC_SONET_CCODE_1
#define SFP_TRANSC_SONET_CCODE_1_OFFSET 8
#define SFP_TRANSC_SONET_CCODE_1_LEN 6
#define SFP_TRANSC_SONET_CCODE_1_DEFAULT 0x0
/*[field] ESCON_CCODE*/
#define SFP_TRANSC_ESCON_CCODE
#define SFP_TRANSC_ESCON_CCODE_OFFSET 14
#define SFP_TRANSC_ESCON_CCODE_LEN 2
#define SFP_TRANSC_ESCON_CCODE_DEFAULT 0x0
/*[field] SONET_CCODE_2*/
#define SFP_TRANSC_SONET_CCODE_2
#define SFP_TRANSC_SONET_CCODE_2_OFFSET 16
#define SFP_TRANSC_SONET_CCODE_2_LEN 8
#define SFP_TRANSC_SONET_CCODE_2_DEFAULT 0x0
/*[field] ETH_CCODE*/
#define SFP_TRANSC_ETH_CCODE
#define SFP_TRANSC_ETH_CCODE_OFFSET 24
#define SFP_TRANSC_ETH_CCODE_LEN 8
#define SFP_TRANSC_ETH_CCODE_DEFAULT 0x0
/*[field] FIBER_CH_TECH_1*/
#define SFP_TRANSC_FIBER_CH_TECH_1
#define SFP_TRANSC_FIBER_CH_TECH_1_OFFSET 32
#define SFP_TRANSC_FIBER_CH_TECH_1_LEN 3
#define SFP_TRANSC_FIBER_CH_TECH_1_DEFAULT 0x0
/*[field] FIBER_CH_LINK_LEN*/
#define SFP_TRANSC_FIBER_CH_LINK_LEN
#define SFP_TRANSC_FIBER_CH_LINK_LEN_OFFSET 35
#define SFP_TRANSC_FIBER_CH_LINK_LEN_LEN 5
#define SFP_TRANSC_FIBER_CH_LINK_LEN_DEFAULT 0x0
/*[field] UNALLOCATED*/
#define SFP_TRANSC_UNALLOCATED
#define SFP_TRANSC_UNALLOCATED_OFFSET 40
#define SFP_TRANSC_UNALLOCATED_LEN 2
#define SFP_TRANSC_UNALLOCATED_DEFAULT 0x0
/*[field] CABLE_TECH*/
#define SFP_TRANSC_CABLE_TECH
#define SFP_TRANSC_CABLE_TECH_OFFSET 42
#define SFP_TRANSC_CABLE_TECH_LEN 2
#define SFP_TRANSC_CABLE_TECH_DEFAULT 0x0
/*[field] FIBER_CH_TECH_2*/
#define SFP_TRANSC_FIBER_CH_TECH_2
#define SFP_TRANSC_FIBER_CH_TECH_2_OFFSET 44
#define SFP_TRANSC_FIBER_CH_TECH_2_LEN 4
#define SFP_TRANSC_FIBER_CH_TECH_2_DEFAULT 0x0
/*[field] FIBER_CHAN_TM_MEDIA*/
#define SFP_TRANSC_FIBER_CHAN_TM_MEDIA
#define SFP_TRANSC_FIBER_CHAN_TM_MEDIA_OFFSET 48
#define SFP_TRANSC_FIBER_CHAN_TM_MEDIA_LEN 8
#define SFP_TRANSC_FIBER_CHAN_TM_MEDIA_DEFAULT 0x0
/*[field] FIBER_CH_SPEED*/
#define SFP_TRANSC_FIBER_CH_SPEED
#define SFP_TRANSC_FIBER_CH_SPEED_OFFSET 56
#define SFP_TRANSC_FIBER_CH_SPEED_LEN 8
#define SFP_TRANSC_FIBER_CH_SPEED_DEFAULT 0x0
struct sfp_transc {
a_uint8_t infiniband_ccode:4;
a_uint8_t eth_10g_ccode:4;
a_uint8_t sonet_ccode_1:6;
a_uint8_t escon_ccode:2;
a_uint8_t sonet_ccode_2:8;
a_uint8_t eth_ccode:8;
a_uint8_t fiber_ch_tech_1:3;
a_uint8_t fiber_ch_link_len:5;
a_uint8_t unallocated:2;
a_uint8_t cable_tech:2;
a_uint8_t fiber_ch_tech_2:4;
a_uint8_t fiber_chan_tm_media:8;
a_uint8_t fiber_ch_speed:8;
};
union sfp_transc_u {
a_uint8_t val[8];
struct sfp_transc bf;
};
/*[register] SFP_ENCODING*/
#define SFP_ENCODING
#define SFP_ENCODING_ADDRESS 0xb
#define SFP_ENCODING_NUM 1
#define SFP_ENCODING_INC 0x1
#define SFP_ENCODING_TYPE REG_TYPE_RO
#define SFP_ENCODING_DEFAULT 0x0
/*[field] CODE*/
#define SFP_ENCODING_CODE
#define SFP_ENCODING_CODE_OFFSET 0
#define SFP_ENCODING_CODE_LEN 8
#define SFP_ENCODING_CODE_DEFAULT 0x0
struct sfp_encoding {
a_uint8_t code:8;
};
union sfp_encoding_u {
a_uint8_t val;
struct sfp_encoding bf;
};
/*[register] SFP_BR*/
#define SFP_BR
#define SFP_BR_ADDRESS 0xc
#define SFP_BR_NUM 1
#define SFP_BR_INC 0x1
#define SFP_BR_TYPE REG_TYPE_RO
#define SFP_BR_DEFAULT 0x0
/*[field] BIT*/
#define SFP_BR_BIT
#define SFP_BR_BIT_OFFSET 0
#define SFP_BR_BIT_LEN 8
#define SFP_BR_BIT_DEFAULT 0x0
struct sfp_br {
a_uint8_t bit:8;
};
union sfp_br_u {
a_uint8_t val;
struct sfp_br bf;
};
/*[register] SFP_RATE*/
#define SFP_RATE
#define SFP_RATE_ADDRESS 0xd
#define SFP_RATE_NUM 1
#define SFP_RATE_INC 0x1
#define SFP_RATE_TYPE REG_TYPE_RO
#define SFP_RATE_DEFAULT 0x0
/*[field] ID*/
#define SFP_RATE_ID
#define SFP_RATE_ID_OFFSET 0
#define SFP_RATE_ID_LEN 8
#define SFP_RATE_ID_DEFAULT 0x0
struct sfp_rate {
a_uint8_t id:8;
};
union sfp_rate_u {
a_uint8_t val;
struct sfp_rate bf;
};
/*[register] SFP_LINK_LEN*/
#define SFP_LINK_LEN
#define SFP_LINK_LEN_ADDRESS 0xe
#define SFP_LINK_LEN_NUM 1
#define SFP_LINK_LEN_INC 0x6
#define SFP_LINK_LEN_TYPE REG_TYPE_RO
#define SFP_LINK_LEN_DEFAULT 0x0
/*[field] SINGLE_MODE_KM*/
#define SFP_LINK_LEN_SINGLE_MODE_KM
#define SFP_LINK_LEN_SINGLE_MODE_KM_OFFSET 0
#define SFP_LINK_LEN_SINGLE_MODE_KM_LEN 8
#define SFP_LINK_LEN_SINGLE_MODE_KM_DEFAULT 0x0
/*[field] SINGLE_MODE_100M*/
#define SFP_LINK_LEN_SINGLE_MODE_100M
#define SFP_LINK_LEN_SINGLE_MODE_100M_OFFSET 8
#define SFP_LINK_LEN_SINGLE_MODE_100M_LEN 8
#define SFP_LINK_LEN_SINGLE_MODE_100M_DEFAULT 0x0
/*[field] OM2_MODE_10M*/
#define SFP_LINK_LEN_OM2_MODE_10M
#define SFP_LINK_LEN_OM2_MODE_10M_OFFSET 16
#define SFP_LINK_LEN_OM2_MODE_10M_LEN 8
#define SFP_LINK_LEN_OM2_MODE_10M_DEFAULT 0x0
/*[field] OM1_MODE_10M*/
#define SFP_LINK_LEN_OM1_MODE_10M
#define SFP_LINK_LEN_OM1_MODE_10M_OFFSET 24
#define SFP_LINK_LEN_OM1_MODE_10M_LEN 8
#define SFP_LINK_LEN_OM1_MODE_10M_DEFAULT 0x0
/*[field] COPPER_MODE_1M*/
#define SFP_LINK_LEN_COPPER_MODE_1M
#define SFP_LINK_LEN_COPPER_MODE_1M_OFFSET 32
#define SFP_LINK_LEN_COPPER_MODE_1M_LEN 8
#define SFP_LINK_LEN_COPPER_MODE_1M_DEFAULT 0x0
/*[field] OM3_MODE_1M*/
#define SFP_LINK_LEN_OM3_MODE_1M
#define SFP_LINK_LEN_OM3_MODE_1M_OFFSET 40
#define SFP_LINK_LEN_OM3_MODE_1M_LEN 8
#define SFP_LINK_LEN_OM3_MODE_1M_DEFAULT 0x0
struct sfp_link_len {
a_uint8_t single_mode_km:8;
a_uint8_t single_mode_100m:8;
a_uint8_t om2_mode_10m:8;
a_uint8_t om1_mode_10m:8;
a_uint8_t copper_mode_1m:8;
a_uint8_t om3_mode_1m:8;
};
union sfp_link_len_u {
a_uint8_t val[6];
struct sfp_link_len bf;
};
/*[register] SFP_VENDOR*/
#define SFP_VENDOR
#define SFP_VENDOR_ADDRESS 0x14
#define SFP_VENDOR_NUM 1
#define SFP_VENDOR_INC 0x28
#define SFP_VENDOR_TYPE REG_TYPE_RO
#define SFP_VENDOR_DEFAULT 0x0
/*[field] NAME*/
#define SFP_VENDOR_NAME
#define SFP_VENDOR_NAME_OFFSET 0
#define SFP_VENDOR_NAME_LEN 128
#define SFP_VENDOR_NAME_DEFAULT 0x0
/*[field] TRANSCODE*/
#define SFP_VENDOR_TRANSCODE
#define SFP_VENDOR_TRANSCODE_OFFSET 128
#define SFP_VENDOR_TRANSCODE_LEN 8
#define SFP_VENDOR_TRANSCODE_DEFAULT 0x0
/*[field] OUI*/
#define SFP_VENDOR_OUI
#define SFP_VENDOR_OUI_OFFSET 136
#define SFP_VENDOR_OUI_LEN 24
#define SFP_VENDOR_OUI_DEFAULT 0x0
/*[field] PN*/
#define SFP_VENDOR_PN
#define SFP_VENDOR_PN_OFFSET 160
#define SFP_VENDOR_PN_LEN 128
#define SFP_VENDOR_PN_DEFAULT 0x0
/*[field] REV*/
#define SFP_VENDOR_REV
#define SFP_VENDOR_REV_OFFSET 288
#define SFP_VENDOR_REV_LEN 32
#define SFP_VENDOR_REV_DEFAULT 0x0
struct sfp_vendor {
a_uint8_t name_0:8;
a_uint8_t name_1:8;
a_uint8_t name_2:8;
a_uint8_t name_3:8;
a_uint8_t name_4:8;
a_uint8_t name_5:8;
a_uint8_t name_6:8;
a_uint8_t name_7:8;
a_uint8_t name_8:8;
a_uint8_t name_9:8;
a_uint8_t name_10:8;
a_uint8_t name_11:8;
a_uint8_t name_12:8;
a_uint8_t name_13:8;
a_uint8_t name_14:8;
a_uint8_t name_15:8;
a_uint8_t transcode:8;
a_uint8_t oui_0:8;
a_uint8_t oui_1:8;
a_uint8_t oui_2:8;
a_uint8_t pn_0:8;
a_uint8_t pn_1:8;
a_uint8_t pn_2:8;
a_uint8_t pn_3:8;
a_uint8_t pn_4:8;
a_uint8_t pn_5:8;
a_uint8_t pn_6:8;
a_uint8_t pn_7:8;
a_uint8_t pn_8:8;
a_uint8_t pn_9:8;
a_uint8_t pn_10:8;
a_uint8_t pn_11:8;
a_uint8_t pn_12:8;
a_uint8_t pn_13:8;
a_uint8_t pn_14:8;
a_uint8_t pn_15:8;
a_uint8_t rev_0:8;
a_uint8_t rev_1:8;
a_uint8_t rev_2:8;
a_uint8_t rev_3:8;
};
union sfp_vendor_u {
a_uint8_t val[40];
struct sfp_vendor bf;
};
/*[register] SFP_LASER*/
#define SFP_LASER
#define SFP_LASER_ADDRESS 0x3c
#define SFP_LASER_NUM 1
#define SFP_LASER_INC 0x2
#define SFP_LASER_TYPE REG_TYPE_RO
#define SFP_LASER_DEFAULT 0x0
/*[field] WAVELENGTH*/
#define SFP_LASER_WAVELENGTH
#define SFP_LASER_WAVELENGTH_OFFSET 0
#define SFP_LASER_WAVELENGTH_LEN 16
#define SFP_LASER_WAVELENGTH_DEFAULT 0x0
struct sfp_laser {
a_uint8_t wavelength_0:8;
a_uint8_t wavelength_1:8;
};
union sfp_laser_u {
a_uint8_t val[2];
struct sfp_laser bf;
};
/*[register] SFP_BASE*/
#define SFP_BASE
#define SFP_BASE_ADDRESS 0x3f
#define SFP_BASE_NUM 1
#define SFP_BASE_INC 0x1
#define SFP_BASE_TYPE REG_TYPE_RO
#define SFP_BASE_DEFAULT 0x0
/*[field] CHECK_CODE*/
#define SFP_BASE_CHECK_CODE
#define SFP_BASE_CHECK_CODE_OFFSET 0
#define SFP_BASE_CHECK_CODE_LEN 8
#define SFP_BASE_CHECK_CODE_DEFAULT 0x0
struct sfp_base {
a_uint8_t check_code:8;
};
union sfp_base_u {
a_uint8_t val;
struct sfp_base bf;
};
/*[register] SFP_OPTION*/
#define SFP_OPTION
#define SFP_OPTION_ADDRESS 0x40
#define SFP_OPTION_NUM 1
#define SFP_OPTION_INC 0x2
#define SFP_OPTION_TYPE REG_TYPE_RO
#define SFP_OPTION_DEFAULT 0x0
/*[field] LINEAR_RECV_OUTPUT*/
#define SFP_OPTION_LINEAR_RECV_OUTPUT
#define SFP_OPTION_LINEAR_RECV_OUTPUT_OFFSET 0
#define SFP_OPTION_LINEAR_RECV_OUTPUT_LEN 1
#define SFP_OPTION_LINEAR_RECV_OUTPUT_DEFAULT 0x0
/*[field] PWR_LEVEL_DECLAR*/
#define SFP_OPTION_PWR_LEVEL_DECLAR
#define SFP_OPTION_PWR_LEVEL_DECLAR_OFFSET 1
#define SFP_OPTION_PWR_LEVEL_DECLAR_LEN 1
#define SFP_OPTION_PWR_LEVEL_DECLAR_DEFAULT 0x0
/*[field] COOL_TRANSC_DECLAR*/
#define SFP_OPTION_COOL_TRANSC_DECLAR
#define SFP_OPTION_COOL_TRANSC_DECLAR_OFFSET 2
#define SFP_OPTION_COOL_TRANSC_DECLAR_LEN 1
#define SFP_OPTION_COOL_TRANSC_DECLAR_DEFAULT 0x0
/*[field] UNALLOCATED_1*/
#define SFP_OPTION_UNALLOCATED_1
#define SFP_OPTION_UNALLOCATED_1_OFFSET 3
#define SFP_OPTION_UNALLOCATED_1_LEN 5
#define SFP_OPTION_UNALLOCATED_1_DEFAULT 0x0
/*[field] UNALLOCATED_2*/
#define SFP_OPTION_UNALLOCATED_2
#define SFP_OPTION_UNALLOCATED_2_OFFSET 8
#define SFP_OPTION_UNALLOCATED_2_LEN 1
#define SFP_OPTION_UNALLOCATED_2_DEFAULT 0x0
/*[field] LOSS_SIGNAL*/
#define SFP_OPTION_LOSS_SIGNAL
#define SFP_OPTION_LOSS_SIGNAL_OFFSET 9
#define SFP_OPTION_LOSS_SIGNAL_LEN 1
#define SFP_OPTION_LOSS_SIGNAL_DEFAULT 0x0
/*[field] LOSS_INVERT_SIGNAL*/
#define SFP_OPTION_LOSS_INVERT_SIGNAL
#define SFP_OPTION_LOSS_INVERT_SIGNAL_OFFSET 10
#define SFP_OPTION_LOSS_INVERT_SIGNAL_LEN 1
#define SFP_OPTION_LOSS_INVERT_SIGNAL_DEFAULT 0x0
/*[field] TX_FAULT_SIGNAL*/
#define SFP_OPTION_TX_FAULT_SIGNAL
#define SFP_OPTION_TX_FAULT_SIGNAL_OFFSET 11
#define SFP_OPTION_TX_FAULT_SIGNAL_LEN 1
#define SFP_OPTION_TX_FAULT_SIGNAL_DEFAULT 0x0
/*[field] TX_DISABLE*/
#define SFP_OPTION_TX_DISABLE
#define SFP_OPTION_TX_DISABLE_OFFSET 12
#define SFP_OPTION_TX_DISABLE_LEN 1
#define SFP_OPTION_TX_DISABLE_DEFAULT 0x0
/*[field] RATE_SEL*/
#define SFP_OPTION_RATE_SEL
#define SFP_OPTION_RATE_SEL_OFFSET 13
#define SFP_OPTION_RATE_SEL_LEN 1
#define SFP_OPTION_RATE_SEL_DEFAULT 0x0
/*[field] UNALLOCATED_3*/
#define SFP_OPTION_UNALLOCATED_3
#define SFP_OPTION_UNALLOCATED_3_OFFSET 14
#define SFP_OPTION_UNALLOCATED_3_LEN 2
#define SFP_OPTION_UNALLOCATED_3_DEFAULT 0x0
struct sfp_option {
a_uint8_t linear_recv_output:1;
a_uint8_t pwr_level_declar:1;
a_uint8_t cool_transc_declar:1;
a_uint8_t unallocated_1:5;
a_uint8_t unallocated_2:1;
a_uint8_t loss_signal:1;
a_uint8_t loss_invert_signal:1;
a_uint8_t tx_fault_signal:1;
a_uint8_t tx_disable:1;
a_uint8_t rate_sel:1;
a_uint8_t unallocated_3:2;
};
union sfp_option_u {
a_uint8_t val[2];
struct sfp_option bf;
};
/*[register] SFP_RATE_CTRL*/
#define SFP_RATE_CTRL
#define SFP_RATE_CTRL_ADDRESS 0x42
#define SFP_RATE_CTRL_NUM 1
#define SFP_RATE_CTRL_INC 0x2
#define SFP_RATE_CTRL_TYPE REG_TYPE_RO
#define SFP_RATE_CTRL_DEFAULT 0x0
/*[field] UPPER*/
#define SFP_RATE_CTRL_UPPER
#define SFP_RATE_CTRL_UPPER_OFFSET 0
#define SFP_RATE_CTRL_UPPER_LEN 8
#define SFP_RATE_CTRL_UPPER_DEFAULT 0x0
/*[field] LOWER*/
#define SFP_RATE_CTRL_LOWER
#define SFP_RATE_CTRL_LOWER_OFFSET 8
#define SFP_RATE_CTRL_LOWER_LEN 8
#define SFP_RATE_CTRL_LOWER_DEFAULT 0x0
struct sfp_rate_ctrl {
a_uint8_t upper:8;
a_uint8_t lower:8;
};
union sfp_rate_ctrl_u {
a_uint8_t val[2];
struct sfp_rate_ctrl bf;
};
/*[register] SFP_VENDOR_EXT*/
#define SFP_VENDOR_EXT
#define SFP_VENDOR_EXT_ADDRESS 0x44
#define SFP_VENDOR_EXT_NUM 1
#define SFP_VENDOR_EXT_INC 0x18
#define SFP_VENDOR_EXT_TYPE REG_TYPE_RO
#define SFP_VENDOR_EXT_DEFAULT 0x0
/*[field] SN*/
#define SFP_VENDOR_EXT_SN
#define SFP_VENDOR_EXT_SN_OFFSET 0
#define SFP_VENDOR_EXT_SN_LEN 128
#define SFP_VENDOR_EXT_SN_DEFAULT 0x0
/*[field] DATE_CODE*/
#define SFP_VENDOR_EXT_DATE_CODE
#define SFP_VENDOR_EXT_DATE_CODE_OFFSET 128
#define SFP_VENDOR_EXT_DATE_CODE_LEN 64
#define SFP_VENDOR_EXT_DATE_CODE_DEFAULT 0x0
struct sfp_vendor_ext {
a_uint8_t sn_0:8;
a_uint8_t sn_1:8;
a_uint8_t sn_2:8;
a_uint8_t sn_3:8;
a_uint8_t sn_4:8;
a_uint8_t sn_5:8;
a_uint8_t sn_6:8;
a_uint8_t sn_7:8;
a_uint8_t sn_8:8;
a_uint8_t sn_9:8;
a_uint8_t sn_10:8;
a_uint8_t sn_11:8;
a_uint8_t sn_12:8;
a_uint8_t sn_13:8;
a_uint8_t sn_14:8;
a_uint8_t sn_15:8;
a_uint8_t date_code_0:8;
a_uint8_t date_code_1:8;
a_uint8_t date_code_2:8;
a_uint8_t date_code_3:8;
a_uint8_t date_code_4:8;
a_uint8_t date_code_5:8;
a_uint8_t date_code_6:8;
a_uint8_t date_code_7:8;
};
union sfp_vendor_ext_u {
a_uint8_t val[24];
struct sfp_vendor_ext bf;
};
/*[register] SFP_ENHANCED*/
#define SFP_ENHANCED
#define SFP_ENHANCED_ADDRESS 0x5c
#define SFP_ENHANCED_NUM 1
#define SFP_ENHANCED_INC 0x3
#define SFP_ENHANCED_TYPE REG_TYPE_RO
#define SFP_ENHANCED_DEFAULT 0x0
/*[field] UNALLOCATED_TYPE*/
#define SFP_ENHANCED_UNALLOCATED_TYPE
#define SFP_ENHANCED_UNALLOCATED_TYPE_OFFSET 0
#define SFP_ENHANCED_UNALLOCATED_TYPE_LEN 2
#define SFP_ENHANCED_UNALLOCATED_TYPE_DEFAULT 0x0
/*[field] ADDR_MODE*/
#define SFP_ENHANCED_ADDR_MODE
#define SFP_ENHANCED_ADDR_MODE_OFFSET 2
#define SFP_ENHANCED_ADDR_MODE_LEN 1
#define SFP_ENHANCED_ADDR_MODE_DEFAULT 0x0
/*[field] RE_PWR_TYPE*/
#define SFP_ENHANCED_RE_PWR_TYPE
#define SFP_ENHANCED_RE_PWR_TYPE_OFFSET 3
#define SFP_ENHANCED_RE_PWR_TYPE_LEN 1
#define SFP_ENHANCED_RE_PWR_TYPE_DEFAULT 0x0
/*[field] EXTERNAL_CAL*/
#define SFP_ENHANCED_EXTERNAL_CAL
#define SFP_ENHANCED_EXTERNAL_CAL_OFFSET 4
#define SFP_ENHANCED_EXTERNAL_CAL_LEN 1
#define SFP_ENHANCED_EXTERNAL_CAL_DEFAULT 0x0
/*[field] INTERNAL_CAL*/
#define SFP_ENHANCED_INTERNAL_CAL
#define SFP_ENHANCED_INTERNAL_CAL_OFFSET 5
#define SFP_ENHANCED_INTERNAL_CAL_LEN 1
#define SFP_ENHANCED_INTERNAL_CAL_DEFAULT 0x0
/*[field] DIAG_MON_FLAG*/
#define SFP_ENHANCED_DIAG_MON_FLAG
#define SFP_ENHANCED_DIAG_MON_FLAG_OFFSET 6
#define SFP_ENHANCED_DIAG_MON_FLAG_LEN 1
#define SFP_ENHANCED_DIAG_MON_FLAG_DEFAULT 0x0
/*[field] LEGACY_TYPE*/
#define SFP_ENHANCED_LEGACY_TYPE
#define SFP_ENHANCED_LEGACY_TYPE_OFFSET 7
#define SFP_ENHANCED_LEGACY_TYPE_LEN 1
#define SFP_ENHANCED_LEGACY_TYPE_DEFAULT 0x0
/*[field] UNALLOCATED_OP*/
#define SFP_ENHANCED_UNALLOCATED_OP
#define SFP_ENHANCED_UNALLOCATED_OP_OFFSET 8
#define SFP_ENHANCED_UNALLOCATED_OP_LEN 1
#define SFP_ENHANCED_UNALLOCATED_OP_DEFAULT 0x0
/*[field] SOFT_RATE_SEL_OP*/
#define SFP_ENHANCED_SOFT_RATE_SEL_OP
#define SFP_ENHANCED_SOFT_RATE_SEL_OP_OFFSET 9
#define SFP_ENHANCED_SOFT_RATE_SEL_OP_LEN 1
#define SFP_ENHANCED_SOFT_RATE_SEL_OP_DEFAULT 0x0
/*[field] APP_SEL_OP*/
#define SFP_ENHANCED_APP_SEL_OP
#define SFP_ENHANCED_APP_SEL_OP_OFFSET 10
#define SFP_ENHANCED_APP_SEL_OP_LEN 1
#define SFP_ENHANCED_APP_SEL_OP_DEFAULT 0x0
/*[field] SOFT_RATE_CTRL_OP*/
#define SFP_ENHANCED_SOFT_RATE_CTRL_OP
#define SFP_ENHANCED_SOFT_RATE_CTRL_OP_OFFSET 11
#define SFP_ENHANCED_SOFT_RATE_CTRL_OP_LEN 1
#define SFP_ENHANCED_SOFT_RATE_CTRL_OP_DEFAULT 0x0
/*[field] RX_LOS_OP*/
#define SFP_ENHANCED_RX_LOS_OP
#define SFP_ENHANCED_RX_LOS_OP_OFFSET 12
#define SFP_ENHANCED_RX_LOS_OP_LEN 1
#define SFP_ENHANCED_RX_LOS_OP_DEFAULT 0x0
/*[field] TX_FAULT_OP*/
#define SFP_ENHANCED_TX_FAULT_OP
#define SFP_ENHANCED_TX_FAULT_OP_OFFSET 13
#define SFP_ENHANCED_TX_FAULT_OP_LEN 1
#define SFP_ENHANCED_TX_FAULT_OP_DEFAULT 0x0
/*[field] TX_DISABLE_CTRL_OP*/
#define SFP_ENHANCED_TX_DISABLE_CTRL_OP
#define SFP_ENHANCED_TX_DISABLE_CTRL_OP_OFFSET 14
#define SFP_ENHANCED_TX_DISABLE_CTRL_OP_LEN 1
#define SFP_ENHANCED_TX_DISABLE_CTRL_OP_DEFAULT 0x0
/*[field] ALARM_WARNING_FLAG_OP*/
#define SFP_ENHANCED_ALARM_WARNING_FLAG_OP
#define SFP_ENHANCED_ALARM_WARNING_FLAG_OP_OFFSET 15
#define SFP_ENHANCED_ALARM_WARNING_FLAG_OP_LEN 1
#define SFP_ENHANCED_ALARM_WARNING_FLAG_OP_DEFAULT 0x0
/*[field] CMPL_FEATURE*/
#define SFP_ENHANCED_CMPL_FEATURE
#define SFP_ENHANCED_CMPL_FEATURE_OFFSET 16
#define SFP_ENHANCED_CMPL_FEATURE_LEN 8
#define SFP_ENHANCED_CMPL_FEATURE_DEFAULT 0x0
struct sfp_enhanced {
a_uint8_t unallocated_type:2;
a_uint8_t addr_mode:1;
a_uint8_t re_pwr_type:1;
a_uint8_t external_cal:1;
a_uint8_t internal_cal:1;
a_uint8_t diag_mon_flag:1;
a_uint8_t legacy_type:1;
a_uint8_t unallocated_op:1;
a_uint8_t soft_rate_sel_op:1;
a_uint8_t app_sel_op:1;
a_uint8_t soft_rate_ctrl_op:1;
a_uint8_t rx_los_op:1;
a_uint8_t tx_fault_op:1;
a_uint8_t tx_disable_ctrl_op:1;
a_uint8_t alarm_warning_flag_op:1;
a_uint8_t cmpl_feature:8;
};
union sfp_enhanced_u {
a_uint8_t val[3];
struct sfp_enhanced bf;
};
/*[register] SFP_EXT*/
#define SFP_EXT
#define SFP_EXT_ADDRESS 0x5f
#define SFP_EXT_NUM 1
#define SFP_EXT_INC 0x1
#define SFP_EXT_TYPE REG_TYPE_RO
#define SFP_EXT_DEFAULT 0x0
/*[field] CHECK_CODE*/
#define SFP_EXT_CHECK_CODE
#define SFP_EXT_CHECK_CODE_OFFSET 0
#define SFP_EXT_CHECK_CODE_LEN 8
#define SFP_EXT_CHECK_CODE_DEFAULT 0x0
struct sfp_ext {
a_uint8_t check_code:8;
};
union sfp_ext_u {
a_uint8_t val;
struct sfp_ext bf;
};
/*[register] SFP_DIAG_THRESHOLD*/
#define SFP_DIAG_THRESHOLD
#define SFP_DIAG_THRESHOLD_ADDRESS 0x0
#define SFP_DIAG_THRESHOLD_NUM 1
#define SFP_DIAG_THRESHOLD_INC 0x28
#define SFP_DIAG_THRESHOLD_TYPE REG_TYPE_RO
#define SFP_DIAG_THRESHOLD_DEFAULT 0x0
/*[field] TEMP_HIGH_ALARM*/
#define SFP_DIAG_THRESHOLD_TEMP_HIGH_ALARM
#define SFP_DIAG_THRESHOLD_TEMP_HIGH_ALARM_OFFSET 0
#define SFP_DIAG_THRESHOLD_TEMP_HIGH_ALARM_LEN 16
#define SFP_DIAG_THRESHOLD_TEMP_HIGH_ALARM_DEFAULT 0x0
/*[field] TEMP_LOW_ALARM*/
#define SFP_DIAG_THRESHOLD_TEMP_LOW_ALARM
#define SFP_DIAG_THRESHOLD_TEMP_LOW_ALARM_OFFSET 16
#define SFP_DIAG_THRESHOLD_TEMP_LOW_ALARM_LEN 16
#define SFP_DIAG_THRESHOLD_TEMP_LOW_ALARM_DEFAULT 0x0
/*[field] TEMP_HIGH_WARNING*/
#define SFP_DIAG_THRESHOLD_TEMP_HIGH_WARNING
#define SFP_DIAG_THRESHOLD_TEMP_HIGH_WARNING_OFFSET 32
#define SFP_DIAG_THRESHOLD_TEMP_HIGH_WARNING_LEN 16
#define SFP_DIAG_THRESHOLD_TEMP_HIGH_WARNING_DEFAULT 0x0
/*[field] TEMP_LOW_WARNING*/
#define SFP_DIAG_THRESHOLD_TEMP_LOW_WARNING
#define SFP_DIAG_THRESHOLD_TEMP_LOW_WARNING_OFFSET 48
#define SFP_DIAG_THRESHOLD_TEMP_LOW_WARNING_LEN 16
#define SFP_DIAG_THRESHOLD_TEMP_LOW_WARNING_DEFAULT 0x0
/*[field] VOL_HIGH_ALARM*/
#define SFP_DIAG_THRESHOLD_VOL_HIGH_ALARM
#define SFP_DIAG_THRESHOLD_VOL_HIGH_ALARM_OFFSET 64
#define SFP_DIAG_THRESHOLD_VOL_HIGH_ALARM_LEN 16
#define SFP_DIAG_THRESHOLD_VOL_HIGH_ALARM_DEFAULT 0x0
/*[field] VOL_LOW_ALARM*/
#define SFP_DIAG_THRESHOLD_VOL_LOW_ALARM
#define SFP_DIAG_THRESHOLD_VOL_LOW_ALARM_OFFSET 80
#define SFP_DIAG_THRESHOLD_VOL_LOW_ALARM_LEN 16
#define SFP_DIAG_THRESHOLD_VOL_LOW_ALARM_DEFAULT 0x0
/*[field] VOL_HIGH_WARNING*/
#define SFP_DIAG_THRESHOLD_VOL_HIGH_WARNING
#define SFP_DIAG_THRESHOLD_VOL_HIGH_WARNING_OFFSET 96
#define SFP_DIAG_THRESHOLD_VOL_HIGH_WARNING_LEN 16
#define SFP_DIAG_THRESHOLD_VOL_HIGH_WARNING_DEFAULT 0x0
/*[field] VOL_LOW_WARNING*/
#define SFP_DIAG_THRESHOLD_VOL_LOW_WARNING
#define SFP_DIAG_THRESHOLD_VOL_LOW_WARNING_OFFSET 112
#define SFP_DIAG_THRESHOLD_VOL_LOW_WARNING_LEN 16
#define SFP_DIAG_THRESHOLD_VOL_LOW_WARNING_DEFAULT 0x0
/*[field] BIAS_HIGH_ALARM*/
#define SFP_DIAG_THRESHOLD_BIAS_HIGH_ALARM
#define SFP_DIAG_THRESHOLD_BIAS_HIGH_ALARM_OFFSET 128
#define SFP_DIAG_THRESHOLD_BIAS_HIGH_ALARM_LEN 16
#define SFP_DIAG_THRESHOLD_BIAS_HIGH_ALARM_DEFAULT 0x0
/*[field] BIAS_LOW_ALARM*/
#define SFP_DIAG_THRESHOLD_BIAS_LOW_ALARM
#define SFP_DIAG_THRESHOLD_BIAS_LOW_ALARM_OFFSET 144
#define SFP_DIAG_THRESHOLD_BIAS_LOW_ALARM_LEN 16
#define SFP_DIAG_THRESHOLD_BIAS_LOW_ALARM_DEFAULT 0x0
/*[field] BIAS_HIGH_WARNING*/
#define SFP_DIAG_THRESHOLD_BIAS_HIGH_WARNING
#define SFP_DIAG_THRESHOLD_BIAS_HIGH_WARNING_OFFSET 160
#define SFP_DIAG_THRESHOLD_BIAS_HIGH_WARNING_LEN 16
#define SFP_DIAG_THRESHOLD_BIAS_HIGH_WARNING_DEFAULT 0x0
/*[field] BIAS_LOW_WARNING*/
#define SFP_DIAG_THRESHOLD_BIAS_LOW_WARNING
#define SFP_DIAG_THRESHOLD_BIAS_LOW_WARNING_OFFSET 176
#define SFP_DIAG_THRESHOLD_BIAS_LOW_WARNING_LEN 16
#define SFP_DIAG_THRESHOLD_BIAS_LOW_WARNING_DEFAULT 0x0
/*[field] TX_PWR_HIGH_ALARM*/
#define SFP_DIAG_THRESHOLD_TX_PWR_HIGH_ALARM
#define SFP_DIAG_THRESHOLD_TX_PWR_HIGH_ALARM_OFFSET 192
#define SFP_DIAG_THRESHOLD_TX_PWR_HIGH_ALARM_LEN 16
#define SFP_DIAG_THRESHOLD_TX_PWR_HIGH_ALARM_DEFAULT 0x0
/*[field] TX_PWR_LOW_ALARM*/
#define SFP_DIAG_THRESHOLD_TX_PWR_LOW_ALARM
#define SFP_DIAG_THRESHOLD_TX_PWR_LOW_ALARM_OFFSET 208
#define SFP_DIAG_THRESHOLD_TX_PWR_LOW_ALARM_LEN 16
#define SFP_DIAG_THRESHOLD_TX_PWR_LOW_ALARM_DEFAULT 0x0
/*[field] TX_PWR_HIGH_WARNING*/
#define SFP_DIAG_THRESHOLD_TX_PWR_HIGH_WARNING
#define SFP_DIAG_THRESHOLD_TX_PWR_HIGH_WARNING_OFFSET 224
#define SFP_DIAG_THRESHOLD_TX_PWR_HIGH_WARNING_LEN 16
#define SFP_DIAG_THRESHOLD_TX_PWR_HIGH_WARNING_DEFAULT 0x0
/*[field] TX_PWR_LOW_WARNING*/
#define SFP_DIAG_THRESHOLD_TX_PWR_LOW_WARNING
#define SFP_DIAG_THRESHOLD_TX_PWR_LOW_WARNING_OFFSET 240
#define SFP_DIAG_THRESHOLD_TX_PWR_LOW_WARNING_LEN 16
#define SFP_DIAG_THRESHOLD_TX_PWR_LOW_WARNING_DEFAULT 0x0
/*[field] RX_PWR_HIGH_ALARM*/
#define SFP_DIAG_THRESHOLD_RX_PWR_HIGH_ALARM
#define SFP_DIAG_THRESHOLD_RX_PWR_HIGH_ALARM_OFFSET 256
#define SFP_DIAG_THRESHOLD_RX_PWR_HIGH_ALARM_LEN 16
#define SFP_DIAG_THRESHOLD_RX_PWR_HIGH_ALARM_DEFAULT 0x0
/*[field] RX_PWR_LOW_ALARM*/
#define SFP_DIAG_THRESHOLD_RX_PWR_LOW_ALARM
#define SFP_DIAG_THRESHOLD_RX_PWR_LOW_ALARM_OFFSET 272
#define SFP_DIAG_THRESHOLD_RX_PWR_LOW_ALARM_LEN 16
#define SFP_DIAG_THRESHOLD_RX_PWR_LOW_ALARM_DEFAULT 0x0
/*[field] RX_PWR_HIGH_WARNING*/
#define SFP_DIAG_THRESHOLD_RX_PWR_HIGH_WARNING
#define SFP_DIAG_THRESHOLD_RX_PWR_HIGH_WARNING_OFFSET 288
#define SFP_DIAG_THRESHOLD_RX_PWR_HIGH_WARNING_LEN 16
#define SFP_DIAG_THRESHOLD_RX_PWR_HIGH_WARNING_DEFAULT 0x0
/*[field] RX_PWR_LOW_WARNING*/
#define SFP_DIAG_THRESHOLD_RX_PWR_LOW_WARNING
#define SFP_DIAG_THRESHOLD_RX_PWR_LOW_WARNING_OFFSET 304
#define SFP_DIAG_THRESHOLD_RX_PWR_LOW_WARNING_LEN 16
#define SFP_DIAG_THRESHOLD_RX_PWR_LOW_WARNING_DEFAULT 0x0
struct sfp_diag_threshold {
a_uint8_t temp_high_alarm_0:8;
a_uint8_t temp_high_alarm_1:8;
a_uint8_t temp_low_alarm_0:8;
a_uint8_t temp_low_alarm_1:8;
a_uint8_t temp_high_warning_0:8;
a_uint8_t temp_high_warning_1:8;
a_uint8_t temp_low_warning_0:8;
a_uint8_t temp_low_warning_1:8;
a_uint8_t vol_high_alarm_0:8;
a_uint8_t vol_high_alarm_1:8;
a_uint8_t vol_low_alarm_0:8;
a_uint8_t vol_low_alarm_1:8;
a_uint8_t vol_high_warning_0:8;
a_uint8_t vol_high_warning_1:8;
a_uint8_t vol_low_warning_0:8;
a_uint8_t vol_low_warning_1:8;
a_uint8_t bias_high_alarm_0:8;
a_uint8_t bias_high_alarm_1:8;
a_uint8_t bias_low_alarm_0:8;
a_uint8_t bias_low_alarm_1:8;
a_uint8_t bias_high_warning_0:8;
a_uint8_t bias_high_warning_1:8;
a_uint8_t bias_low_warning_0:8;
a_uint8_t bias_low_warning_1:8;
a_uint8_t tx_pwr_high_alarm_0:8;
a_uint8_t tx_pwr_high_alarm_1:8;
a_uint8_t tx_pwr_low_alarm_0:8;
a_uint8_t tx_pwr_low_alarm_1:8;
a_uint8_t tx_pwr_high_warning_0:8;
a_uint8_t tx_pwr_high_warning_1:8;
a_uint8_t tx_pwr_low_warning_0:8;
a_uint8_t tx_pwr_low_warning_1:8;
a_uint8_t rx_pwr_high_alarm_0:8;
a_uint8_t rx_pwr_high_alarm_1:8;
a_uint8_t rx_pwr_low_alarm_0:8;
a_uint8_t rx_pwr_low_alarm_1:8;
a_uint8_t rx_pwr_high_warning_0:8;
a_uint8_t rx_pwr_high_warning_1:8;
a_uint8_t rx_pwr_low_warning_0:8;
a_uint8_t rx_pwr_low_warning_1:8;
};
union sfp_diag_threshold_u {
a_uint8_t val[40];
struct sfp_diag_threshold bf;
};
/*[register] SFP_DIAG_CAL_CONST*/
#define SFP_DIAG_CAL_CONST
#define SFP_DIAG_CAL_CONST_ADDRESS 0x38
#define SFP_DIAG_CAL_CONST_NUM 1
#define SFP_DIAG_CAL_CONST_INC 0x24
#define SFP_DIAG_CAL_CONST_TYPE REG_TYPE_RO
#define SFP_DIAG_CAL_CONST_DEFAULT 0x0
/*[field] RX_PWR_4*/
#define SFP_DIAG_CAL_CONST_RX_PWR_4
#define SFP_DIAG_CAL_CONST_RX_PWR_4_OFFSET 0
#define SFP_DIAG_CAL_CONST_RX_PWR_4_LEN 32
#define SFP_DIAG_CAL_CONST_RX_PWR_4_DEFAULT 0x0
/*[field] RX_PWR_3*/
#define SFP_DIAG_CAL_CONST_RX_PWR_3
#define SFP_DIAG_CAL_CONST_RX_PWR_3_OFFSET 32
#define SFP_DIAG_CAL_CONST_RX_PWR_3_LEN 32
#define SFP_DIAG_CAL_CONST_RX_PWR_3_DEFAULT 0x0
/*[field] RX_PWR_2*/
#define SFP_DIAG_CAL_CONST_RX_PWR_2
#define SFP_DIAG_CAL_CONST_RX_PWR_2_OFFSET 64
#define SFP_DIAG_CAL_CONST_RX_PWR_2_LEN 32
#define SFP_DIAG_CAL_CONST_RX_PWR_2_DEFAULT 0x0
/*[field] RX_PWR_1*/
#define SFP_DIAG_CAL_CONST_RX_PWR_1
#define SFP_DIAG_CAL_CONST_RX_PWR_1_OFFSET 96
#define SFP_DIAG_CAL_CONST_RX_PWR_1_LEN 32
#define SFP_DIAG_CAL_CONST_RX_PWR_1_DEFAULT 0x0
/*[field] RX_PWR_0*/
#define SFP_DIAG_CAL_CONST_RX_PWR_0
#define SFP_DIAG_CAL_CONST_RX_PWR_0_OFFSET 128
#define SFP_DIAG_CAL_CONST_RX_PWR_0_LEN 32
#define SFP_DIAG_CAL_CONST_RX_PWR_0_DEFAULT 0x0
/*[field] TX_I_SLOPE*/
#define SFP_DIAG_CAL_CONST_TX_I_SLOPE
#define SFP_DIAG_CAL_CONST_TX_I_SLOPE_OFFSET 160
#define SFP_DIAG_CAL_CONST_TX_I_SLOPE_LEN 16
#define SFP_DIAG_CAL_CONST_TX_I_SLOPE_DEFAULT 0x0
/*[field] TX_I_OFFSET*/
#define SFP_DIAG_CAL_CONST_TX_I_OFFSET
#define SFP_DIAG_CAL_CONST_TX_I_OFFSET_OFFSET 176
#define SFP_DIAG_CAL_CONST_TX_I_OFFSET_LEN 16
#define SFP_DIAG_CAL_CONST_TX_I_OFFSET_DEFAULT 0x0
/*[field] TX_PWR_SLOPE*/
#define SFP_DIAG_CAL_CONST_TX_PWR_SLOPE
#define SFP_DIAG_CAL_CONST_TX_PWR_SLOPE_OFFSET 192
#define SFP_DIAG_CAL_CONST_TX_PWR_SLOPE_LEN 16
#define SFP_DIAG_CAL_CONST_TX_PWR_SLOPE_DEFAULT 0x0
/*[field] TX_PWR_OFFSET*/
#define SFP_DIAG_CAL_CONST_TX_PWR_OFFSET
#define SFP_DIAG_CAL_CONST_TX_PWR_OFFSET_OFFSET 208
#define SFP_DIAG_CAL_CONST_TX_PWR_OFFSET_LEN 16
#define SFP_DIAG_CAL_CONST_TX_PWR_OFFSET_DEFAULT 0x0
/*[field] T_SLOPE*/
#define SFP_DIAG_CAL_CONST_T_SLOPE
#define SFP_DIAG_CAL_CONST_T_SLOPE_OFFSET 224
#define SFP_DIAG_CAL_CONST_T_SLOPE_LEN 16
#define SFP_DIAG_CAL_CONST_T_SLOPE_DEFAULT 0x0
/*[field] T_OFFSET*/
#define SFP_DIAG_CAL_CONST_T_OFFSET
#define SFP_DIAG_CAL_CONST_T_OFFSET_OFFSET 240
#define SFP_DIAG_CAL_CONST_T_OFFSET_LEN 16
#define SFP_DIAG_CAL_CONST_T_OFFSET_DEFAULT 0x0
/*[field] V_SLOPE*/
#define SFP_DIAG_CAL_CONST_V_SLOPE
#define SFP_DIAG_CAL_CONST_V_SLOPE_OFFSET 256
#define SFP_DIAG_CAL_CONST_V_SLOPE_LEN 16
#define SFP_DIAG_CAL_CONST_V_SLOPE_DEFAULT 0x0
/*[field] V_OFFSET*/
#define SFP_DIAG_CAL_CONST_V_OFFSET
#define SFP_DIAG_CAL_CONST_V_OFFSET_OFFSET 272
#define SFP_DIAG_CAL_CONST_V_OFFSET_LEN 16
#define SFP_DIAG_CAL_CONST_V_OFFSET_DEFAULT 0x0
struct sfp_diag_cal_const {
a_uint8_t rx_pwr_4_0:8;
a_uint8_t rx_pwr_4_1:8;
a_uint8_t rx_pwr_4_2:8;
a_uint8_t rx_pwr_4_3:8;
a_uint8_t rx_pwr_3_0:8;
a_uint8_t rx_pwr_3_1:8;
a_uint8_t rx_pwr_3_2:8;
a_uint8_t rx_pwr_3_3:8;
a_uint8_t rx_pwr_2_0:8;
a_uint8_t rx_pwr_2_1:8;
a_uint8_t rx_pwr_2_2:8;
a_uint8_t rx_pwr_2_3:8;
a_uint8_t rx_pwr_1_0:8;
a_uint8_t rx_pwr_1_1:8;
a_uint8_t rx_pwr_1_2:8;
a_uint8_t rx_pwr_1_3:8;
a_uint8_t rx_pwr_0_0:8;
a_uint8_t rx_pwr_0_1:8;
a_uint8_t rx_pwr_0_2:8;
a_uint8_t rx_pwr_0_3:8;
a_uint8_t tx_i_slope_0:8;
a_uint8_t tx_i_slope_1:8;
a_uint8_t tx_i_offset_0:8;
a_uint8_t tx_i_offset_1:8;
a_uint8_t tx_pwr_slope_0:8;
a_uint8_t tx_pwr_slope_1:8;
a_uint8_t tx_pwr_offset_0:8;
a_uint8_t tx_pwr_offset_1:8;
a_uint8_t t_slope_0:8;
a_uint8_t t_slope_1:8;
a_uint8_t t_offset_0:8;
a_uint8_t t_offset_1:8;
a_uint8_t v_slope_0:8;
a_uint8_t v_slope_1:8;
a_uint8_t v_offset_0:8;
a_uint8_t v_offset_1:8;
};
union sfp_diag_cal_const_u {
a_uint8_t val[36];
struct sfp_diag_cal_const bf;
};
/*[register] SFP_DIAG_DMI*/
#define SFP_DIAG_DMI
#define SFP_DIAG_DMI_ADDRESS 0x5f
#define SFP_DIAG_DMI_NUM 1
#define SFP_DIAG_DMI_INC 0x1
#define SFP_DIAG_DMI_TYPE REG_TYPE_RO
#define SFP_DIAG_DMI_DEFAULT 0x0
/*[field] CHECK_CODE*/
#define SFP_DIAG_DMI_CHECK_CODE
#define SFP_DIAG_DMI_CHECK_CODE_OFFSET 0
#define SFP_DIAG_DMI_CHECK_CODE_LEN 8
#define SFP_DIAG_DMI_CHECK_CODE_DEFAULT 0x0
struct sfp_diag_dmi {
a_uint8_t check_code:8;
};
union sfp_diag_dmi_u {
a_uint8_t val;
struct sfp_diag_dmi bf;
};
/*[register] SFP_DIAG_REALTIME*/
#define SFP_DIAG_REALTIME
#define SFP_DIAG_REALTIME_ADDRESS 0x60
#define SFP_DIAG_REALTIME_NUM 1
#define SFP_DIAG_REALTIME_INC 0xa
#define SFP_DIAG_REALTIME_TYPE REG_TYPE_RO
#define SFP_DIAG_REALTIME_DEFAULT 0x0
/*[field] TMP*/
#define SFP_DIAG_REALTIME_TMP
#define SFP_DIAG_REALTIME_TMP_OFFSET 0
#define SFP_DIAG_REALTIME_TMP_LEN 16
#define SFP_DIAG_REALTIME_TMP_DEFAULT 0x0
/*[field] VCC*/
#define SFP_DIAG_REALTIME_VCC
#define SFP_DIAG_REALTIME_VCC_OFFSET 16
#define SFP_DIAG_REALTIME_VCC_LEN 16
#define SFP_DIAG_REALTIME_VCC_DEFAULT 0x0
/*[field] TX_BIAS*/
#define SFP_DIAG_REALTIME_TX_BIAS
#define SFP_DIAG_REALTIME_TX_BIAS_OFFSET 32
#define SFP_DIAG_REALTIME_TX_BIAS_LEN 16
#define SFP_DIAG_REALTIME_TX_BIAS_DEFAULT 0x0
/*[field] TX_PWR*/
#define SFP_DIAG_REALTIME_TX_PWR
#define SFP_DIAG_REALTIME_TX_PWR_OFFSET 48
#define SFP_DIAG_REALTIME_TX_PWR_LEN 16
#define SFP_DIAG_REALTIME_TX_PWR_DEFAULT 0x0
/*[field] RX_PWR*/
#define SFP_DIAG_REALTIME_RX_PWR
#define SFP_DIAG_REALTIME_RX_PWR_OFFSET 64
#define SFP_DIAG_REALTIME_RX_PWR_LEN 16
#define SFP_DIAG_REALTIME_RX_PWR_DEFAULT 0x0
struct sfp_diag_realtime {
a_uint8_t tmp_0:8;
a_uint8_t tmp_1:8;
a_uint8_t vcc_0:8;
a_uint8_t vcc_1:8;
a_uint8_t tx_bias_0:8;
a_uint8_t tx_bias_1:8;
a_uint8_t tx_pwr_0:8;
a_uint8_t tx_pwr_1:8;
a_uint8_t rx_pwr_0:8;
a_uint8_t rx_pwr_1:8;
};
union sfp_diag_realtime_u {
a_uint8_t val[10];
struct sfp_diag_realtime bf;
};
/*[register] SFP_DIAG_OPTIONAL_CTRL_STATUS*/
#define SFP_DIAG_OPTIONAL_CTRL_STATUS
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_ADDRESS 0x6e
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_NUM 1
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_INC 0x2
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_TYPE REG_TYPE_RO
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_DEFAULT 0x0
/*[field] DATA_READY*/
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_DATA_READY
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_DATA_READY_OFFSET 0
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_DATA_READY_LEN 1
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_DATA_READY_DEFAULT 0x0
/*[field] RX_LOS*/
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_RX_LOS
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_RX_LOS_OFFSET 1
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_RX_LOS_LEN 1
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_RX_LOS_DEFAULT 0x0
/*[field] TX_FAULT*/
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_TX_FAULT
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_TX_FAULT_OFFSET 2
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_TX_FAULT_LEN 1
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_TX_FAULT_DEFAULT 0x0
/*[field] SOFT_RATE_SEL*/
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_SOFT_RATE_SEL
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_SOFT_RATE_SEL_OFFSET 3
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_SOFT_RATE_SEL_LEN 1
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_SOFT_RATE_SEL_DEFAULT 0x0
/*[field] RATE_SEL*/
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_RATE_SEL
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_RATE_SEL_OFFSET 4
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_RATE_SEL_LEN 1
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_RATE_SEL_DEFAULT 0x0
/*[field] RS*/
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_RS
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_RS_OFFSET 5
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_RS_LEN 1
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_RS_DEFAULT 0x0
/*[field] SOFT_TX_DISABLE_SEL*/
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_SOFT_TX_DISABLE_SEL
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_SOFT_TX_DISABLE_SEL_OFFSET 6
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_SOFT_TX_DISABLE_SEL_LEN 1
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_SOFT_TX_DISABLE_SEL_DEFAULT 0x0
/*[field] TX_DISABLE*/
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_TX_DISABLE
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_TX_DISABLE_OFFSET 7
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_TX_DISABLE_LEN 1
#define SFP_DIAG_OPTIONAL_CTRL_STATUS_TX_DISABLE_DEFAULT 0x0
struct sfp_diag_optional_ctrl_status {
a_uint8_t data_ready:1;
a_uint8_t rx_los:1;
a_uint8_t tx_fault:1;
a_uint8_t soft_rate_sel:1;
a_uint8_t rate_sel:1;
a_uint8_t rs:1;
a_uint8_t soft_tx_disable_sel:1;
a_uint8_t tx_disable:1;
a_uint8_t _reserved0:8;
};
union sfp_diag_optional_ctrl_status_u {
a_uint8_t val[2];
struct sfp_diag_optional_ctrl_status bf;
};
/*[register] SFP_DIAG_FLAG*/
#define SFP_DIAG_FLAG
#define SFP_DIAG_FLAG_ADDRESS 0x70
#define SFP_DIAG_FLAG_NUM 1
#define SFP_DIAG_FLAG_INC 0x6
#define SFP_DIAG_FLAG_TYPE REG_TYPE_RO
#define SFP_DIAG_FLAG_DEFAULT 0x0
/*[field] TX_PWR_LOW_ALARM*/
#define SFP_DIAG_FLAG_TX_PWR_LOW_ALARM
#define SFP_DIAG_FLAG_TX_PWR_LOW_ALARM_OFFSET 0
#define SFP_DIAG_FLAG_TX_PWR_LOW_ALARM_LEN 1
#define SFP_DIAG_FLAG_TX_PWR_LOW_ALARM_DEFAULT 0x0
/*[field] TX_PWR_HIGH_ALARM*/
#define SFP_DIAG_FLAG_TX_PWR_HIGH_ALARM
#define SFP_DIAG_FLAG_TX_PWR_HIGH_ALARM_OFFSET 1
#define SFP_DIAG_FLAG_TX_PWR_HIGH_ALARM_LEN 1
#define SFP_DIAG_FLAG_TX_PWR_HIGH_ALARM_DEFAULT 0x0
/*[field] TX_BIAS_LOW_ALARM*/
#define SFP_DIAG_FLAG_TX_BIAS_LOW_ALARM
#define SFP_DIAG_FLAG_TX_BIAS_LOW_ALARM_OFFSET 2
#define SFP_DIAG_FLAG_TX_BIAS_LOW_ALARM_LEN 1
#define SFP_DIAG_FLAG_TX_BIAS_LOW_ALARM_DEFAULT 0x0
/*[field] TX_BIAS_HIGH_ALARM*/
#define SFP_DIAG_FLAG_TX_BIAS_HIGH_ALARM
#define SFP_DIAG_FLAG_TX_BIAS_HIGH_ALARM_OFFSET 3
#define SFP_DIAG_FLAG_TX_BIAS_HIGH_ALARM_LEN 1
#define SFP_DIAG_FLAG_TX_BIAS_HIGH_ALARM_DEFAULT 0x0
/*[field] VCC_LOW_ALARM*/
#define SFP_DIAG_FLAG_VCC_LOW_ALARM
#define SFP_DIAG_FLAG_VCC_LOW_ALARM_OFFSET 4
#define SFP_DIAG_FLAG_VCC_LOW_ALARM_LEN 1
#define SFP_DIAG_FLAG_VCC_LOW_ALARM_DEFAULT 0x0
/*[field] VCC_HIGH_ALARM*/
#define SFP_DIAG_FLAG_VCC_HIGH_ALARM
#define SFP_DIAG_FLAG_VCC_HIGH_ALARM_OFFSET 5
#define SFP_DIAG_FLAG_VCC_HIGH_ALARM_LEN 1
#define SFP_DIAG_FLAG_VCC_HIGH_ALARM_DEFAULT 0x0
/*[field] TMP_LOW_ALARM*/
#define SFP_DIAG_FLAG_TMP_LOW_ALARM
#define SFP_DIAG_FLAG_TMP_LOW_ALARM_OFFSET 6
#define SFP_DIAG_FLAG_TMP_LOW_ALARM_LEN 1
#define SFP_DIAG_FLAG_TMP_LOW_ALARM_DEFAULT 0x0
/*[field] TMP_HIGH_ALARM*/
#define SFP_DIAG_FLAG_TMP_HIGH_ALARM
#define SFP_DIAG_FLAG_TMP_HIGH_ALARM_OFFSET 7
#define SFP_DIAG_FLAG_TMP_HIGH_ALARM_LEN 1
#define SFP_DIAG_FLAG_TMP_HIGH_ALARM_DEFAULT 0x0
/*[field] RX_PWR_LOW_ALARM*/
#define SFP_DIAG_FLAG_RX_PWR_LOW_ALARM
#define SFP_DIAG_FLAG_RX_PWR_LOW_ALARM_OFFSET 14
#define SFP_DIAG_FLAG_RX_PWR_LOW_ALARM_LEN 1
#define SFP_DIAG_FLAG_RX_PWR_LOW_ALARM_DEFAULT 0x0
/*[field] RX_PWR_HIGH_ALARM*/
#define SFP_DIAG_FLAG_RX_PWR_HIGH_ALARM
#define SFP_DIAG_FLAG_RX_PWR_HIGH_ALARM_OFFSET 15
#define SFP_DIAG_FLAG_RX_PWR_HIGH_ALARM_LEN 1
#define SFP_DIAG_FLAG_RX_PWR_HIGH_ALARM_DEFAULT 0x0
/*[field] UNALLOCATED*/
#define SFP_DIAG_FLAG_UNALLOCATED
#define SFP_DIAG_FLAG_UNALLOCATED_OFFSET 16
#define SFP_DIAG_FLAG_UNALLOCATED_LEN 16
#define SFP_DIAG_FLAG_UNALLOCATED_DEFAULT 0x0
/*[field] TX_PWR_LOW_WARNING*/
#define SFP_DIAG_FLAG_TX_PWR_LOW_WARNING
#define SFP_DIAG_FLAG_TX_PWR_LOW_WARNING_OFFSET 32
#define SFP_DIAG_FLAG_TX_PWR_LOW_WARNING_LEN 1
#define SFP_DIAG_FLAG_TX_PWR_LOW_WARNING_DEFAULT 0x0
/*[field] TX_PWR_HIGH_WARNING*/
#define SFP_DIAG_FLAG_TX_PWR_HIGH_WARNING
#define SFP_DIAG_FLAG_TX_PWR_HIGH_WARNING_OFFSET 33
#define SFP_DIAG_FLAG_TX_PWR_HIGH_WARNING_LEN 1
#define SFP_DIAG_FLAG_TX_PWR_HIGH_WARNING_DEFAULT 0x0
/*[field] TX_BIAS_LOW_WARNING*/
#define SFP_DIAG_FLAG_TX_BIAS_LOW_WARNING
#define SFP_DIAG_FLAG_TX_BIAS_LOW_WARNING_OFFSET 34
#define SFP_DIAG_FLAG_TX_BIAS_LOW_WARNING_LEN 1
#define SFP_DIAG_FLAG_TX_BIAS_LOW_WARNING_DEFAULT 0x0
/*[field] TX_BIAS_HIGH_WARNING*/
#define SFP_DIAG_FLAG_TX_BIAS_HIGH_WARNING
#define SFP_DIAG_FLAG_TX_BIAS_HIGH_WARNING_OFFSET 35
#define SFP_DIAG_FLAG_TX_BIAS_HIGH_WARNING_LEN 1
#define SFP_DIAG_FLAG_TX_BIAS_HIGH_WARNING_DEFAULT 0x0
/*[field] VCC_LOW_WARNING*/
#define SFP_DIAG_FLAG_VCC_LOW_WARNING
#define SFP_DIAG_FLAG_VCC_LOW_WARNING_OFFSET 36
#define SFP_DIAG_FLAG_VCC_LOW_WARNING_LEN 1
#define SFP_DIAG_FLAG_VCC_LOW_WARNING_DEFAULT 0x0
/*[field] VCC_HIGH_WARNING*/
#define SFP_DIAG_FLAG_VCC_HIGH_WARNING
#define SFP_DIAG_FLAG_VCC_HIGH_WARNING_OFFSET 37
#define SFP_DIAG_FLAG_VCC_HIGH_WARNING_LEN 1
#define SFP_DIAG_FLAG_VCC_HIGH_WARNING_DEFAULT 0x0
/*[field] TMP_LOW_WARNING*/
#define SFP_DIAG_FLAG_TMP_LOW_WARNING
#define SFP_DIAG_FLAG_TMP_LOW_WARNING_OFFSET 38
#define SFP_DIAG_FLAG_TMP_LOW_WARNING_LEN 1
#define SFP_DIAG_FLAG_TMP_LOW_WARNING_DEFAULT 0x0
/*[field] TMP_HIGH_WARNING*/
#define SFP_DIAG_FLAG_TMP_HIGH_WARNING
#define SFP_DIAG_FLAG_TMP_HIGH_WARNING_OFFSET 39
#define SFP_DIAG_FLAG_TMP_HIGH_WARNING_LEN 1
#define SFP_DIAG_FLAG_TMP_HIGH_WARNING_DEFAULT 0x0
/*[field] RX_PWR_LOW_WARNING*/
#define SFP_DIAG_FLAG_RX_PWR_LOW_WARNING
#define SFP_DIAG_FLAG_RX_PWR_LOW_WARNING_OFFSET 46
#define SFP_DIAG_FLAG_RX_PWR_LOW_WARNING_LEN 1
#define SFP_DIAG_FLAG_RX_PWR_LOW_WARNING_DEFAULT 0x0
/*[field] RX_PWR_HIGH_WARNING*/
#define SFP_DIAG_FLAG_RX_PWR_HIGH_WARNING
#define SFP_DIAG_FLAG_RX_PWR_HIGH_WARNING_OFFSET 47
#define SFP_DIAG_FLAG_RX_PWR_HIGH_WARNING_LEN 1
#define SFP_DIAG_FLAG_RX_PWR_HIGH_WARNING_DEFAULT 0x0
struct sfp_diag_flag {
a_uint8_t tx_pwr_low_alarm:1;
a_uint8_t tx_pwr_high_alarm:1;
a_uint8_t tx_bias_low_alarm:1;
a_uint8_t tx_bias_high_alarm:1;
a_uint8_t vcc_low_alarm:1;
a_uint8_t vcc_high_alarm:1;
a_uint8_t tmp_low_alarm:1;
a_uint8_t tmp_high_alarm:1;
a_uint8_t _reserved0:6;
a_uint8_t rx_pwr_low_alarm:1;
a_uint8_t rx_pwr_high_alarm:1;
a_uint8_t unallocated_0:8;
a_uint8_t unallocated_1:8;
a_uint8_t tx_pwr_low_warning:1;
a_uint8_t tx_pwr_high_warning:1;
a_uint8_t tx_bias_low_warning:1;
a_uint8_t tx_bias_high_warning:1;
a_uint8_t vcc_low_warning:1;
a_uint8_t vcc_high_warning:1;
a_uint8_t tmp_low_warning:1;
a_uint8_t tmp_high_warning:1;
a_uint8_t _reserved1:6;
a_uint8_t rx_pwr_low_warning:1;
a_uint8_t rx_pwr_high_warning:1;
};
union sfp_diag_flag_u {
a_uint8_t val[6];
struct sfp_diag_flag bf;
};
/*[register] SFP_DIAG_EXTENDED_CTRL_STATUS*/
#define SFP_DIAG_EXTENDED_CTRL_STATUS
#define SFP_DIAG_EXTENDED_CTRL_STATUS_ADDRESS 0x76
#define SFP_DIAG_EXTENDED_CTRL_STATUS_NUM 1
#define SFP_DIAG_EXTENDED_CTRL_STATUS_INC 0x2
#define SFP_DIAG_EXTENDED_CTRL_STATUS_TYPE REG_TYPE_RO
#define SFP_DIAG_EXTENDED_CTRL_STATUS_DEFAULT 0x0
/*[field] PWR_LEVEL_SEL*/
#define SFP_DIAG_EXTENDED_CTRL_STATUS_PWR_LEVEL_SEL
#define SFP_DIAG_EXTENDED_CTRL_STATUS_PWR_LEVEL_SEL_OFFSET 0
#define SFP_DIAG_EXTENDED_CTRL_STATUS_PWR_LEVEL_SEL_LEN 1
#define SFP_DIAG_EXTENDED_CTRL_STATUS_PWR_LEVEL_SEL_DEFAULT 0x0
/*[field] PWR_LEVEL_OP_STATE*/
#define SFP_DIAG_EXTENDED_CTRL_STATUS_PWR_LEVEL_OP_STATE
#define SFP_DIAG_EXTENDED_CTRL_STATUS_PWR_LEVEL_OP_STATE_OFFSET 1
#define SFP_DIAG_EXTENDED_CTRL_STATUS_PWR_LEVEL_OP_STATE_LEN 1
#define SFP_DIAG_EXTENDED_CTRL_STATUS_PWR_LEVEL_OP_STATE_DEFAULT 0x0
/*[field] SOFT_RS_SEL*/
#define SFP_DIAG_EXTENDED_CTRL_STATUS_SOFT_RS_SEL
#define SFP_DIAG_EXTENDED_CTRL_STATUS_SOFT_RS_SEL_OFFSET 3
#define SFP_DIAG_EXTENDED_CTRL_STATUS_SOFT_RS_SEL_LEN 1
#define SFP_DIAG_EXTENDED_CTRL_STATUS_SOFT_RS_SEL_DEFAULT 0x0
/*[field] UNALLOCATED*/
#define SFP_DIAG_EXTENDED_CTRL_STATUS_UNALLOCATED
#define SFP_DIAG_EXTENDED_CTRL_STATUS_UNALLOCATED_OFFSET 4
#define SFP_DIAG_EXTENDED_CTRL_STATUS_UNALLOCATED_LEN 12
#define SFP_DIAG_EXTENDED_CTRL_STATUS_UNALLOCATED_DEFAULT 0x0
struct sfp_diag_extended_ctrl_status {
a_uint8_t pwr_level_sel:1;
a_uint8_t pwr_level_op_state:1;
a_uint8_t _reserved0:1;
a_uint8_t soft_rs_sel:1;
a_uint8_t unallocated_0:4;
a_uint8_t unallocated_1:8;
};
union sfp_diag_extended_ctrl_status_u {
a_uint8_t val[2];
struct sfp_diag_extended_ctrl_status bf;
};
#endif