menu "Hardware Settings"
    menu "MAC Config"
        config ESP_MAC_ADDR_UNIVERSE_WIFI_STA
            bool

        config ESP_MAC_ADDR_UNIVERSE_WIFI_AP
            bool

        config ESP_MAC_ADDR_UNIVERSE_BT
            bool

        config ESP_MAC_ADDR_UNIVERSE_ETH
            bool

            # Insert chip-specific MAC config
            rsource "./port/$IDF_TARGET/Kconfig.mac"
    endmenu

    menu "Sleep Config"
        # This is here since this option affect behavior of esp_light_sleep_start
        # regardless of power management configuration.
        config ESP_SLEEP_POWER_DOWN_FLASH
            bool "Power down flash in light sleep when there is no SPIRAM"
            depends on !SPIRAM
            default y
            help
                If enabled, chip will try to power down flash as part of esp_light_sleep_start(), which costs
                more time when chip wakes up. Can only be enabled if there is no SPIRAM configured.
                This option will in fact consider VDD_SDIO auto power value (ESP_PD_OPTION_AUTO) as OFF. Also, it is
                possible to force a power domain to stay ON during light sleep by using esp_sleep_pd_config()
                function.

        config ESP_SLEEP_RTC_BUS_ISO_WORKAROUND
            bool
            default y if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3

        config ESP_SLEEP_GPIO_RESET_WORKAROUND
            bool "light sleep GPIO reset workaround"
            default y if IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3
            select PM_SLP_DISABLE_GPIO if FREERTOS_USE_TICKLESS_IDLE
            help
                esp32c3 and esp32s3 will reset at wake-up if GPIO is received a small electrostatic
                pulse during light sleep, with specific condition

                - GPIO needs to be configured as input-mode only
                - The pin receives a small electrostatic pulse, and reset occurs when the pulse
                  voltage is higher than 6 V

                For GPIO set to input mode only, it is not a good practice to leave it open/floating,
                The hardware design needs to controlled it with determined supply or ground voltage
                is necessary.

                This option provides a software workaround for this issue. Configure to isolate all
                GPIO pins in sleep state.

        config ESP_SLEEP_PSRAM_LEAKAGE_WORKAROUND
            bool "PSRAM leakage current workaround in light sleep"
            depends on SPIRAM
            help
                When the CS pin of SPIRAM is not pulled up, the sleep current will
                increase during light sleep. If the CS pin of SPIRAM has an external
                pull-up, you do not need to select this option, otherwise, you
                should enable this option.

        config ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND
            bool "Flash leakage current workaround in light sleep"
            help
                When the CS pin of Flash is not pulled up, the sleep current will
                increase during light sleep. If the CS pin of Flash has an external
                pull-up, you do not need to select this option, otherwise, you
                should enable this option.
    endmenu
endmenu
