• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2023 HPMicro
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #ifndef HPM_RTL8201_H
9 #define HPM_RTL8201_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 RTL8201_ADDR
23 #define RTL8201_ADDR (2U)
24 #endif
25 
26 #define RTL8201_ID1  (0x001CU)
27 #define RTL8201_ID2  (0x32U)
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     bool txc_input;
39 } rtl8201_config_t;
40 
41 #if defined(__cplusplus)
42 extern "C" {
43 #endif /* __cplusplus */
44 /*---------------------------------------------------------------------
45  * Exported Functions
46  *---------------------------------------------------------------------
47  */
48 void rtl8201_reset(ENET_Type *ptr);
49 void rtl8201_basic_mode_default_config(ENET_Type *ptr, rtl8201_config_t *config);
50 bool rtl8201_basic_mode_init(ENET_Type *ptr, rtl8201_config_t *config);
51 void rtl8201_get_phy_status(ENET_Type *ptr, enet_phy_status_t *status);
52 
53 #if defined(__cplusplus)
54 }
55 #endif /* __cplusplus */
56 #endif /* HPM_RTL8201_H */
57