1 /* 2 * Copyright (c) 2021-2023 HPMicro 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 * 6 */ 7 8 #ifndef HPM_DP83848_H 9 #define HPM_DP83848_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 DP83848_ADDR 23 #define DP83848_ADDR (1U) 24 #endif 25 26 #define DP83848_ID1 (0x2000U) 27 #define DP83848_ID2 (0x17U) 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 } dp83848_config_t; 39 40 #if defined(__cplusplus) 41 extern "C" { 42 #endif /* __cplusplus */ 43 /*--------------------------------------------------------------------- 44 * Exported Functions 45 *--------------------------------------------------------------------- 46 */ 47 void dp83848_reset(ENET_Type *ptr); 48 void dp83848_basic_mode_default_config(ENET_Type *ptr, dp83848_config_t *config); 49 bool dp83848_basic_mode_init(ENET_Type *ptr, dp83848_config_t *config); 50 void dp83848_get_phy_status(ENET_Type *ptr, enet_phy_status_t *status); 51 52 #if defined(__cplusplus) 53 } 54 #endif /* __cplusplus */ 55 #endif /* HPM_DP83848_H */ 56