menu "Example Configuration"

    choice PHY_MODEL
        prompt "Ethernet PHY Device"
        default PHY_IP101
        help
            Select the PHY driver to use for the example.
        config 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 PHY_TLK110
            bool "TLK110"
            help
                TLK110 is an Industrial 10/100Mbps Ethernet Physical Layer Transceiver.
                Goto http://www.ti.com/product/TLK110 for information about it.
        config PHY_LAN8720
            bool "LAN8720"
            help
                LAN8720 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.
    endchoice

    config PHY_ADDRESS
        int "Ethernet PHY Address"
        default 1
        range 0 31
        help
            PHY Address of your PHY device. It dependens on your schematic design.

    choice PHY_CLOCK_MODE
        prompt "Ethernet PHY Clock Mode"
        default PHY_CLOCK_GPIO0_IN
        help
            Select external (input on GPIO0) or internal (output on GPIO0, GPIO16 or GPIO17) RMII clock.
        config PHY_CLOCK_GPIO0_IN
            bool "GPIO0 Input"
            help
                Input of 50MHz RMII clock on GPIO0.
        config PHY_CLOCK_GPIO0_OUT
            bool "GPIO0 Output(READ HELP)"
            help
                GPIO0 can be set to output a pre-divided PLL clock (test only!).
                Enabling this option will configure GPIO0 to output a 50MHz clock.
                In fact this clock doesn't have directly relationship with EMAC peripheral.
                Sometimes this clock won't work well with your PHY chip. You might need to
                add some extra devices after GPIO0 (e.g. inverter).
                Note that outputting RMII clock on GPIO0 is an experimental practice.
                If you want the Ethernet to work with WiFi, don't select GPIO0 output mode for stability.
        config PHY_CLOCK_GPIO16_OUT
            bool "GPIO16 Output"
            help
                Output the internal 50MHz RMII clock on GPIO16.
        config PHY_CLOCK_GPIO17_OUT
            bool "GPIO17 Output (inverted)"
            help
                Output the internal 50MHz RMII clock on GPIO17 (inverted signal).
    endchoice

    config PHY_CLOCK_MODE
        int
        default 0 if PHY_CLOCK_GPIO0_IN
        default 1 if PHY_CLOCK_GPIO0_OUT
        default 2 if PHY_CLOCK_GPIO16_OUT
        default 3 if PHY_CLOCK_GPIO17_OUT

    config PHY_USE_POWER_PIN
        bool "Use PHY Power (enable / disable) pin"
        default y
        help
            Use a GPIO "power pin" to power the PHY on/off during operation.
            When using GPIO0 to input RMII clock, the reset process will be interfered by this clock.
            So we need another GPIO to control the switch on / off of the RMII clock.

    if PHY_USE_POWER_PIN
        config PHY_POWER_PIN
            int "PHY Power GPIO"
            default 5
            range 0 33
            depends on PHY_USE_POWER_PIN
            help
                GPIO number to use for powering on/off the PHY.
    endif

    config PHY_SMI_MDC_PIN
        int "SMI MDC Pin Number"
        default 23
        range 0 33
        help
            GPIO number used for SMI clock signal.

    config PHY_SMI_MDIO_PIN
        int "SMI MDIO Pin Number"
        default 18
        range 0 33
        help
            GPIO number used for SMI data signal.

endmenu
