1 /*
2 * Copyright (c) 2013-2020 Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 *
6 * Licensed under the Apache License, Version 2.0 (the License); you may
7 * not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18
19 #include "Driver_ETH_PHY.h"
20
21 #define ARM_ETH_PHY_DRV_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(1, 0) /* driver version */
22
23 /* Driver Version */
24 static const ARM_DRIVER_VERSION DriverVersion = {
25 ARM_ETH_PHY_API_VERSION,
26 ARM_ETH_PHY_DRV_VERSION
27 };
28
29 //
30 // Functions
31 //
32
ARM_ETH_PHY_GetVersion(void)33 static ARM_DRIVER_VERSION ARM_ETH_PHY_GetVersion(void)
34 {
35 return DriverVersion;
36 }
37
ARM_ETH_PHY_Initialize(ARM_ETH_PHY_Read_t fn_read,ARM_ETH_PHY_Write_t fn_write)38 static int32_t ARM_ETH_PHY_Initialize(ARM_ETH_PHY_Read_t fn_read, ARM_ETH_PHY_Write_t fn_write)
39 {
40 }
41
ARM_ETH_PHY_Uninitialize(void)42 static int32_t ARM_ETH_PHY_Uninitialize(void)
43 {
44 }
45
ARM_ETH_PHY_PowerControl(ARM_POWER_STATE state)46 static int32_t ARM_ETH_PHY_PowerControl(ARM_POWER_STATE state)
47 {
48 switch (state)
49 {
50 case ARM_POWER_OFF:
51 break;
52
53 case ARM_POWER_LOW:
54 break;
55
56 case ARM_POWER_FULL:
57 break;
58 }
59 return ARM_DRIVER_OK;
60 }
61
ARM_ETH_PHY_SetInterface(uint32_t interface)62 static int32_t ARM_ETH_PHY_SetInterface(uint32_t interface)
63 {
64 switch (interface)
65 {
66 case ARM_ETH_INTERFACE_MII:
67 break;
68 case ARM_ETH_INTERFACE_RMII:
69 break;
70 default:
71 return ARM_DRIVER_ERROR_UNSUPPORTED;
72 }
73 }
74
ARM_ETH_PHY_SetMode(uint32_t mode)75 static int32_t ARM_ETH_PHY_SetMode(uint32_t mode)
76 {
77 switch (mode & ARM_ETH_PHY_SPEED_Msk)
78 {
79 case ARM_ETH_PHY_SPEED_10M:
80 break;
81 case ARM_ETH_PHY_SPEED_100M:
82 break;
83 default:
84 return ARM_DRIVER_ERROR_UNSUPPORTED;
85 }
86
87 switch (mode & ARM_ETH_PHY_DUPLEX_Msk)
88 {
89 case ARM_ETH_PHY_DUPLEX_HALF:
90 break;
91 case ARM_ETH_PHY_DUPLEX_FULL:
92 break;
93 }
94
95 if (mode & ARM_ETH_PHY_AUTO_NEGOTIATE)
96 {
97 }
98
99 if (mode & ARM_ETH_PHY_LOOPBACK)
100 {
101 }
102
103 if (mode & ARM_ETH_PHY_ISOLATE)
104 {
105 }
106 }
107
ARM_ETH_PHY_GetLinkState(void)108 static ARM_ETH_LINK_STATE ARM_ETH_PHY_GetLinkState(void)
109 {
110 }
111
ARM_ETH_PHY_GetLinkInfo(void)112 static ARM_ETH_LINK_INFO ARM_ETH_PHY_GetLinkInfo(void)
113 {
114 }
115
116 extern \
117 ARM_DRIVER_ETH_PHY Driver_ETH_PHY0;
118 ARM_DRIVER_ETH_PHY Driver_ETH_PHY0 =
119 {
120 ARM_ETH_PHY_GetVersion,
121 ARM_ETH_PHY_Initialize,
122 ARM_ETH_PHY_Uninitialize,
123 ARM_ETH_PHY_PowerControl,
124 ARM_ETH_PHY_SetInterface,
125 ARM_ETH_PHY_SetMode,
126 ARM_ETH_PHY_GetLinkState,
127 ARM_ETH_PHY_GetLinkInfo,
128 };
129