menu "Hardware Drivers Config"

config SOC_CH32F103C8
        bool
        select SOC_ARM_SERIES_CH32F103
        select RT_USING_COMPONENTS_INIT
        select RT_USING_USER_MAIN
        default y

menu "On-chip Peripheral Drivers"

config BSP_USING_UART
        bool "using onchip usart"
        select RT_USING_SERIAL
        default n

        if BSP_USING_UART
                config BSP_USING_UART1
                        bool "using uart1"
                        default n

                config BSP_USING_UART2
                        bool "using uart2"
                        default n

                config BSP_USING_UART3
                        bool "using uart3"
                        default n
        endif
        
config BSP_USING_SPI
        bool "using onchip spi"
        select RT_USING_SPI
        default n

        if BSP_USING_SPI
                config BSP_USING_SPI1
                        bool "using spi1"
                        default n

                config BSP_USING_SPI2
                        bool "using spi2"
                        default n
        endif
        
config BSP_USING_HWI2C
        bool "using onchip i2c"
        select RT_USING_I2C
        default n

        if BSP_USING_HWI2C
                config BSP_USING_HWI2C1
                        bool "using i2c1"
                        default n

                config BSP_USING_HWI2C2
                        bool "using i2c2"
                        default n
        endif

config BSP_USING_IWDT
        bool "using onchip iwdt"
        select RT_USING_WDT
        select LSI_VALUE
        default n

config BSP_USING_RTC
        bool "using onchip rtc"
        select RT_USING_RTC
        default n

        if BSP_USING_RTC
                config BSP_USING_RTC_LSI
                        bool "using LSI clock for rtc, if not, LSE default"
                        select LSI_VALUE
                        default n
        endif

config LSI_VALUE
        int
        default 40000

config BSP_USING_TIM
        bool "using TIMx"
        default n

        if BSP_USING_TIM
                config BSP_USING_HWTIMER
                        bool
                        select RT_USING_HWTIMER
                        default n

                config BSP_USING_PWM
                        bool
                        select RT_USING_PWM
                        default n

                config BSP_USING_TIM1
                        bool "using TIM1"
                        default n

                if BSP_USING_TIM1
                        choice
                                prompt "using TIM1 as hwtimer or PWM mode"
                                default BSP_USING_TIM1_HWTIMER

                                config BSP_USING_TIM1_HWTIMER
                                        bool "using TIM1 as hwtimer mode"
                                        select BSP_USING_HWTIMER

                                config BSP_USING_TIM1_PWM
                                        bool "using TIM1 as PWM mode"
                                        select BSP_USING_PWM

                        endchoice

                        if BSP_USING_TIM1_PWM
                                config BSP_USING_TIM1_PWM_CH1
                                        bool "using TIM1 channel 1"
                                        default n

                                config BSP_USING_TIM1_PWM_CH2
                                        bool "using TIM1 channel 2"
                                        default n

                                config BSP_USING_TIM1_PWM_CH3
                                        bool "using TIM1 channel 3"

                                config BSP_USING_TIM1_PWM_CH4
                                        bool "using TIM1 channel 4"

                        endif

                endif

                config BSP_USING_TIM2
                        bool "using TIM2"
                        default n

                if BSP_USING_TIM2
                        choice
                                prompt "using TIM2 as hwtimer or PWM mode"
                                default BSP_USING_TIM2_HWTIMER

                                config BSP_USING_TIM2_HWTIMER
                                        bool "using TIM2 as hwtimer mode"
                                        select BSP_USING_HWTIMER

                                config BSP_USING_TIM2_PWM
                                        bool "using TIM2 as PWM mode"
                                        select BSP_USING_PWM

                        endchoice

                        if BSP_USING_TIM2_PWM
                                config BSP_USING_TIM2_PWM_CH1
                                        bool "using TIM2 channel 1"
                                        default n

                                config BSP_USING_TIM2_PWM_CH2
                                        bool "using TIM2 channel 2"
                                        default n

                                config BSP_USING_TIM2_PWM_CH3
                                        bool "using TIM2 channel 3"

                                config BSP_USING_TIM2_PWM_CH4
                                        bool "using TIM2 channel 4"

                        endif

                endif

                config BSP_USING_TIM3
                        bool "using TIM3"
                        default n

                if BSP_USING_TIM3
                        choice
                                prompt "using TIM3 as hwtimer or PWM mode"
                                default BSP_USING_TIM3_HWTIMER

                                config BSP_USING_TIM3_HWTIMER
                                        bool "using TIM3 as hwtimer mode"
                                        select BSP_USING_HWTIMER

                                config BSP_USING_TIM3_PWM
                                        bool "using TIM3 as PWM mode"
                                        select BSP_USING_PWM

                        endchoice

                        if BSP_USING_TIM3_PWM
                                config BSP_USING_TIM3_PWM_CH1
                                        bool "using TIM3 channel 1"
                                        default n

                                config BSP_USING_TIM3_PWM_CH2
                                        bool "using TIM3 channel 2"
                                        default n

                                config BSP_USING_TIM3_PWM_CH3
                                        bool "using TIM3 channel 3"

                                config BSP_USING_TIM3_PWM_CH4
                                        bool "using TIM3 channel 4"

                        endif

                endif

                config BSP_USING_TIM4
                        bool "using TIM4"
                        default n

                if BSP_USING_TIM4
                        choice
                                prompt "using TIM4 as hwtimer or PWM mode"
                                default BSP_USING_TIM4_HWTIMER

                                config BSP_USING_TIM4_HWTIMER
                                        bool "using TIM4 as hwtimer mode"
                                        select BSP_USING_HWTIMER

                                config BSP_USING_TIM4_PWM
                                        bool "using TIM4 as PWM mode"
                                        select BSP_USING_PWM

                        endchoice

                        if BSP_USING_TIM4_PWM
                                config BSP_USING_TIM4_PWM_CH1
                                        bool "using TIM4 channel 1"
                                        default n

                                config BSP_USING_TIM4_PWM_CH2
                                        bool "using TIM4 channel 2"
                                        default n

                                config BSP_USING_TIM4_PWM_CH3
                                        bool "using TIM4 channel 3"

                                config BSP_USING_TIM4_PWM_CH4
                                        bool "using TIM4 channel 4"

                        endif

                endif

        endif
endmenu

menu "Onboard Peripheral Drivers"

endmenu

menu "Board extended module Drivers"

endmenu

endmenu