mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-01 03:34:32 +02:00
ethernet: add ksz8041 in basic ethernet example
This commit is contained in:
@@ -240,6 +240,17 @@ esp_eth_phy_t *esp_eth_phy_new_lan8720(const eth_phy_config_t *config);
|
|||||||
*/
|
*/
|
||||||
esp_eth_phy_t *esp_eth_phy_new_dp83848(const eth_phy_config_t *config);
|
esp_eth_phy_t *esp_eth_phy_new_dp83848(const eth_phy_config_t *config);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Create a PHY instance of KSZ8041
|
||||||
|
*
|
||||||
|
* @param[in] config: configuration of PHY
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* - instance: create PHY instance successfully
|
||||||
|
* - NULL: create PHY instance failed because some error occurred
|
||||||
|
*/
|
||||||
|
esp_eth_phy_t *esp_eth_phy_new_ksz8041(const eth_phy_config_t *config);
|
||||||
|
|
||||||
#if CONFIG_ETH_SPI_ETHERNET_DM9051
|
#if CONFIG_ETH_SPI_ETHERNET_DM9051
|
||||||
/**
|
/**
|
||||||
* @brief Create a PHY instance of DM9051
|
* @brief Create a PHY instance of DM9051
|
||||||
@@ -251,18 +262,8 @@ esp_eth_phy_t *esp_eth_phy_new_dp83848(const eth_phy_config_t *config);
|
|||||||
* - NULL: create PHY instance failed because some error occurred
|
* - NULL: create PHY instance failed because some error occurred
|
||||||
*/
|
*/
|
||||||
esp_eth_phy_t *esp_eth_phy_new_dm9051(const eth_phy_config_t *config);
|
esp_eth_phy_t *esp_eth_phy_new_dm9051(const eth_phy_config_t *config);
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Create a PHY instance of KSZ8041
|
|
||||||
*
|
|
||||||
* @param[in] config: configuration of PHY
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
* - instance: create PHY instance successfully
|
|
||||||
* - NULL: create PHY instance failed because some error occurred
|
|
||||||
*/
|
|
||||||
esp_eth_phy_t *esp_eth_phy_new_ksz8041(const eth_phy_config_t *config);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -20,6 +20,7 @@
|
|||||||
#include "freertos/FreeRTOS.h"
|
#include "freertos/FreeRTOS.h"
|
||||||
#include "freertos/task.h"
|
#include "freertos/task.h"
|
||||||
#include "driver/gpio.h"
|
#include "driver/gpio.h"
|
||||||
|
#include "esp_rom_gpio.h"
|
||||||
|
|
||||||
static const char *TAG = "ksz8041";
|
static const char *TAG = "ksz8041";
|
||||||
#define PHY_CHECK(a, str, goto_tag, ...) \
|
#define PHY_CHECK(a, str, goto_tag, ...) \
|
||||||
@@ -166,7 +167,7 @@ static esp_err_t ksz8041_reset_hw(esp_eth_phy_t *phy)
|
|||||||
{
|
{
|
||||||
phy_ksz8041_t *ksz8041 = __containerof(phy, phy_ksz8041_t, parent);
|
phy_ksz8041_t *ksz8041 = __containerof(phy, phy_ksz8041_t, parent);
|
||||||
if (ksz8041->reset_gpio_num >= 0) {
|
if (ksz8041->reset_gpio_num >= 0) {
|
||||||
gpio_pad_select_gpio(ksz8041->reset_gpio_num);
|
esp_rom_gpio_pad_select_gpio(ksz8041->reset_gpio_num);
|
||||||
gpio_set_direction(ksz8041->reset_gpio_num, GPIO_MODE_OUTPUT);
|
gpio_set_direction(ksz8041->reset_gpio_num, GPIO_MODE_OUTPUT);
|
||||||
gpio_set_level(ksz8041->reset_gpio_num, 0);
|
gpio_set_level(ksz8041->reset_gpio_num, 0);
|
||||||
gpio_set_level(ksz8041->reset_gpio_num, 1);
|
gpio_set_level(ksz8041->reset_gpio_num, 1);
|
||||||
|
@@ -52,6 +52,12 @@ menu "Example Configuration"
|
|||||||
help
|
help
|
||||||
DP83848 is a single port 10/100Mb/s Ethernet Physical Layer Transceiver.
|
DP83848 is a single port 10/100Mb/s Ethernet Physical Layer Transceiver.
|
||||||
Goto http://www.ti.com/product/DP83848J for more information about it.
|
Goto http://www.ti.com/product/DP83848J for more information about it.
|
||||||
|
|
||||||
|
config EXAMPLE_ETH_PHY_KSZ8041
|
||||||
|
bool "KSZ8041"
|
||||||
|
help
|
||||||
|
The KSZ8041 is a single supply 10Base-T/100Base-TX Physical Layer Transceiver.
|
||||||
|
Goto https://www.microchip.com/wwwproducts/en/KSZ8041 for more information about it.
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
config EXAMPLE_ETH_MDC_GPIO
|
config EXAMPLE_ETH_MDC_GPIO
|
||||||
|
@@ -93,6 +93,8 @@ void app_main(void)
|
|||||||
esp_eth_phy_t *phy = esp_eth_phy_new_lan8720(&phy_config);
|
esp_eth_phy_t *phy = esp_eth_phy_new_lan8720(&phy_config);
|
||||||
#elif CONFIG_EXAMPLE_ETH_PHY_DP83848
|
#elif CONFIG_EXAMPLE_ETH_PHY_DP83848
|
||||||
esp_eth_phy_t *phy = esp_eth_phy_new_dp83848(&phy_config);
|
esp_eth_phy_t *phy = esp_eth_phy_new_dp83848(&phy_config);
|
||||||
|
#elif CONFIG_EXAMPLE_ETH_PHY_KSZ8041
|
||||||
|
esp_eth_phy_t *phy = esp_eth_phy_new_ksz8041(&phy_config);
|
||||||
#endif
|
#endif
|
||||||
#elif CONFIG_EXAMPLE_USE_DM9051
|
#elif CONFIG_EXAMPLE_USE_DM9051
|
||||||
gpio_install_isr_service(0);
|
gpio_install_isr_service(0);
|
||||||
|
Reference in New Issue
Block a user