mainmenu "RT-Thread Configuration"

config $BSP_DIR
    string
    option env="BSP_ROOT"
    default "."

config $RTT_DIR
    string
    option env="RTT_ROOT"
    default "../.."

config $PKGS_DIR
    string
    option env="PKGS_ROOT"
    default "packages"

source "$RTT_DIR/Kconfig"
source "$PKGS_DIR/Kconfig"

choice
    prompt "Device type"
    default STM32F103RB
    config STM32F100RC
        bool "STM32F100RC"
    config STM32F100RD
        bool "STM32F100RD"
    config STM32F100RE
        bool "STM32F100RE"
    config STM32F100VC
        bool "STM32F100VC"
    config STM32F100VD
        bool "STM32F100VD"
    config STM32F100VE
        bool "STM32F100VE"
    config STM32F100ZC
        bool "STM32F100ZC"
    config STM32F100ZD
        bool "STM32F100ZD"
    config STM32F100ZE
        bool "STM32F100ZE"
    config STM32F101CB
        bool "STM32F101CB"
    config STM32F101RB
        bool "STM32F101RB"
    config STM32F101RC
        bool "STM32F101RC"
    config STM32F101RD
        bool "STM32F101RD"
    config STM32F101RE
        bool "STM32F101RE"
    config STM32F101RF
        bool "STM32F101RF"
    config STM32F101RG
        bool "STM32F101RG"
    config STM32F101TB
        bool "STM32F101TB"
    config STM32F101VB
        bool "STM32F101VB"
    config STM32F101VC
        bool "STM32F101VC"
    config STM32F101VD
        bool "STM32F101VD"
    config STM32F101VE
        bool "STM32F101VE"
    config STM32F101VF
        bool "STM32F101VF"
    config STM32F101VG
        bool "STM32F101VG"
    config STM32F101ZC
        bool "STM32F101ZC"
    config STM32F101ZD
        bool "STM32F101ZD"
    config STM32F101ZE
        bool "STM32F101ZE"
    config STM32F101ZF
        bool "STM32F101ZF"
    config STM32F101ZG
        bool "STM32F101ZG"
    config STM32F102CB
        bool "STM32F102CB"
    config STM32F102RB
        bool "STM32F102RB"
    config STM32F103C8
        bool "STM32F103C8"
    config STM32F103CB
        bool "STM32F103CB"
    config STM32F103R8
        bool "STM32F103R8"
    config STM32F103RB
        bool "STM32F103RB"
    config STM32F103RC
        bool "STM32F103RC"
    config STM32F103RD
        bool "STM32F103RD"
    config STM32F103RE
        bool "STM32F103RE"
    config STM32F103RF
        bool "STM32F103RF"
    config STM32F103RG
        bool "STM32F103RG"
    config STM32F103T8
        bool "STM32F103T8"
    config STM32F103TB
        bool "STM32F103TB"
    config STM32F103V8
        bool "STM32F103V8"
    config STM32F103VB
        bool "STM32F103VB"
    config STM32F103VC
        bool "STM32F103VC"
    config STM32F103VD
        bool "STM32F103VD"
    config STM32F103VE
        bool "STM32F103VE"
    config STM32F103VF
        bool "STM32F103VF"
    config STM32F103VG
        bool "STM32F103VG"
    config STM32F103ZC
        bool "STM32F103ZC"
    config STM32F103ZD
        bool "STM32F103ZD"
    config STM32F103ZE
        bool "STM32F103ZE"
    config STM32F103ZF
        bool "STM32F103ZF"
    config STM32F103ZG
        bool "STM32F103ZG"
    config STM32F105R8
        bool "STM32F105R8"
    config STM32F105RB
        bool "STM32F105RB"
    config STM32F105RC
        bool "STM32F105RC"
    config STM32F105V8
        bool "STM32F105V8"
    config STM32F105VB
        bool "STM32F105VB"
    config STM32F105VC
        bool "STM32F105VC"
    config STM32F107RB
        bool "STM32F107RB"
    config STM32F107RC
        bool "STM32F107RC"
    config STM32F107VB
        bool "STM32F107VB"
    config STM32F107VC
        bool "STM32F107VC"
endchoice
config RT_USING_HSI
    bool "Using HSI as clock source"
    default n
config RT_HSE_VALUE
    int "HSE Value"
    default 8000000
    depends on !RT_USING_HSI


if RT_USING_SERIAL

    config RT_USING_UART1
        bool "Using uart1"
        default y    

    config RT_USING_UART2
        bool "Using uart2"
        default n    

    config RT_USING_UART3
        bool "Using uart3"
        default n   

endif

if RT_USING_SPI
    config RT_USING_SPI1
        bool "Using spi1"
        default y
    config RT_USING_SPI2
        bool "Using spi2"
        default n
endif


menuconfig BSP_USING_WDT
    bool "Using wdt"
    select RT_USING_WDT
    default n
if BSP_USING_WDT
    config BSP_USING_WDT_IWDG
        bool "Enable iwdg"
        default n
endif

menuconfig BSP_USING_RTC
    bool "Using rtc"
    select RT_USING_RTC
    default n

if RT_USING_DEVICE_IPC && (STM32F103RC || STM32F103RD || STM32F103RE || STM32F103RF || STM32F103RG ||STM32F103VC || STM32F103VD || STM32F103VE || STM32F103VF || STM32F103VG ||STM32F103ZC || STM32F103ZD || STM32F103ZE || STM32F103ZF || STM32F103ZG)
    config RT_USING_SDCARD
        bool "Using sdcard with sdio"
        default n
    config USING_SD_RX_DMA
        bool "SDCARD Rx Using Dma Mode"
        default y  
        depends on RT_USING_SDCARD
    config USING_SD_TX_DMA
        bool "SDCARD Tx Using Dma Mode"
        default n  
        depends on RT_USING_SDCARD
endif



menuconfig BSP_USING_PWM1
    bool "Using PWM1"
    select RT_USING_PWM
    default n

if BSP_USING_PWM1
    config BSP_USING_PWM1_CH1
        bool "Enable Channel 1 (PE9)"
        default n
    config BSP_USING_PWM1_CH2
        bool "Enable Channel 2 (PE11)"
        default n
endif

menuconfig BSP_USING_PWM2
    bool "Using PWM2"
    select RT_USING_PWM
    default n

if BSP_USING_PWM2
    config BSP_USING_PWM2_CH1
        bool "Enable Channel 1 (PB10)"
        default n
    config BSP_USING_PWM2_CH2
        bool "Enable Channel 2 (PB11)"
        default n
    config BSP_USING_PWM2_CH3
        bool "Enable Channel 3 (PA15)"
        default n
    config BSP_USING_PWM2_CH4
        bool "Enable Channel 4 (PB3)"
        default n
endif

menuconfig BSP_USING_PWM3
    bool "Using PWM3"
    select RT_USING_PWM
    default n

if BSP_USING_PWM3
    config BSP_USING_PWM3_CH1
        bool "Enable Channel 1 (PA6)"
        default n
    config BSP_USING_PWM3_CH2
        bool "Enable Channel 2 (PA7)"
        default n
    config BSP_USING_PWM3_CH3
        bool "Enable Channel 3 (PB0)"
        default n
    config BSP_USING_PWM3_CH4
        bool "Enable Channel 4 (PB1)"
        default n
endif

menuconfig BSP_USING_PWM4
    bool "Using PWM4"
    select RT_USING_PWM
    default n

if BSP_USING_PWM4
    config BSP_USING_PWM4_CH1
        bool "Enable Channel 1 (PD12)"
        default n
    config BSP_USING_PWM4_CH2
        bool "Enable Channel 2 (PD13)"
        default n
    config BSP_USING_PWM4_CH3
        bool "Enable Channel 3 (PD14)"
        default n
    config BSP_USING_PWM4_CH4
        bool "Enable Channel 4 (PD15)"
        default n
endif

menuconfig BSP_USING_PWM5
    bool "Using PWM5"
    select RT_USING_PWM
    default n

if BSP_USING_PWM5
    config BSP_USING_PWM5_CH1
        bool "Enable Channel 1 (PA0)"
        default n
    config BSP_USING_PWM5_CH2
        bool "Enable Channel 2 (PA1)"
        default n
    config BSP_USING_PWM5_CH3
        bool "Enable Channel 3 (PA2)"
        default n
    config BSP_USING_PWM5_CH4
        bool "Enable Channel 4 (PA3)"
        default n
endif

menuconfig BSP_USING_PWM8
    bool "Using PWM8"
    select RT_USING_PWM
    default n

if BSP_USING_PWM8
    config BSP_USING_PWM8_CH1
        bool "Enable Channel 1 (PC6)"
        default n
    config BSP_USING_PWM8_CH2
        bool "Enable Channel 2 (PC7)"
        default n
    config BSP_USING_PWM8_CH3
        bool "Enable Channel 3 (PC8)"
        default n
    config BSP_USING_PWM8_CH4
        bool "Enable Channel 4 (PC9)"
        default n
endif