1 /* 2 * Copyright (c) 2024 HPMicro 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 * 6 */ 7 8 #ifndef HPM_LAN8720_H 9 #define HPM_LAN8720_H 10 11 /*--------------------------------------------------------------------- 12 * Includes 13 *--------------------------------------------------------------------- 14 */ 15 #include "hpm_enet_phy.h" 16 #include "hpm_common.h" 17 #include "hpm_enet_regs.h" 18 /*--------------------------------------------------------------------- 19 * Macro Const Definitions 20 *--------------------------------------------------------------------- 21 */ 22 #ifndef LAN8720_ADDR 23 #define LAN8720_ADDR (0U) 24 #endif 25 26 #define LAN8720_ID1 (0x0007U) 27 #define LAN8720_ID2 (0x30U) 28 29 /*--------------------------------------------------------------------- 30 * Typedef Struct Declarations 31 *--------------------------------------------------------------------- 32 */ 33 typedef struct { 34 bool loopback; 35 uint8_t speed; 36 bool auto_negotiation; 37 uint8_t duplex; 38 } lan8720_config_t; 39 40 #if defined(__cplusplus) 41 extern "C" { 42 #endif /* __cplusplus */ 43 /*--------------------------------------------------------------------- 44 * Exported Functions 45 *--------------------------------------------------------------------- 46 */ 47 void lan8720_reset(ENET_Type *ptr); 48 void lan8720_basic_mode_default_config(ENET_Type *ptr, lan8720_config_t *config); 49 bool lan8720_basic_mode_init(ENET_Type *ptr, lan8720_config_t *config); 50 void lan8720_get_phy_status(ENET_Type *ptr, enet_phy_status_t *status); 51 52 #if defined(__cplusplus) 53 } 54 #endif /* __cplusplus */ 55 #endif /* HPM_LAN8720_H */ 56