mikroSDK Reference Manual
hw_eth.h
Go to the documentation of this file.
1/****************************************************************************
2**
3** Copyright (C) 2024 MikroElektronika d.o.o.
4** Contact: https://www.mikroe.com/contact
5**
6** This file is part of the mikroSDK package
7**
8** Commercial License Usage
9**
10** Licensees holding valid commercial NECTO compilers AI licenses may use this
11** file in accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The MikroElektronika Company.
14** For licensing terms and conditions see
15** https://www.mikroe.com/legal/software-license-agreement.
16** For further information use the contact form at
17** https://www.mikroe.com/contact.
18**
19**
20** GNU Lesser General Public License Usage
21**
22** Alternatively, this file may be used for
23** non-commercial projects under the terms of the GNU Lesser
24** General Public License version 3 as published by the Free Software
25** Foundation: https://www.gnu.org/licenses/lgpl-3.0.html.
26**
27** The above copyright notice and this permission notice shall be
28** included in all copies or substantial portions of the Software.
29**
30** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
31** OF MERCHANTABILITY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
32** TO THE WARRANTIES FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
33** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
34** DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
35** OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
36** OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
37**
38****************************************************************************/
45#ifndef _HW_ETH_H_
46#define _HW_ETH_H_
47
48#ifdef __cplusplus
49extern "C"{
50#endif
51
52#include "mcu.h"
53#include "net.h"
54
77static inline void hw_eth_init(void);
78
82void mk6xEthInitGpio(NetInterface *interface) {
83 hw_eth_init();
84}
85
86static inline void hw_eth_init(void) {
87 //Enable PORTA and PORTB peripheral clocks and PORTE for ENET_1588_CLKIN
88 SIM->SCGC5 |= SIM_SCGC5_PORTA_MASK | SIM_SCGC5_PORTB_MASK | SIM_SCGC5_PORTE_MASK;
89
90 //Configure RMII0_RXER (PTA5)
91 PORTA->PCR[5] = PORT_PCR_MUX(4) | PORT_PCR_PE_MASK;
92 //Configure RMII0_RXD1 (PTA12)
93 PORTA->PCR[12] = PORT_PCR_MUX(4);
94 //Configure RMII0_RXD0 (PTA13)
95 PORTA->PCR[13] = PORT_PCR_MUX(4);
96 //Configure RMII0_CRS_DV (PTA14)
97 PORTA->PCR[14] = PORT_PCR_MUX(4);
98 //Configure RMII0_TXEN (PTA15)
99 PORTA->PCR[15] = PORT_PCR_MUX(4);
100 //Configure RMII0_TXD0 (PTA16)
101 PORTA->PCR[16] = PORT_PCR_MUX(4);
102 //Configure RMII0_TXD1 (PTA17)
103 PORTA->PCR[17] = PORT_PCR_MUX(4);
104
105 //Configure RMII0_MDIO (PTA7)
106 PORTA->PCR[7] = PORT_PCR_MUX(5) | PORT_PCR_PE_MASK | PORT_PCR_PS_MASK;
107 //Configure RMII0_MDC (PTA8)
108 PORTA->PCR[8] = PORT_PCR_MUX(5);
109
110 //Configure ENET_1588_CLKIN (PTE26)
111 PORTE->PCR[26] = PORT_PCR_MUX(2);
112
113 //Select RMII clock source (ENET_1588_CLKIN) and IEEE 1588 timestamp clock source (ENET_1588_CLKIN)
114 SIM->SOPT2 |= SIM_SOPT2_RMIISRC_MASK | SIM_SOPT2_TIMESRC_MASK;
115}
116
117 // ethernet
118 // middleware
119
120#ifdef __cplusplus
121}
122#endif
123
124#endif // _HW_ETH_H_
125// ------------------------------------------------------------------------- END
#define PORT_PCR_MUX(x)
Definition MK60D10.h:8874
#define PORTA
Definition MK60D10.h:8934
#define PORTE
Definition MK60D10.h:8950
#define SIM
Definition MK60D10.h:10539
void mk6xEthInitGpio(NetInterface *interface)
Externally linked API for ETH configuration.
Definition hw_eth.h:82
TCP/IP stack core.