# Main Kconfig settings

mainmenu "Klipper Firmware Configuration"

choice
    prompt "Micro-controller Architecture"
    config MACH_AVR
        bool "Atmega AVR"
    config MACH_SAM3X8E
        bool "SAM3x8e (Arduino Due)"
    config MACH_SAMD21
        bool "SAMD21 (Arduino Zero)"
    config MACH_SAM4E8E
        bool "SAM4e8e (Duet Wifi/Eth)"
    config MACH_LPC176X
        bool "LPC176x (Smoothieboard)"
    config MACH_STM32F1
        bool "STMicroelectronics STM32F103"
    config MACH_PRU
        bool "Beaglebone PRU"
    config MACH_LINUX
        bool "Linux process"
    config MACH_SIMU
        bool "Host simulator"
endchoice

source "src/avr/Kconfig"
source "src/sam3x8e/Kconfig"
source "src/samd21/Kconfig"
source "src/sam4e8e/Kconfig"
source "src/lpc176x/Kconfig"
source "src/stm32f1/Kconfig"
source "src/pru/Kconfig"
source "src/linux/Kconfig"
source "src/simulator/Kconfig"



# The HAVE_GPIO_x options allow boards to disable support for some
# commands if the hardware does not support the feature.
config HAVE_GPIO
    bool
    default n
config HAVE_GPIO_ADC
    bool
    default n
config HAVE_GPIO_SPI
    bool
    default n
config HAVE_GPIO_HARD_PWM
    bool
    default n
config HAVE_GPIO_BITBANGING
    bool
    default n

config NO_UNSTEP_DELAY
    # Slow micro-controllers do not require a delay before returning a
    # stepper step pin to its default level.  A board can enable this
    # option to optimize the stepper_event() handler in this case.
    bool
    default n

config INLINE_STEPPER_HACK
    # Enables gcc to inline stepper_event() into the main timer irq handler
    bool
    depends on HAVE_GPIO
    default y
