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:
ETH IO layer: LAN8742 Part Drivers API Documentation - ETH IO
Custom IO layer: LAN8742 Part Drivers API Documentation - Custom IO
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.
-
lan8742_status_t
lan8742_get_link_mode
(
lan8742_obj_t
*
pobj
,
lan8742_link_t
*
link_mode
)
¶
-
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
-
lan8742_status_t
lan8742_get_link_config
(
lan8742_obj_t
*
pobj
,
lan8742_link_config_t
*
pconfig
)
¶
-
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
-
lan8742_status_t
lan8742_set_link_config
(
lan8742_obj_t
*
pobj
,
const
lan8742_link_config_t
*
pconfig
)
¶
-
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
-
lan8742_status_t
lan8742_start_link_autonego
(
lan8742_obj_t
*
pobj
)
¶
-
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
¶
-
enumerator
LAN8742_RESET
¶
-
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
-
enumerator
LAN8742_STATUS_FATAL
¶
-
enum
lan8742_link_speed_t
¶
-
Values:
-
enumerator
LAN8742_LINK_SPEED_NONE
¶
-
enumerator
LAN8742_LINK_SPEED_10
¶
-
enumerator
LAN8742_LINK_SPEED_100
¶
-
enumerator
LAN8742_LINK_SPEED_NONE
¶
-
enum
lan8742_link_duplex_t
¶
-
Values:
-
enumerator
LAN8742_LINK_DUPLEX_NONE
¶
-
enumerator
LAN8742_LINK_HALF_DUPLEX
¶
-
enumerator
LAN8742_LINK_FULL_DUPLEX
¶
-
enumerator
LAN8742_LINK_DUPLEX_NONE
¶
-
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_LINK_DOWN
¶
-
enumerator
LAN8742_IT_SRC_AUTONEGO_LP_ACK
¶
-
enumerator
LAN8742_IT_SRC_PARALLEL_DETECTION_FAULT
¶
-
enumerator
LAN8742_IT_SRC_AUTONEGO_PAGE_RECEIVED
¶
-
enumerator
LAN8742_IT_SRC_WOL
¶
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_LINK_STATUS
((uint16_t)0x0004U)
¶
-
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_LINK_DOWN_IT
LAN8742_INT_4
¶
-
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_LINK_ACTIVITY
((uint16_t)0x0000U)
¶
-
LAN8742_PCS_WUCSR_LED1_FUNC_NINT
((uint16_t)0x2000U)
¶
-
LAN8742_PCS_WUCSR_LED1_FUNC_NPME
((uint16_t)0x4000U)
¶
-
LAN8742_PCS_WUCSR_LED1_FUNC_LINK_SPEED
((uint16_t)0x6000U)
¶
-
LAN8742_PCS_WUCSR_LED2_FUNC_SELECT_MASK
((uint16_t)0x1800U)
¶
-
LAN8742_PCS_WUCSR_LED2_FUNC_LINK_SPEED
((uint16_t)0x0000U)
¶
-
LAN8742_PCS_WUCSR_LED2_FUNC_NINT
((uint16_t)0x0800U)
¶
-
LAN8742_PCS_WUCSR_LED2_FUNC_NPME
((uint16_t)0x1000U)
¶
-
LAN8742_PCS_WUCSR_LED2_FUNC_LINK_ACTIVITY
((uint16_t)0x1800U)
¶
-
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)
¶