menu "ADC and ADC Calibration"

    config ADC_ONESHOT_CTRL_FUNC_IN_IRAM
        bool "Place ISR version ADC oneshot mode read function into IRAM"
        default n
        help
            Place ISR version ADC oneshot mode read function into IRAM.

    config ADC_CONTINUOUS_ISR_IRAM_SAFE
        depends on SOC_ADC_DMA_SUPPORTED
        bool "ADC continuous mode driver ISR IRAM-Safe"
        default n
        select GDMA_ISR_IRAM_SAFE if SOC_ADC_DMA_SUPPORTED && SOC_GDMA_SUPPORTED
        help
            Ensure the ADC continuous mode ISR is IRAM-Safe. When enabled, the ISR handler
            will be available when the cache is disabled.

    menu "ADC Calibration Configurations"
        depends on IDF_TARGET_ESP32

        config ADC_CALI_EFUSE_TP_ENABLE
            bool "Use Two Point Values"
            default "y"
            help
                Some ESP32s have Two Point calibration values burned into eFuse BLOCK3.
                This option will allow the ADC calibration component to characterize the
                ADC-Voltage curve using Two Point values if they are available.

        config ADC_CALI_EFUSE_VREF_ENABLE
            bool "Use eFuse Vref"
            default "y"
            help
                Some ESP32s have Vref burned into eFuse BLOCK0. This option will allow
                the ADC calibration component to characterize the ADC-Voltage curve using
                eFuse Vref if it is available.

        config ADC_CALI_LUT_ENABLE
            bool "Use Lookup Tables"
            default "y"
            help
                This option will allow the ADC calibration component to use Lookup Tables
                to correct for non-linear behavior in 11db attenuation. Other attenuations
                do not exhibit non-linear behavior hence will not be affected by this option.
    endmenu

    config ADC_DISABLE_DAC_OUTPUT
        depends on SOC_DAC_SUPPORTED
        bool "Disable DAC when ADC2 is in use"
        default y
        help
            By default, this is set. The ADC oneshot driver will disable the output of the
            corresponding DAC channels:
            ESP32:   IO25 and IO26
            ESP32S2: IO17 and IO18

            Disable this option so as to measure the output of DAC by internal ADC, for test usage.

    config ADC_CONTINUOUS_FORCE_USE_ADC2_ON_C3_S3
        depends on IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3
        bool "Force use ADC2 continumous mode on ESP32S3 or ESP32C3"
        default n
        help
            On ESP32C3 and ESP32S3, ADC2 Digital Controller is not stable. Therefore,
            ADC2 continuous mode is not suggested on ESP32S3 and ESP32C3

            If you stick to this, you can enable this option to force use ADC2 under above conditions.
            For more details, you can search for errata on espressif website.

    config ADC_ONESHOT_FORCE_USE_ADC2_ON_C3
        depends on IDF_TARGET_ESP32C3
        bool "Force use ADC2 oneshot mode on ESP32C3"
        default n
        help
            On ESP32C3, ADC2 Digital Controller is not stable. Therefore,
            ADC2 oneshot mode is not suggested on ESP32C3

            If you stick to this, you can enable this option to force use ADC2 under above conditions.
            For more details, you can search for errata on espressif website.

    config ADC_ENABLE_DEBUG_LOG
        bool "Enable ADC debug log"
        default n
        help
            whether to enable the debug log message for ADC driver.
            Note that this option only controls the ADC driver log, will not affect other drivers.

            note: This cannot be used in the ADC legacy driver.
endmenu