aboutsummaryrefslogtreecommitdiff
path: root/lib/chibios-contrib/ext/mcux-sdk/components/phy/device/phyksz8081/fsl_phyksz8081.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chibios-contrib/ext/mcux-sdk/components/phy/device/phyksz8081/fsl_phyksz8081.h')
-rw-r--r--lib/chibios-contrib/ext/mcux-sdk/components/phy/device/phyksz8081/fsl_phyksz8081.h163
1 files changed, 163 insertions, 0 deletions
diff --git a/lib/chibios-contrib/ext/mcux-sdk/components/phy/device/phyksz8081/fsl_phyksz8081.h b/lib/chibios-contrib/ext/mcux-sdk/components/phy/device/phyksz8081/fsl_phyksz8081.h
new file mode 100644
index 000000000..5b93c5698
--- /dev/null
+++ b/lib/chibios-contrib/ext/mcux-sdk/components/phy/device/phyksz8081/fsl_phyksz8081.h
@@ -0,0 +1,163 @@
1/*
2 * Copyright 2020 NXP
3 * All rights reserved.
4 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 */
7
8/*****************************************************************************
9 * PHY KSZ8081 driver change log
10 *****************************************************************************/
11
12/*!
13@page driver_log Driver Change Log
14
15@section phyksz8081 PHYKSZ8081
16 The current PHYKSZ8081 driver version is 2.0.0.
17
18 - 2.0.0
19 - Initial version.
20*/
21
22#ifndef _FSL_PHYKSZ8081_H_
23#define _FSL_PHYKSZ8081_H_
24
25#include "fsl_phy.h"
26
27/*!
28 * @addtogroup phy_driver
29 * @{
30 */
31
32/*******************************************************************************
33 * Definitions
34 ******************************************************************************/
35
36/*! @brief PHY driver version */
37#define FSL_PHY_DRIVER_VERSION (MAKE_VERSION(2, 0, 0))
38
39/*! @brief PHY operations structure. */
40extern const phy_operations_t phyksz8081_ops;
41
42/*******************************************************************************
43 * API
44 ******************************************************************************/
45
46#if defined(__cplusplus)
47extern "C" {
48#endif
49
50/*!
51 * @name PHY Driver
52 * @{
53 */
54
55/*!
56 * @brief Initializes PHY.
57 *
58 * This function initialize PHY.
59 *
60 * @param handle PHY device handle.
61 * @param config Pointer to structure of phy_config_t.
62 * @retval kStatus_Success PHY initialization succeeds
63 * @retval kStatus_Fail PHY initialization fails
64 * @retval kStatus_PHY_SMIVisitTimeout PHY SMI visit time out
65 */
66status_t PHY_KSZ8081_Init(phy_handle_t *handle, const phy_config_t *config);
67
68/*!
69 * @brief PHY Write function. This function writes data over the SMI to
70 * the specified PHY register. This function is called by all PHY interfaces.
71 *
72 * @param handle PHY device handle.
73 * @param phyReg The PHY register.
74 * @param data The data written to the PHY register.
75 * @retval kStatus_Success PHY write success
76 * @retval kStatus_PHY_SMIVisitTimeout PHY SMI visit time out
77 */
78status_t PHY_KSZ8081_Write(phy_handle_t *handle, uint32_t phyReg, uint32_t data);
79
80/*!
81 * @brief PHY Read function. This interface read data over the SMI from the
82 * specified PHY register. This function is called by all PHY interfaces.
83 *
84 * @param handle PHY device handle.
85 * @param phyReg The PHY register.
86 * @param dataPtr The address to store the data read from the PHY register.
87 * @retval kStatus_Success PHY read success
88 * @retval kStatus_PHY_SMIVisitTimeout PHY SMI visit time out
89 */
90status_t PHY_KSZ8081_Read(phy_handle_t *handle, uint32_t phyReg, uint32_t *dataPtr);
91
92/*!
93 * @brief Gets the PHY auto-negotiation status.
94 *
95 * @param handle PHY device handle.
96 * @param status The auto-negotiation status of the PHY.
97 * - true the auto-negotiation is over.
98 * - false the auto-negotiation is on-going or not started.
99 * @retval kStatus_Success PHY gets status success
100 * @retval kStatus_PHY_SMIVisitTimeout PHY SMI visit time out
101 */
102status_t PHY_KSZ8081_GetAutoNegotiationStatus(phy_handle_t *handle, bool *status);
103
104/*!
105 * @brief Gets the PHY link status.
106 *
107 * @param handle PHY device handle.
108 * @param status The link up or down status of the PHY.
109 * - true the link is up.
110 * - false the link is down.
111 * @retval kStatus_Success PHY gets link status success
112 * @retval kStatus_PHY_SMIVisitTimeout PHY SMI visit time out
113 */
114status_t PHY_KSZ8081_GetLinkStatus(phy_handle_t *handle, bool *status);
115
116/*!
117 * @brief Gets the PHY link speed and duplex.
118 *
119 * @brief This function gets the speed and duplex mode of PHY. User can give one of speed
120 * and duplex address paramter and set the other as NULL if only wants to get one of them.
121 *
122 * @param handle PHY device handle.
123 * @param speed The address of PHY link speed.
124 * @param duplex The link duplex of PHY.
125 * @retval kStatus_Success PHY gets link speed and duplex success
126 * @retval kStatus_PHY_SMIVisitTimeout PHY SMI visit time out
127 */
128status_t PHY_KSZ8081_GetLinkSpeedDuplex(phy_handle_t *handle, phy_speed_t *speed, phy_duplex_t *duplex);
129
130/*!
131 * @brief Sets the PHY link speed and duplex.
132 *
133 * @param handle PHY device handle.
134 * @param speed Specified PHY link speed.
135 * @param duplex Specified PHY link duplex.
136 * @retval kStatus_Success PHY gets status success
137 * @retval kStatus_PHY_SMIVisitTimeout PHY SMI visit time out
138 */
139status_t PHY_KSZ8081_SetLinkSpeedDuplex(phy_handle_t *handle, phy_speed_t speed, phy_duplex_t duplex);
140
141/*!
142 * @brief Enables/disables PHY loopback.
143 *
144 * @param handle PHY device handle.
145 * @param mode The loopback mode to be enabled, please see "phy_loop_t".
146 * All loopback modes should not be set together, when one loopback mode is set
147 * another should be disabled.
148 * @param speed PHY speed for loopback mode.
149 * @param enable True to enable, false to disable.
150 * @retval kStatus_Success PHY loopback success
151 * @retval kStatus_PHY_SMIVisitTimeout PHY SMI visit time out
152 */
153status_t PHY_KSZ8081_EnableLoopback(phy_handle_t *handle, phy_loop_t mode, phy_speed_t speed, bool enable);
154
155/* @} */
156
157#if defined(__cplusplus)
158}
159#endif
160
161/*! @}*/
162
163#endif /* _FSL_PHYKSZ8081_H_ */