HPM SDK
HPMicro Software Development Kit
hpm_jl1111.h
Go to the documentation of this file.
1 
8 /*
9  * Copyright (c) 2024-2025 HPMicro
10  *
11  * SPDX-License-Identifier: BSD-3-Clause
12  *
13  */
14 
15 #ifndef HPM_JL1111_H
16 #define HPM_JL1111_H
17 
18 /*---------------------------------------------------------------------
19  * Includes
20  *---------------------------------------------------------------------
21  */
22 #include "hpm_enet_phy.h"
23 #include "hpm_common.h"
24 #include "hpm_enet_regs.h"
25 /*---------------------------------------------------------------------
26  * Macro Const Definitions
27  *---------------------------------------------------------------------
28  */
29 #ifndef JL1111_ADDR
33 #define JL1111_ADDR (2U)
34 #endif
35 
39 #define JL1111_ID1 (0x937CU)
43 #define JL1111_ID2 (0x10U)
44 
45 /*---------------------------------------------------------------------
46  * Typedef Enum Declarations
47  *---------------------------------------------------------------------
48  */
52 typedef enum {
56 
60 typedef enum {
64 /*---------------------------------------------------------------------
65  * Typedef Struct Declarations
66  *---------------------------------------------------------------------
67  */
71 typedef struct {
72  bool loopback;
73  uint8_t speed;
75  uint8_t duplex;
76  uint8_t rmii_refclk_dir;
78 
79 #if defined(__cplusplus)
80 extern "C" {
81 #endif /* __cplusplus */
82 /*---------------------------------------------------------------------
83  * Exported Functions
84  *---------------------------------------------------------------------
85  */
93 bool jl1111_reset(ENET_Type *ptr, uint32_t phy_addr);
94 
106 
119 bool jl1111_basic_mode_init(ENET_Type *ptr, uint32_t phy_addr, jl1111_config_t *config);
120 
131 void jl1111_get_phy_status(ENET_Type *ptr, uint32_t phy_addr, enet_phy_status_t *status);
132 
140 void jl1111_set_itf(ENET_Type *ptr, uint32_t phy_addr, uint8_t itf);
141 
149 void jl1111_set_rmii_refclk_direction(ENET_Type *ptr, uint32_t phy_addr, uint8_t dir);
150 
159 void jl1111_set_rmii_skew(ENET_Type *ptr, uint32_t phy_addr, uint8_t tx_skew, uint8_t rx_skew);
160 
167 void jl1111_disable_broadcast_response(ENET_Type *ptr, uint32_t phy_addr);
168 
169 #if defined(__cplusplus)
170 }
171 #endif /* __cplusplus */
172 #endif /* HPM_JL1111_H */
void jl1111_set_itf(ENET_Type *ptr, uint32_t phy_addr, uint8_t itf)
Set interface mode for JL1111 PHY.
Definition: hpm_jl1111.c:139
void jl1111_set_rmii_skew(ENET_Type *ptr, uint32_t phy_addr, uint8_t tx_skew, uint8_t rx_skew)
Set RMII skew timing for JL1111 PHY.
Definition: hpm_jl1111.c:181
void jl1111_basic_mode_default_config(ENET_Type *ptr, jl1111_config_t *config)
Set default configuration for JL1111 PHY basic mode.
Definition: hpm_jl1111.c:54
jl1111_config_interface_t
JL1111 interface configuration.
Definition: hpm_jl1111.h:52
@ jl1111_config_mii_itf
Definition: hpm_jl1111.h:53
@ jl1111_config_rmii_itf
Definition: hpm_jl1111.h:54
bool jl1111_reset(ENET_Type *ptr, uint32_t phy_addr)
Reset JL1111 PHY chip.
Definition: hpm_jl1111.c:38
void jl1111_get_phy_status(ENET_Type *ptr, uint32_t phy_addr, enet_phy_status_t *status)
Get JL1111 PHY status.
Definition: hpm_jl1111.c:107
jl1111_config_refclk_direction_t
JL1111 reference clock direction configuration.
Definition: hpm_jl1111.h:60
@ jl1111_config_refclk_output
Definition: hpm_jl1111.h:61
@ jl1111_config_refclk_input
Definition: hpm_jl1111.h:62
void jl1111_set_rmii_refclk_direction(ENET_Type *ptr, uint32_t phy_addr, uint8_t dir)
Set RMII reference clock direction for JL1111 PHY.
Definition: hpm_jl1111.c:160
void jl1111_disable_broadcast_response(ENET_Type *ptr, uint32_t phy_addr)
Disable broadcast response for JL1111 PHY.
Definition: hpm_jl1111.c:201
bool jl1111_basic_mode_init(ENET_Type *ptr, uint32_t phy_addr, jl1111_config_t *config)
Initialize JL1111 PHY chip in basic mode.
Definition: hpm_jl1111.c:68
Definition: hpm_enet_regs.h:12
Definition: hpm_enet_phy.h:43
JL1111 PHY configuration structure.
Definition: hpm_jl1111.h:71
uint8_t rmii_refclk_dir
Definition: hpm_jl1111.h:76
uint8_t duplex
Definition: hpm_jl1111.h:75
uint8_t speed
Definition: hpm_jl1111.h:73
bool auto_negotiation
Definition: hpm_jl1111.h:74
bool loopback
Definition: hpm_jl1111.h:72