menu "Example Configuration"

    config EXAMPLE_USE_SPI_ETHERNET
        bool

    choice EXAMPLE_ETHERNET_TYPE
        prompt "Ethernet Type"
        default EXAMPLE_USE_INTERNAL_ETHERNET if IDF_TARGET_ESP32
        default EXAMPLE_USE_W5500
        help
            Select which kind of Ethernet will be used in the example.

        config EXAMPLE_USE_INTERNAL_ETHERNET
            depends on IDF_TARGET_ESP32
            select ETH_USE_ESP32_EMAC
            bool "Internal EMAC"
            help
                Select internal Ethernet MAC controller.

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

        config EXAMPLE_USE_W5500
            bool "W5500 Module"
            select EXAMPLE_USE_SPI_ETHERNET
            select ETH_USE_SPI_ETHERNET
            select ETH_SPI_ETHERNET_W5500
            help
                Select external SPI-Ethernet module (W5500).
    endchoice # EXAMPLE_ETHERNET_TYPE

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

            config EXAMPLE_ETH_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
                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_LAN8720
                bool "LAN8720"
                help
                    LAN8720A is a small footprint RMII 10/100 Ethernet Transceiver with HP Auto-MDIX Support.
                    Goto https://www.microchip.com/LAN8720A for more information about it.

            config EXAMPLE_ETH_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_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 # EXAMPLE_ETH_PHY_MODEL

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

        config EXAMPLE_ETH_MDIO_GPIO
            int "SMI MDIO GPIO number"
            default 18
            help
                Set the GPIO number used by SMI MDIO.
    endif # EXAMPLE_USE_INTERNAL_ETHERNET

    if EXAMPLE_USE_SPI_ETHERNET
        config EXAMPLE_ETH_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
            int "SPI SCLK GPIO number"
            range 0 33
            default 20
            help
                Set the GPIO number used by SPI SCLK.

        config EXAMPLE_ETH_SPI_MOSI_GPIO
            int "SPI MOSI GPIO number"
            range 0 33
            default 19
            help
                Set the GPIO number used by SPI MOSI.

        config EXAMPLE_ETH_SPI_MISO_GPIO
            int "SPI MISO GPIO number"
            range 0 33
            default 18
            help
                Set the GPIO number used by SPI MISO.

        config EXAMPLE_ETH_SPI_CS_GPIO
            int "SPI CS GPIO number"
            range 0 33
            default 21
            help
                Set the GPIO number used by SPI CS.

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

        config EXAMPLE_ETH_SPI_INT_GPIO
            int "Interrupt GPIO number"
            default 4
            help
                Set the GPIO number used by the SPI Ethernet module interrupt line.
    endif # EXAMPLE_USE_SPI_ETHERNET

    config EXAMPLE_ETH_PHY_RST_GPIO
        int "PHY Reset GPIO number"
        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
        int "PHY Address"
        range 0 31
        default 1
        help
            Set PHY address according your board schematic.
endmenu