embox
1/**
2* @file
3*
4* @date Aug 24, 2023
5* @author Anton Bondarev
6*/
7
8#include <util/log.h>9
10#include <drivers/net/stm32cube_eth.h>11
12
13void HAL_ETH_MspInit(ETH_HandleTypeDef *heth)14{
15GPIO_InitTypeDef GPIO_InitStructure;16
17/* Enable GPIOs clocks */18__HAL_RCC_GPIOA_CLK_ENABLE();19__HAL_RCC_GPIOB_CLK_ENABLE();20__HAL_RCC_GPIOC_CLK_ENABLE();21__HAL_RCC_GPIOG_CLK_ENABLE();22
23/* Ethernet pins configuration ************************************************/
24/*25RMII_REF_CLK ----------------------> PA1
26RMII_MDIO -------------------------> PA2
27RMII_MDC --------------------------> PC1
28RMII_MII_CRS_DV -------------------> PA7
29RMII_MII_RXD0 ---------------------> PC4
30RMII_MII_RXD1 ---------------------> PC5
31RMII_MII_RXER ---------------------> PG2
32RMII_MII_TX_EN --------------------> PG11
33RMII_MII_TXD0 ---------------------> PG13
34RMII_MII_TXD1 ---------------------> PB13
35*/
36
37/* Configure PA1, PA2 and PA7 */38GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;39GPIO_InitStructure.Mode = GPIO_MODE_AF_PP;40GPIO_InitStructure.Pull = GPIO_NOPULL;41GPIO_InitStructure.Alternate = GPIO_AF11_ETH;42GPIO_InitStructure.Pin = GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_7;43HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);44
45/* Configure PB13 */46GPIO_InitStructure.Pin = GPIO_PIN_13;47HAL_GPIO_Init(GPIOB, &GPIO_InitStructure);48
49/* Configure PC1, PC4 and PC5 */50GPIO_InitStructure.Pin = GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5;51HAL_GPIO_Init(GPIOC, &GPIO_InitStructure);52
53/* Configure PG2, PG11, PG13 and PG14 */54GPIO_InitStructure.Pin = GPIO_PIN_2 | GPIO_PIN_11 | GPIO_PIN_13;55HAL_GPIO_Init(GPIOG, &GPIO_InitStructure);56
57/* Enable the Ethernet global Interrupt */58HAL_NVIC_SetPriority(ETH_IRQn, 0x7, 0);59HAL_NVIC_EnableIRQ(ETH_IRQn);60
61/* Enable ETHERNET clock */62__HAL_RCC_ETH_CLK_ENABLE();63}
64