LAN8742 Part Drivers API Documentation - Core

This page documents the API of the Core component of the LAN8742 Part Drivers.

An overview of the driver is also available here: main_doc .

Documentation for the IO layers is also available:

Functions

Functions

lan8742_status_t lan8742_init ( lan8742_obj_t * pobj , uint32_t dev_id )

Initialize the LAN8742 PHY and configure the needed hardware resources.

LAN8742 Vendor Specific MMD 1 package ID 1 Register Bit Definition

Bits 15:0 : RESERVED (RO, default 0x0000) LAN8742 Vendor Specific MMD 1 package ID 2 Register Bit Definition

Bits 15:0 : RESERVED (RO, default 0x0000)

Parameters :
  • pobj – [in] : Pointer to the part object structure

  • dev_id – [in] : Instance ID

Return values :

error – status

lan8742_status_t lan8742_deinit ( lan8742_obj_t * pobj )

De-Initialize the LAN8742 driver state.

Parameters :

pobj – [in,out] : Pointer to the part object structure

Return values :

LAN8742 – status.

lan8742_status_t lan8742_get_id ( lan8742_obj_t * pobj , uint8_t * id )

Get the PHY ID of the LAN8742 device.

Parameters :
  • pobj – [in] : Pointer to component object

  • id – [out] : Pointer to variable to store the 8-bit ID (model number)

Return values :

LAN8742_STATUS_OK – if OK, LAN8742_STATUS_READ_ERROR otherwise

lan8742_status_t lan8742_software_reset ( lan8742_obj_t * pobj )

Perform a software reset of the LAN8742 PHY and wait for its completion.

Parameters :

pobj – [in] : Pointer to the LAN8742 device object

Return values :

LAN8742_STATUS_OK – if the reset completed successfully LAN8742_STATUS_WRITE_ERROR if writing the reset command failed LAN8742_STATUS_READ_ERROR if reading the register failed during reset LAN8742_STATUS_SW_RESET_TIMEOUT if the reset did not complete within the timeout period

lan8742_status_t lan8742_hardware_reset ( lan8742_obj_t * pobj )

Perform a hardware reset of the LAN8742 PHY using the IO layer.

Parameters :

pobj – [in] : Pointer to the part object structure

Return values :

LAN8742_STATUS_OK – if OK, LAN8742_STATUS_ERROR otherwise

lan8742_status_t lan8742_get_phy_address ( lan8742_obj_t * pobj , uint8_t * paddr )

Get the current MDIO PHY address used to access the LAN8742 device.

Parameters :
  • pobj – [in] Pointer to the LAN8742 component object.

  • paddr – [out] Pointer to store the retrieved MDIO address (0..31).

Return values :

LAN8742_STATUS_OK – on success, LAN8742_STATUS_ERR_INVALID_STATE if called in invalid state, LAN8742_STATUS_ERROR otherwise.

lan8742_status_t lan8742_set_phy_address ( lan8742_obj_t * pobj , uint8_t addr )

Set the MDIO PHY address used to access the LAN8742 device.

Error handling contract:

  • Any error different from LAN8742_STATUS_FATAL guarantees “no side effect”: the PHY address is unchanged both in the IO context and in the PHY SMR register.

  • If LAN8742_STATUS_FATAL is returned, the driver instance is no longer reliable. The caller must deinit and reinit the driver.

Parameters :
  • pobj – [in] Pointer to the LAN8742 component object.

  • addr – [in] new PHY address on the MDIO bus to set (0..31).

Return values :

LAN8742_STATUS_OK – on success, LAN8742_STATUS_ERR_INVALID_STATE if called in invalid state.

Get the link mode of LAN8742 device.

Parameters :
  • pobj – [in] : Pointer to component object

  • link_mode – [out] : link mode can be one of the following LAN8742_STATUS_LINK_DOWN if link is down LAN8742_STATUS_100MBITS_FULLDUPLEX if 100Mb/s FD LAN8742_STATUS_100MBITS_HALFDUPLEX if 100Mb/s HD LAN8742_STATUS_10MBITS_FULLDUPLEX if 10Mb/s FD LAN8742_STATUS_10MBITS_HALFDUPLEX if 10Mb/s HD

Return values :

LAN8742_STATUS_OK – if OK LAN8742_STATUS_AUTONEGO_NOTDONE if Auto nego not completed LAN8742_STATUS_READ_ERROR if cannot read register

Get the current link configuration from the LAN8742 device registers.

Parameters :
  • pobj – [in] : Pointer to component object

  • pconfig – [out] : Pointer to a lan8742_link_config_t structure to fill with the current configuration

Return values :

LAN8742_STATUS_OK – if successful LAN8742_STATUS_ERROR if pconfig is NULL LAN8742_STATUS_READ_ERROR if register read fails

Set the forced link configuration of the LAN8742 device via registers.

Parameters :
  • pobj – [in,out] : Pointer to component object

  • pconfig – [in] : Pointer to a lan8742_link_config_t structure to apply. Must not be NULL. Auto-negotiation must be requested by calling lan8742_start_link_autonego() separately.

Return values :

LAN8742_STATUS_OK – if operation successful LAN8742_STATUS_ERR_INVALID_STATE if not in IDLE state LAN8742_STATUS_ERROR if parameters are invalid (NULL, or speed/duplex set to NONE) LAN8742_STATUS_READ_ERROR if register read fails LAN8742_STATUS_WRITE_ERROR if register write fails

Start the auto negotiation process.

Parameters :

pobj – [in,out] : Pointer to component object

Return values :

LAN8742_STATUS_OK – if OK LAN8742_STATUS_READ_ERROR if cannot read register LAN8742_STATUS_WRITE_ERROR if cannot write to register

lan8742_status_t lan8742_write_c22_reg ( lan8742_obj_t * pobj , uint8_t reg , uint16_t value )

Write a value to a LAN8742 register.

Parameters :
  • pobj – [in] : Pointer to component object

  • reg – [in] : Register address within the LAN8742 device

  • value – [in] : Data value to write to the specified register

Return values :

LAN8742_STATUS_OK – if OK LAN8742_STATUS_WRITE_ERROR if cannot write to register LAN8742_STATUS_ERR_INVALID_STATE if not in IDLE state

lan8742_status_t lan8742_read_c22_reg ( lan8742_obj_t * pobj , uint8_t reg , uint16_t * pvalue )

Read a value from a LAN8742 register.

Parameters :
  • pobj – [in] : Pointer to component object

  • reg – [in] : the device register to read

  • pvalue – [out] : pointer to the read value

Return values :

LAN8742_STATUS_OK – if OK LAN8742_STATUS_READ_ERROR if cannot read register LAN8742_STATUS_ERR_INVALID_STATE if not in IDLE state

lan8742_status_t lan8742_enable_it_source ( lan8742_obj_t * pobj , lan8742_it_source_t it_src )

Enables the interrupt mode for the selected IT source.

Parameters :
  • pobj – [in] : Pointer to component object.

  • it_src – [in] : The interrupt source to be configured.

Return values :

error – status

lan8742_status_t lan8742_disable_it_source ( lan8742_obj_t * pobj , lan8742_it_source_t it_src )

Disables the interrupt mode for the selected IT source.

Parameters :
  • pobj – [in] : Pointer to component object.

  • it_src – [in] : The interrupt source to be disabled.

Return values :

error – status.

int32_t lan8742_get_it_status ( lan8742_obj_t * pobj , lan8742_it_source_t it_src )

Get IT Flag status.

Parameters :
  • pobj – [in] : Pointer to component object

  • it_src – [in] : The interrupt source to be disabled.

Return values :

1 – IT flag is SET 0 IT flag is RESET LAN8742_STATUS_READ_ERROR if cannot read register

lan8742_status_t lan8742_register_event_callback ( lan8742_obj_t * pobj , lan8742_callback_t cb , void * arg )

Registers an event callback for LAN8742.

This function registers a user-defined event callback for LAN8742. The callback will be invoked when an event is detected. The function can only be called when the component is in the idle state.

Parameters :
  • pobj – [in,out] : Pointer to the LAN8742 component object.

  • cb – [in] : Event callback function to be registered.

  • arg – [in] : Optional argument to be passed to the callback function.

Return values :

LAN8742_STATUS_OK – if the callback was registered successfully. LAN8742_STATUS_ERR_INVALID_STATE if the component is not in the idle state. LAN8742_STATUS_ERROR if the callback registration failed.

Types

Enums

enum lan8742_state_t

LAN8742 part driver state definition.

Values:

enumerator LAN8742_RESET

Instance not initialized

enumerator LAN8742_IDLE

Instance initialized

enumerator LAN8742_ACTIVE
enum lan8742_status_t

LAN8742 status structure.

Values:

enumerator LAN8742_STATUS_FATAL

Fatal error: driver state is no longer reliable; deinit/reinit required

enumerator LAN8742_STATUS_AUTONEGO_NOTDONE
enumerator LAN8742_STATUS_READ_ERROR
enumerator LAN8742_STATUS_WRITE_ERROR
enumerator LAN8742_STATUS_SW_RESET_TIMEOUT
enumerator LAN8742_STATUS_ERR_INVALID_STATE
enumerator LAN8742_STATUS_ERROR

Error Status

enumerator LAN8742_STATUS_OK

Success Status

Values:

Values:

Values:

enum lan8742_it_source_t

LAN8742 interrupt source bitmask type.

This enum is intended to be used with lan8742_enable_it_source(), lan8742_disable_it_source() and lan8742_get_it_status().

Values:

enumerator LAN8742_IT_SRC_WOL
enumerator LAN8742_IT_SRC_ENERGYON
enumerator LAN8742_IT_SRC_AUTONEGO_COMPLETE
enumerator LAN8742_IT_SRC_REMOTE_FAULT
enumerator LAN8742_IT_SRC_AUTONEGO_LP_ACK
enumerator LAN8742_IT_SRC_PARALLEL_DETECTION_FAULT
enumerator LAN8742_IT_SRC_AUTONEGO_PAGE_RECEIVED

Typedefs

typedef struct lan8742_obj_s lan8742_obj_t

callback function pointer definition

typedef void ( * lan8742_callback_t ) ( lan8742_obj_t * pobj , void * arg )

Constants and macros

Sequence Diagrams

page sequence_diagram
page sequence_diagram_2

This diagram presents a use case for this driver with the interrupt feature enabled. For the sake of this example, the IO interface is the “eth” IO interface.

page sequence_diagram_3

LAN8742 Part Driver State Machine

Single process at a time

The state diagram below shows the LAN8742 part driver state machine and maps each action to the corresponding public API function.

Defines

LAN8742_MAX_DEV_ADDR ((uint32_t)31U)
LAN8742_BCR ((uint8_t)0x00U)
LAN8742_BSR ((uint8_t)0x01U)
LAN8742_PHYI1R ((uint8_t)0x02U)
LAN8742_PHYI2R ((uint8_t)0x03U)
LAN8742_ANAR ((uint8_t)0x04U)
LAN8742_ANLPAR ((uint8_t)0x05U)
LAN8742_ANER ((uint8_t)0x06U)
LAN8742_ANNPTR ((uint8_t)0x07U)
LAN8742_ANNPRR ((uint8_t)0x08U)
LAN8742_MMDACR ((uint8_t)0x0DU)
LAN8742_MMDAADR ((uint8_t)0x0EU)
LAN8742_ENCTR ((uint8_t)0x10U)
LAN8742_MCSR ((uint8_t)0x11U)
LAN8742_SMR ((uint8_t)0x12U)
LAN8742_TPDCR ((uint8_t)0x18U)
LAN8742_TCSR ((uint8_t)0x19U)
LAN8742_SECR ((uint8_t)0x1AU)
LAN8742_SCSIR ((uint8_t)0x1BU)
LAN8742_CLR ((uint8_t)0x1CU)
LAN8742_ISFR ((uint8_t)0x1DU)
LAN8742_IMR ((uint8_t)0x1EU)
LAN8742_PHYSCSR ((uint8_t)0x1FU)
LAN8742_BCR_SOFT_RESET ((uint16_t)0x8000U)

LAN8742 Basic Control Register (BCR) Bit Definition

LAN8742_BCR_LOOPBACK ((uint16_t)0x4000U)
LAN8742_BCR_SPEED_SELECT ((uint16_t)0x2000U)
LAN8742_BCR_AUTONEGO_EN ((uint16_t)0x1000U)
LAN8742_BCR_POWER_DOWN ((uint16_t)0x0800U)
LAN8742_BCR_ISOLATE ((uint16_t)0x0400U)
LAN8742_BCR_RESTART_AUTONEGO ((uint16_t)0x0200U)
LAN8742_BCR_DUPLEX_MODE ((uint16_t)0x0100U)
LAN8742_BSR_100BASE_T4 ((uint16_t)0x8000U)

LAN8742 Basic Status Register (BSR) Bit Definition

LAN8742_BSR_100BASE_TX_FD ((uint16_t)0x4000U)
LAN8742_BSR_100BASE_TX_HD ((uint16_t)0x2000U)
LAN8742_BSR_10BASE_T_FD ((uint16_t)0x1000U)
LAN8742_BSR_10BASE_T_HD ((uint16_t)0x0800U)
LAN8742_BSR_100BASE_T2_FD ((uint16_t)0x0400U)
LAN8742_BSR_100BASE_T2_HD ((uint16_t)0x0200U)
LAN8742_BSR_EXTENDED_STATUS ((uint16_t)0x0100U)
LAN8742_BSR_AUTONEGO_CPLT ((uint16_t)0x0020U)
LAN8742_BSR_REMOTE_FAULT ((uint16_t)0x0010U)
LAN8742_BSR_AUTONEGO_ABILITY ((uint16_t)0x0008U)
LAN8742_BSR_JABBER_DETECT ((uint16_t)0x0002U)
LAN8742_BSR_EXTENDED_CAP ((uint16_t)0x0001U)
LAN8742_PHYI1R_OUI_3_18 ((uint16_t)0xFFFFU)

LAN8742 PHY Identifier 1 Register (PHYI1R) Bit Definition

LAN8742_PHYI1R_OUI_3_18_DEFAULT ((uint16_t)0x0007U)
LAN8742_PHYI2R_OUI_19_24 ((uint16_t)0xFC00U)

LAN8742 PHY Identifier 2 Register (PHYI2R) Bit Definition

LAN8742_PHYI2R_OUI_19_24_DEFAULT ((uint16_t)0xC000U)
LAN8742_PHYI2R_MODEL_NBR ((uint16_t)0x03F0U)
LAN8742_PHYI2R_MODEL_NBR_DEFAULT ((uint16_t)0x0130U)
LAN8742_PHYI2R_REVISION_NBR ((uint16_t)0x000FU)
LAN8742_PHYI2R_REVISION_NBR_DEFAULT ((uint16_t)0x0000U)
LAN8742_ANAR_NEXT_PAGE ((uint16_t)0x8000U)

LAN8742 Auto-Negotiation Advertisement Register (ANAR) Bit Definition

LAN8742_ANAR_REMOTE_FAULT ((uint16_t)0x2000U)
LAN8742_ANAR_PAUSE_OPERATION ((uint16_t)0x0C00U)
LAN8742_ANAR_PO_NOPAUSE ((uint16_t)0x0000U)
LAN8742_ANAR_PO_SYMMETRIC_PAUSE ((uint16_t)0x0400U)
LAN8742_ANAR_PO_ASYMMETRIC_PAUSE ((uint16_t)0x0800U)
LAN8742_ANAR_PO_ADVERTISE_SUPPORT ((uint16_t)0x0C00U)
LAN8742_ANAR_100BASE_TX_FD ((uint16_t)0x0100U)
LAN8742_ANAR_100BASE_TX ((uint16_t)0x0080U)
LAN8742_ANAR_10BASE_T_FD ((uint16_t)0x0040U)
LAN8742_ANAR_10BASE_T ((uint16_t)0x0020U)
LAN8742_ANAR_SELECTOR_FIELD ((uint16_t)0x000FU)
LAN8742_ANLPAR_NEXT_PAGE ((uint16_t)0x8000U)

LAN8742 Auto-Negotiation Link Partner Ability Register (ANLPAR) Bit Definition

LAN8742_ANLPAR_REMOTE_FAULT ((uint16_t)0x2000U)
LAN8742_ANLPAR_PAUSE_OPERATION ((uint16_t)0x0C00U)
LAN8742_ANLPAR_PO_NOPAUSE ((uint16_t)0x0000U)
LAN8742_ANLPAR_PO_SYMMETRIC_PAUSE ((uint16_t)0x0400U)
LAN8742_ANLPAR_PO_ASYMMETRIC_PAUSE ((uint16_t)0x0800U)
LAN8742_ANLPAR_PO_ADVERTISE_SUPPORT ((uint16_t)0x0C00U)
LAN8742_ANLPAR_100BASE_TX_FD ((uint16_t)0x0100U)
LAN8742_ANLPAR_100BASE_TX ((uint16_t)0x0080U)
LAN8742_ANLPAR_10BASE_T_FD ((uint16_t)0x0040U)
LAN8742_ANLPAR_10BASE_T ((uint16_t)0x0020U)
LAN8742_ANLPAR_SELECTOR_FIELD ((uint16_t)0x000FU)
LAN8742_ANER_RX_NP_LOCATION_ABLE ((uint16_t)0x0040U)

LAN8742 Auto-Negotiation Expansion Register (ANER) Bit Definition

LAN8742_ANER_RX_NP_STORAGE_LOCATION ((uint16_t)0x0020U)
LAN8742_ANER_PARALLEL_DETECT_FAULT ((uint16_t)0x0010U)
LAN8742_ANER_LP_NP_ABLE ((uint16_t)0x0008U)
LAN8742_ANER_NP_ABLE ((uint16_t)0x0004U)
LAN8742_ANER_PAGE_RECEIVED ((uint16_t)0x0002U)
LAN8742_ANER_LP_AUTONEG_ABLE ((uint16_t)0x0001U)
LAN8742_ANNPTR_NEXT_PAGE ((uint16_t)0x8000U)

LAN8742 Auto-Negotiation Next Page TX Register (ANNPTR) Bit Definition

LAN8742_ANNPTR_MESSAGE_PAGE ((uint16_t)0x2000U)
LAN8742_ANNPTR_ACK2 ((uint16_t)0x1000U)
LAN8742_ANNPTR_TOGGLE ((uint16_t)0x0800U)
LAN8742_ANNPTR_MESSAGGE_CODE ((uint16_t)0x07FFU)
LAN8742_ANNPRR_NEXT_PAGE ((uint16_t)0x8000U)

LAN8742 Auto-Negotiation Next Page RX Register (ANNPRR) Bit Definition

LAN8742_ANNPRR_ACK ((uint16_t)0x4000U)
LAN8742_ANNPRR_MESSAGE_PAGE ((uint16_t)0x2000U)
LAN8742_ANNPRR_ACK2 ((uint16_t)0x1000U)
LAN8742_ANNPRR_TOGGLE ((uint16_t)0x0800U)
LAN8742_ANNPRR_MESSAGGE_CODE ((uint16_t)0x07FFU)
LAN8742_MMDACR_MMD_FUNCTION ((uint16_t)0xC000U)

LAN8742 MMD Access Control Register (MMDACR) Bit Definition

LAN8742_MMDACR_MMD_FUNCTION_ADDR ((uint16_t)0x0000U)
LAN8742_MMDACR_MMD_FUNCTION_DATA ((uint16_t)0x4000U)
LAN8742_MMDACR_MMD_DEV_ADDR ((uint16_t)0x001FU)
LAN8742_MMDAADR_MMD_REG_ADDR_DATA_MASK ((uint16_t)0xFFFFU)

LAN8742 MMD Access Address/Data Register (MMDADR) Bit Definition

LAN8742_MMDAADR_MMD_REG_ADDR_DATA_DEFAULT ((uint16_t)0x0000U)
LAN8742_ENCTR_TX_ENABLE ((uint16_t)0x8000U)

LAN8742 EDPD NLP/Crossover Time Register (ENCTR) Bit Definition

LAN8742_ENCTR_TX_TIMER ((uint16_t)0x6000U)
LAN8742_ENCTR_TX_TIMER_1S ((uint16_t)0x0000U)
LAN8742_ENCTR_TX_TIMER_768MS ((uint16_t)0x2000U)
LAN8742_ENCTR_TX_TIMER_512MS ((uint16_t)0x4000U)
LAN8742_ENCTR_TX_TIMER_265MS ((uint16_t)0x6000U)
LAN8742_ENCTR_RX_ENABLE ((uint16_t)0x1000U)
LAN8742_ENCTR_RX_MAX_INTERVAL ((uint16_t)0x0C00U)
LAN8742_ENCTR_RX_MAX_INTERVAL_64MS ((uint16_t)0x0000U)
LAN8742_ENCTR_RX_MAX_INTERVAL_256MS ((uint16_t)0x0400U)
LAN8742_ENCTR_RX_MAX_INTERVAL_512MS ((uint16_t)0x0800U)
LAN8742_ENCTR_RX_MAX_INTERVAL_1S ((uint16_t)0x0C00U)
LAN8742_ENCTR_EX_CROSS_OVER ((uint16_t)0x0002U)
LAN8742_ENCTR_EX_MANUAL_CROSS_OVER ((uint16_t)0x0001U)
LAN8742_MCSR_EDPWRDOWN ((uint16_t)0x2000U)

LAN8742 Mode Control/Status Register (MCSR) Bit Definition

LAN8742_MCSR_FARLOOPBACK ((uint16_t)0x0200U)
LAN8742_MCSR_ALTINT ((uint16_t)0x0040U)
LAN8742_MCSR_ENERGYON ((uint16_t)0x0002U)
LAN8742_SMR_MODE ((uint16_t)0x00E0U)

LAN8742 Special Mode Register (SMR) Bit Definition

LAN8742_SMR_PHY_ADDR ((uint16_t)0x001FU)
LAN8742_TPDCR_DELAY_IN ((uint16_t)0x8000U)

LAN8742 TDR Patterns/Delay Control Register (TPDCR) Bit Definition

LAN8742_TPDCR_LINE_BREAK_COUNTER ((uint16_t)0x7000U)
LAN8742_TPDCR_PATTERN_HIGH ((uint16_t)0x0FC0U)
LAN8742_TPDCR_PATTERN_LOW ((uint16_t)0x003FU)
LAN8742_TCSR_TDR_ENABLE ((uint16_t)0x8000U)

LAN8742 TDR Control/Status Register (TCSR) Bit Definition

LAN8742_TCSR_TDR_AD_FILTER_ENABLE ((uint16_t)0x4000U)
LAN8742_TCSR_TDR_CH_CABLE_TYPE ((uint16_t)0x0600U)
LAN8742_TCSR_TDR_CH_CABLE_DEFAULT ((uint16_t)0x0000U)
LAN8742_TCSR_TDR_CH_CABLE_SHORTED ((uint16_t)0x0200U)
LAN8742_TCSR_TDR_CH_CABLE_OPEN ((uint16_t)0x0400U)
LAN8742_TCSR_TDR_CH_CABLE_MATCH ((uint16_t)0x0600U)
LAN8742_TCSR_TDR_CH_STATUS ((uint16_t)0x0100U)
LAN8742_TCSR_TDR_CH_LENGTH ((uint16_t)0x00FFU)
LAN8742_SCSIR_AUTO_MDIX_ENABLE ((uint16_t)0x8000U)

LAN8742 Symbol Error Counter Register (SECR) Bit Definition LAN8742 Special Control/Status Indications Register (SCSIR) Bit Definition

LAN8742_SCSIR_CHANNEL_SELECT ((uint16_t)0x2000U)
LAN8742_SCSIR_SQE_DISABLE ((uint16_t)0x0800U)
LAN8742_SCSIR_XPOLALITY ((uint16_t)0x0010U)
LAN8742_CLR_CABLE_LENGTH ((uint16_t)0xF000U)

LAN8742 Cable Length Register (CLR) Bit Definition

LAN8742_INT_8 ((uint16_t)0x0100U)

LAN8742 Interrupt Source Flag Register (IMR) & LAN8742 Interrupt Mask Register (IMR) Bit Definition

LAN8742_INT_7 ((uint16_t)0x0080U)
LAN8742_INT_6 ((uint16_t)0x0040U)
LAN8742_INT_5 ((uint16_t)0x0020U)
LAN8742_INT_4 ((uint16_t)0x0010U)
LAN8742_INT_3 ((uint16_t)0x0008U)
LAN8742_INT_2 ((uint16_t)0x0004U)
LAN8742_INT_1 ((uint16_t)0x0002U)
LAN8742_PHYSCSR_AUTONEGO_DONE ((uint16_t)0x1000U)

LAN8742 PHY Special Control/Status Register (PHYSCSR) Bit Definition

LAN8742_PHYSCSR_HCDSPEEDMASK ((uint16_t)0x001CU)
LAN8742_PHYSCSR_10BT_HD ((uint16_t)0x0004U)
LAN8742_PHYSCSR_10BT_FD ((uint16_t)0x0014U)
LAN8742_PHYSCSR_100BTX_HD ((uint16_t)0x0008U)
LAN8742_PHYSCSR_100BTX_FD ((uint16_t)0x0018U)
LAN8742_WOL_IT LAN8742_INT_8

LAN8742 IT Flags

LAN8742_ENERGYON_IT LAN8742_INT_7
LAN8742_AUTONEGO_COMPLETE_IT LAN8742_INT_6
LAN8742_REMOTE_FAULT_IT LAN8742_INT_5
LAN8742_AUTONEGO_LP_ACK_IT LAN8742_INT_3
LAN8742_PARALLEL_DETECTION_FAULT_IT LAN8742_INT_2
LAN8742_AUTONEGO_PAGE_RECEIVED_IT LAN8742_INT_1
LAN8742_MMD_PCS ((uint8_t)0x03U)
LAN8742_MMD_VENDOR_SPECIFIC ((uint8_t)0x1EU)
LAN8742_PCS_MMD_DEVICES_PRESENT_1 ((uint16_t)0x0005U)
LAN8742_PCS_MMD_DEVICES_PRESENT_2 ((uint16_t)0x0006U)
LAN8742_PCS_WUCSR ((uint16_t)0x8010U)
LAN8742_PCS_WUF_CFGA ((uint16_t)0x8011U)
LAN8742_PCS_WUF_CFGB ((uint16_t)0x8012U)
LAN8742_PCS_WUF_MASK_127_112 ((uint16_t)0x8021U)
LAN8742_PCS_WUF_MASK_111_96 ((uint16_t)0x8022U)
LAN8742_PCS_WUF_MASK_95_80 ((uint16_t)0x8023U)
LAN8742_PCS_WUF_MASK_79_64 ((uint16_t)0x8024U)
LAN8742_PCS_WUF_MASK_63_48 ((uint16_t)0x8025U)
LAN8742_PCS_WUF_MASK_47_32 ((uint16_t)0x8026U)
LAN8742_PCS_WUF_MASK_31_16 ((uint16_t)0x8027U)
LAN8742_PCS_WUF_MASK_15_0 ((uint16_t)0x8028U)
LAN8742_PCS_RX_ADDRA ((uint16_t)0x8061U)
LAN8742_PCS_RX_ADDRB ((uint16_t)0x8062U)
LAN8742_PCS_RX_ADDRC ((uint16_t)0x8063U)
LAN8742_PCS_MCFGR ((uint16_t)0x8064U)
LAN8742_VSPEC_MMD1_DEV_ID1 ((uint16_t)0x0002U)
LAN8742_VSPEC_MMD1_DEV_ID2 ((uint16_t)0x0003U)
LAN8742_VSPEC_MMD1_DEV_PRESENT_1 ((uint16_t)0x0005U)
LAN8742_VSPEC_MMD1_DEV_PRESENT_2 ((uint16_t)0x0006U)
LAN8742_VSPEC_MMD1_STATUS ((uint16_t)0x0008U)
LAN8742_VSPEC_TDR_MATCH_THRESHOLD ((uint16_t)0x000BU)
LAN8742_VSPEC_TDR_SHORT_OPEN_THRESHOLD ((uint16_t)0x000CU)
LAN8742_VSPEC_MMD1_PACKAGE_ID1 ((uint16_t)0x000EU)
LAN8742_VSPEC_MMD1_PACKAGE_ID2 ((uint16_t)0x000FU)
LAN8742_PCS_MMD_DEVICES_PRESENT_1_AUTO_NEG ((uint16_t)0x0080U)

LAN8742 PCS MMD Devices Present 1 Register Bit Definition

LAN8742_PCS_MMD_DEVICES_PRESENT_1_TC ((uint16_t)0x0040U)
LAN8742_PCS_MMD_DEVICES_PRESENT_1_DTE_XS ((uint16_t)0x0020U)
LAN8742_PCS_MMD_DEVICES_PRESENT_1_PHY_XS ((uint16_t)0x0010U)
LAN8742_PCS_MMD_DEVICES_PRESENT_1_PCS ((uint16_t)0x0008U)
LAN8742_PCS_MMD_DEVICES_PRESENT_1_WIS ((uint16_t)0x0004U)
LAN8742_PCS_MMD_DEVICES_PRESENT_1_PMD_PMA ((uint16_t)0x0002U)
LAN8742_PCS_MMD_DEVICES_PRESENT_1_CLAUSE22 ((uint16_t)0x0001U)
LAN8742_PCS_MMD_DEVICES_PRESENT_2_VSPEC_DEV2 ((uint16_t)0x8000U)

LAN8742 PCS MMD Devices Present 2 Register Bit Definition

LAN8742_PCS_MMD_DEVICES_PRESENT_2_VSPEC_DEV1 ((uint16_t)0x4000U)
LAN8742_PCS_MMD_DEVICES_PRESENT_2_CLAUSE22_EXT ((uint16_t)0x2000U)
LAN8742_PCS_WUCSR_INTERFACE_DISABLE ((uint16_t)0x8000U)

LAN8742 Wakeup Control And Status Register (WUCSR) Bit Definition

LAN8742_PCS_WUCSR_LED1_FUNC_SELECT_MASK ((uint16_t)0x6000U)
LAN8742_PCS_WUCSR_LED1_FUNC_NINT ((uint16_t)0x2000U)
LAN8742_PCS_WUCSR_LED1_FUNC_NPME ((uint16_t)0x4000U)
LAN8742_PCS_WUCSR_LED2_FUNC_SELECT_MASK ((uint16_t)0x1800U)
LAN8742_PCS_WUCSR_LED2_FUNC_NINT ((uint16_t)0x0800U)
LAN8742_PCS_WUCSR_LED2_FUNC_NPME ((uint16_t)0x1000U)
LAN8742_PCS_WUCSR_RESERVED ((uint16_t)0x0400U)
LAN8742_PCS_WUCSR_NPME_SELF_CLEAR ((uint16_t)0x0200U)
LAN8742_PCS_WUCSR_WOL_CONFIGURED ((uint16_t)0x0100U)
LAN8742_PCS_WUCSR_PFDA_FR ((uint16_t)0x0080U)
LAN8742_PCS_WUCSR_WUFR ((uint16_t)0x0040U)
LAN8742_PCS_WUCSR_MPR ((uint16_t)0x0020U)
LAN8742_PCS_WUCSR_BCAST_FR ((uint16_t)0x0010U)
LAN8742_PCS_WUCSR_PFDA_EN ((uint16_t)0x0008U)
LAN8742_PCS_WUCSR_WUEN ((uint16_t)0x0004U)
LAN8742_PCS_WUF_CFGA_FILTER_ENABLE ((uint16_t)0x8000U)

LAN8742 Wakeup Filter Configuration Register A (WUF_CFGA) Bit Definition

LAN8742_PCS_WUF_CFGA_FILTER_TRIGGERED ((uint16_t)0x4000U)
LAN8742_PCS_WUF_CFGA_ADDR_MATCH_ENABLE ((uint16_t)0x0400U)
LAN8742_PCS_WUF_CFGA_FILTER_ANY_MCAST_ENABLE ((uint16_t)0x0200U)
LAN8742_PCS_WUF_CFGA_FILTER_BCAST_ENABLE ((uint16_t)0x0100U)
LAN8742_PCS_WUF_CFGA_PATTERN_OFFSET_MASK ((uint16_t)0x00FFU)
LAN8742_PCS_WUF_CFGA_PATTERN_OFFSET_DEFAULT ((uint16_t)0x0000U)
LAN8742_PCS_WUF_CFGB_FILTER_CRC ((uint16_t)0xFFFFU)

LAN8742 Wakeup Filter Configuration Register B (WUF_CFGB) Bit Definition

LAN8742_PCS_WUF_CFGB_FILTER_CRC_DEFAULT ((uint16_t)0x0000U)
LAN8742_PCS_WUF_MASK_127_112_MASK ((uint16_t)0xFFFFU)

LAN8742 Wakeup Filter Byte Mask Registers (WUF_MASK) Bit Definition

LAN8742_PCS_WUF_MASK_127_112_DEFAULT ((uint16_t)0x0000U)
LAN8742_PCS_WUF_MASK_111_96_MASK ((uint16_t)0xFFFFU)
LAN8742_PCS_WUF_MASK_111_96_DEFAULT ((uint16_t)0x0000U)
LAN8742_PCS_WUF_MASK_95_80_MASK ((uint16_t)0xFFFFU)
LAN8742_PCS_WUF_MASK_95_80_DEFAULT ((uint16_t)0x0000U)
LAN8742_PCS_WUF_MASK_79_64_MASK ((uint16_t)0xFFFFU)
LAN8742_PCS_WUF_MASK_79_64_DEFAULT ((uint16_t)0x0000U)
LAN8742_PCS_WUF_MASK_63_48_MASK ((uint16_t)0xFFFFU)
LAN8742_PCS_WUF_MASK_63_48_DEFAULT ((uint16_t)0x0000U)
LAN8742_PCS_WUF_MASK_47_32_MASK ((uint16_t)0xFFFFU)
LAN8742_PCS_WUF_MASK_47_32_DEFAULT ((uint16_t)0x0000U)
LAN8742_PCS_WUF_MASK_31_16_MASK ((uint16_t)0xFFFFU)
LAN8742_PCS_WUF_MASK_31_16_DEFAULT ((uint16_t)0x0000U)
LAN8742_PCS_WUF_MASK_15_0_MASK ((uint16_t)0xFFFFU)
LAN8742_PCS_WUF_MASK_15_0_DEFAULT ((uint16_t)0x0000U)
LAN8742_PCS_RX_ADDRA_PHYS_ADDR_MASK ((uint16_t)0xFFFFU)

LAN8742 MAC Receive Address A Register (RX_ADDRA) Bit Definition

LAN8742_PCS_RX_ADDRA_PHYS_ADDR_DEFAULT ((uint16_t)0xFFFFU)
LAN8742_PCS_RX_ADDRB_PHYS_ADDR_MASK ((uint16_t)0xFFFFU)

LAN8742 MAC Receive Address B Register (RX_ADDRB) Bit Definition

LAN8742_PCS_RX_ADDRB_PHYS_ADDR_DEFAULT ((uint16_t)0xFFFFU)
LAN8742_PCS_RX_ADDRC_PHYS_ADDR_MASK ((uint16_t)0xFFFFU)

LAN8742 MAC Receive Address C Register (RX_ADDRC) Bit Definition

LAN8742_PCS_RX_ADDRC_PHYS_ADDR_DEFAULT ((uint16_t)0xFFFFU)
LAN8742_PCS_MCFGR_NPME_ASSERT_DELAY_MASK ((uint16_t)0xFFFFU)

LAN8742 Miscellaneous Configuration Register (MCFGR) Bit Definition

LAN8742_PCS_MCFGR_NPME_ASSERT_DELAY_DEFAULT ((uint16_t)0x1000U)
LAN8742_VSPEC_MMD1_DEV_PRESENT_1_AUTO_NEG ((uint16_t)0x0080U)

LAN8742 Vendor Specific MMD 1 Device ID 1 Register Bit Definition

Bits 15:0 : RESERVED (RO, default 0x0000) LAN8742 Vendor Specific MMD 1 Device ID 2 Register Bit Definition

Bits 15:0 : RESERVED (RO, default 0x0000) LAN8742 Vendor Specific 1 MMD Devices Present 1 Register Bit Definition

LAN8742_VSPEC_MMD1_DEV_PRESENT_1_TC ((uint16_t)0x0040U)
LAN8742_VSPEC_MMD1_DEV_PRESENT_1_DTE_XS ((uint16_t)0x0020U)
LAN8742_VSPEC_MMD1_DEV_PRESENT_1_PHY_XS ((uint16_t)0x0010U)
LAN8742_VSPEC_MMD1_DEV_PRESENT_1_PCS ((uint16_t)0x0008U)
LAN8742_VSPEC_MMD1_DEV_PRESENT_1_WIS ((uint16_t)0x0004U)
LAN8742_VSPEC_MMD1_DEV_PRESENT_1_PMD_PMA ((uint16_t)0x0002U)
LAN8742_VSPEC_MMD1_DEV_PRESENT_1_CLAUSE22 ((uint16_t)0x0001U)
LAN8742_VSPEC_MMD1_DEV_PRESENT_2_VSPEC_DEV2 ((uint16_t)0x8000U)

LAN8742 Vendor Specific 1 MMD Devices Present 2 Register Bit Definition

LAN8742_VSPEC_MMD1_DEV_PRESENT_2_VSPEC_DEV1 ((uint16_t)0x4000U)
LAN8742_VSPEC_MMD1_DEV_PRESENT_2_CLAUSE22_EXT ((uint16_t)0x2000U)
LAN8742_VSPEC_MMD1_STATUS_DEVICE_PRESENT_MASK ((uint16_t)0xC000U)

LAN8742 Vendor Specific MMD 1 Status Register Bit Definition

LAN8742_VSPEC_MMD1_STATUS_DEVICE_PRESENT_RESP ((uint16_t)0x8000U)
LAN8742_VSPEC_TDR_MATCH_THRESH_MATCH_HIGH_MASK ((uint16_t)0x03E0U)

LAN8742 TDR Match Threshold Register Bit Definition

LAN8742_VSPEC_TDR_MATCH_THRESH_MATCH_HIGH_DEFAULT ((uint16_t)0x0240U)
LAN8742_VSPEC_TDR_MATCH_THRESH_MATCH_LOW_MASK ((uint16_t)0x001FU)
LAN8742_VSPEC_TDR_MATCH_THRESH_MATCH_LOW_DEFAULT ((uint16_t)0x0009U)
LAN8742_VSPEC_TDR_SHORT_OPEN_SHORT_LOW_MASK ((uint16_t)0x03E0U)

LAN8742 TDR Short/Open Threshold Register Bit Definition

LAN8742_VSPEC_TDR_SHORT_OPEN_SHORT_LOW_DEFAULT ((uint16_t)0x0120U)
LAN8742_VSPEC_TDR_SHORT_OPEN_OPEN_HIGH_MASK ((uint16_t)0x001FU)
LAN8742_VSPEC_TDR_SHORT_OPEN_OPEN_HIGH_DEFAULT ((uint16_t)0x0012U)