Skip to content

Commit

Permalink
feat: Added api for deinitialization of ethernet.
Browse files Browse the repository at this point in the history
  • Loading branch information
espressif-abhikroy authored and kostaond committed Oct 5, 2023
1 parent 51d7900 commit 877af17
Show file tree
Hide file tree
Showing 10 changed files with 781 additions and 191 deletions.
157 changes: 91 additions & 66 deletions ethernet_init/Kconfig.projbuild
Original file line number Diff line number Diff line change
@@ -1,35 +1,35 @@
menu "Example Ethernet Configuration"
menu "Ethernet Configuration"

orsource "$IDF_PATH/examples/common_components/env_caps/$IDF_TARGET/Kconfig.env_caps"

config EXAMPLE_USE_INTERNAL_ETHERNET
config ETHERNET_INTERNAL_SUPPORT
depends on SOC_EMAC_SUPPORTED
select ETH_USE_ESP32_EMAC
default y
bool "Internal EMAC"
help
Use internal Ethernet MAC controller.

if EXAMPLE_USE_INTERNAL_ETHERNET
choice EXAMPLE_ETH_PHY_MODEL
if ETHERNET_INTERNAL_SUPPORT
choice ETHERNET_PHY_MODEL
prompt "Ethernet PHY Device"
default EXAMPLE_ETH_PHY_IP101
default ETHERNET_PHY_IP101
help
Select the Ethernet PHY device to use in the example.
Select the Ethernet PHY device to use.

config EXAMPLE_ETH_PHY_IP101
config ETHERNET_PHY_IP101
bool "IP101"
help
IP101 is a single port 10/100 MII/RMII/TP/Fiber Fast Ethernet Transceiver.
Goto http://www.icplus.com.tw/pp-IP101G.html for more information about it.

config EXAMPLE_ETH_PHY_RTL8201
config ETHERNET_PHY_RTL8201
bool "RTL8201/SR8201"
help
RTL8201F/SR8201F is a single port 10/100Mb Ethernet Transceiver with auto MDIX.
Goto http://www.corechip-sz.com/productsview.asp?id=22 for more information about it.

config EXAMPLE_ETH_PHY_LAN87XX
config ETHERNET_PHY_LAN87XX
bool "LAN87xx"
help
Below chips are supported:
Expand All @@ -42,101 +42,101 @@ menu "Example Ethernet Configuration"
flexPWR® Technology.
Goto https://www.microchip.com for more information about them.

config EXAMPLE_ETH_PHY_DP83848
config ETHERNET_PHY_DP83848
bool "DP83848"
help
DP83848 is a single port 10/100Mb/s Ethernet Physical Layer Transceiver.
Goto http://www.ti.com/product/DP83848J for more information about it.

config EXAMPLE_ETH_PHY_KSZ80XX
config ETHERNET_PHY_KSZ80XX
bool "KSZ80xx"
help
With the KSZ80xx series, Microchip offers single-chip 10BASE-T/100BASE-TX
Ethernet Physical Layer Tranceivers (PHY).
The following chips are supported: KSZ8001, KSZ8021, KSZ8031, KSZ8041,
KSZ8051, KSZ8061, KSZ8081, KSZ8091
Goto https://www.microchip.com for more information about them.
endchoice # EXAMPLE_ETH_PHY_MODEL
endchoice # ETHERNET_PHY_MODEL

config EXAMPLE_ETH_MDC_GPIO
config ETHERNET_MDC_GPIO
int "SMI MDC GPIO number"
range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
default 23
help
Set the GPIO number used by SMI MDC.

config EXAMPLE_ETH_MDIO_GPIO
config ETHERNET_MDIO_GPIO
int "SMI MDIO GPIO number"
range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
default 18
help
Set the GPIO number used by SMI MDIO.

config EXAMPLE_ETH_PHY_RST_GPIO
config ETHERNET_PHY_RST_GPIO
int "PHY Reset GPIO number"
range -1 ENV_GPIO_OUT_RANGE_MAX
default 5
help
Set the GPIO number used to reset PHY chip.
Set to -1 to disable PHY chip hardware reset.

config EXAMPLE_ETH_PHY_ADDR
config ETHERNET_PHY_ADDR
int "PHY Address"
range 0 31
range -1 31
default 1
help
Set PHY address according your board schematic.
endif # EXAMPLE_USE_INTERNAL_ETHERNET
endif # ETHERNET_INTERNAL_SUPPORT

config EXAMPLE_USE_SPI_ETHERNET
config ETHERNET_SPI_SUPPORT
bool "SPI Ethernet"
default n
select ETH_USE_SPI_ETHERNET
help
Use external SPI-Ethernet module(s).

if EXAMPLE_USE_SPI_ETHERNET
config EXAMPLE_SPI_ETHERNETS_NUM
if ETHERNET_SPI_SUPPORT
config ETHERNET_SPI_NUMBER
int "Number of SPI Ethernet modules to use at a time"
range 1 2
default 1
help
Set the number of SPI Ethernet modules you want to use at a time. Multiple SPI modules can be connected
to one SPI interface and can be separately accessed based on state of associated Chip Select (CS).

choice EXAMPLE_ETHERNET_TYPE_SPI
choice ETHERNET_TYPE_SPI
prompt "Ethernet SPI"
default EXAMPLE_USE_W5500
default ETHERNET_USE_W5500
help
Select which kind of Ethernet will be used in the example.
Select which kind of spi Ethernet will be used.

config EXAMPLE_USE_DM9051
config ETHERNET_USE_DM9051
bool "DM9051 Module"
select ETH_SPI_ETHERNET_DM9051
help
Select external SPI-Ethernet module (DM9051).

config EXAMPLE_USE_KSZ8851SNL
config ETHERNET_USE_KSZ8851SNL
bool "KSZ8851SNL Module"
select ETH_SPI_ETHERNET_KSZ8851SNL
help
Select external SPI-Ethernet module (KSZ8851SNL).

config EXAMPLE_USE_W5500
config ETHERNET_USE_W5500
bool "W5500 Module"
select ETH_SPI_ETHERNET_W5500
help
Select external SPI-Ethernet module (W5500).
endchoice

config EXAMPLE_ETH_SPI_HOST
config ETHERNET_SPI_HOST
int "SPI Host Number"
range 0 2
default 1
help
Set the SPI host used to communicate with the SPI Ethernet Controller.

config EXAMPLE_ETH_SPI_SCLK_GPIO
config ETHERNET_SPI_SCLK_GPIO
int "SPI SCLK GPIO number"
range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
default 14 if IDF_TARGET_ESP32
Expand All @@ -146,7 +146,7 @@ menu "Example Ethernet Configuration"
help
Set the GPIO number used by SPI SCLK.

config EXAMPLE_ETH_SPI_MOSI_GPIO
config ETHERNET_SPI_MOSI_GPIO
int "SPI MOSI GPIO number"
range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
default 13 if IDF_TARGET_ESP32
Expand All @@ -156,7 +156,7 @@ menu "Example Ethernet Configuration"
help
Set the GPIO number used by SPI MOSI.

config EXAMPLE_ETH_SPI_MISO_GPIO
config ETHERNET_SPI_MISO_GPIO
int "SPI MISO GPIO number"
range ENV_GPIO_RANGE_MIN ENV_GPIO_IN_RANGE_MAX
default 12 if IDF_TARGET_ESP32
Expand All @@ -166,14 +166,14 @@ menu "Example Ethernet Configuration"
help
Set the GPIO number used by SPI MISO.

config EXAMPLE_ETH_SPI_CLOCK_MHZ
config ETHERNET_SPI_CLOCK_MHZ
int "SPI clock speed (MHz)"
range 5 80
default 16
help
Set the clock speed (MHz) of SPI interface.

config EXAMPLE_ETH_SPI_CS0_GPIO
config ETHERNET_SPI_CS0_GPIO
int "SPI CS0 GPIO number for SPI Ethernet module #1"
range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
default 15 if IDF_TARGET_ESP32
Expand All @@ -183,8 +183,44 @@ menu "Example Ethernet Configuration"
help
Set the GPIO number used by SPI CS0, i.e. Chip Select associated with the first SPI Eth module).

config EXAMPLE_ETH_SPI_CS1_GPIO
depends on EXAMPLE_SPI_ETHERNETS_NUM > 1
config ETHERNET_SPI_INT0_GPIO
int "Interrupt GPIO number SPI Ethernet module #1"
range ENV_GPIO_RANGE_MIN ENV_GPIO_IN_RANGE_MAX
default 4 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3
default 4 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C6
default 10 if IDF_TARGET_ESP32H2
help
Set the GPIO number used by the first SPI Ethernet module interrupt line.

config ETHERNET_SPI_PHY_RST0_GPIO
int "PHY Reset GPIO number of SPI Ethernet Module #1"
range -1 ENV_GPIO_OUT_RANGE_MAX
default -1
help
Set the GPIO number used to reset PHY chip on the first SPI Ethernet module.
Set to -1 to disable PHY chip hardware reset.

config ETHERNET_SPI_PHY_ADDR0
int "PHY Address of SPI Ethernet Module #1"
range 0 31
default 1
help
Set the first SPI Ethernet module PHY address according your board schematic.

config ETHERNET_SPI_AUTOCONFIG_MAC_ADDR0
bool "Auto-configure MAC address of SPI Ethernet #1"
default y
select ETH_SPI_CONFIG_ENABLE_MAC_ADDR0
help
Auto-configure mac address for SPI Ethernet

config ETHERNET_SPI_MAC_ADDR0
string "MAC address of SPI Ethernet #1"
default "5a:bf:25:e0:41:00"
depends on !ETHERNET_SPI_AUTOCONFIG_MAC_ADDR0

config ETHERNET_SPI_CS1_GPIO
depends on ETHERNET_SPI_NUMBER > 1
int "SPI CS1 GPIO number for SPI Ethernet module #2"
range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
default 32 if IDF_TARGET_ESP32
Expand All @@ -196,17 +232,8 @@ menu "Example Ethernet Configuration"
help
Set the GPIO number used by SPI CS1, i.e. Chip Select associated with the second SPI Eth module.

config EXAMPLE_ETH_SPI_INT0_GPIO
int "Interrupt GPIO number SPI Ethernet module #1"
range ENV_GPIO_RANGE_MIN ENV_GPIO_IN_RANGE_MAX
default 4 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3
default 4 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C6
default 10 if IDF_TARGET_ESP32H2
help
Set the GPIO number used by the first SPI Ethernet module interrupt line.

config EXAMPLE_ETH_SPI_INT1_GPIO
depends on EXAMPLE_SPI_ETHERNETS_NUM > 1
config ETHERNET_SPI_INT1_GPIO
depends on ETHERNET_SPI_NUMBER > 1
int "Interrupt GPIO number SPI Ethernet module #2"
range ENV_GPIO_RANGE_MIN ENV_GPIO_IN_RANGE_MAX
default 33 if IDF_TARGET_ESP32
Expand All @@ -216,36 +243,34 @@ menu "Example Ethernet Configuration"
help
Set the GPIO number used by the second SPI Ethernet module interrupt line.

config EXAMPLE_ETH_SPI_PHY_RST0_GPIO
int "PHY Reset GPIO number of SPI Ethernet Module #1"
range -1 ENV_GPIO_OUT_RANGE_MAX
default -1
help
Set the GPIO number used to reset PHY chip on the first SPI Ethernet module.
Set to -1 to disable PHY chip hardware reset.

config EXAMPLE_ETH_SPI_PHY_RST1_GPIO
depends on EXAMPLE_SPI_ETHERNETS_NUM > 1
config ETHERNET_SPI_PHY_RST1_GPIO
depends on ETHERNET_SPI_NUMBER > 1
int "PHY Reset GPIO number of SPI Ethernet Module #2"
range -1 ENV_GPIO_OUT_RANGE_MAX
default -1
help
Set the GPIO number used to reset PHY chip on the second SPI Ethernet module.
Set to -1 to disable PHY chip hardware reset.

config EXAMPLE_ETH_SPI_PHY_ADDR0
int "PHY Address of SPI Ethernet Module #1"
range 0 31
default 1
help
Set the first SPI Ethernet module PHY address according your board schematic.

config EXAMPLE_ETH_SPI_PHY_ADDR1
depends on EXAMPLE_SPI_ETHERNETS_NUM > 1
config ETHERNET_SPI_PHY_ADDR1
depends on ETHERNET_SPI_NUMBER > 1
int "PHY Address of SPI Ethernet Module #2"
range 0 31
default 1
help
Set the second SPI Ethernet module PHY address according your board schematic.
endif # EXAMPLE_USE_SPI_ETHERNET

config ETHERNET_SPI_AUTOCONFIG_MAC_ADDR1
depends on ETHERNET_SPI_NUMBER > 1
bool "Auto-configure MAC address of SPI Ethernet #2"
default y
help
Auto-configure mac address for SPI Ethernet

config ETHERNET_SPI_MAC_ADDR1
string "MAC address of SPI Ethernet #2"
default "5a:bf:25:e0:41:01"
depends on (!ETHERNET_SPI_AUTOCONFIG_MAC_ADDR1) && (ETHERNET_SPI_NUMBER > 1)

endif # ETHERNET_SPI_SUPPORT
endmenu
Loading

0 comments on commit 877af17

Please sign in to comment.