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