menu "General Drivers Configuration"

    menuconfig BSP_USING_UART
        bool "Using UART"
        select RT_USING_SERIAL
        default y

        if BSP_USING_UART
            config BSP_USING_UART0
                bool "Enable UART 0"
                default n

                if BSP_USING_UART0
                    config BSP_UART0_RX_PINNAME
                        string "uart0 rx pin name"
                        default ""
                    config BSP_UART0_TX_PINNAME
                        string "uart0 tx pin name"
                        default ""
                endif

            config BSP_USING_UART1
                bool "Enable UART 1"
                default y

                if BSP_USING_UART1
                    config BSP_UART1_RX_PINNAME
                        string "uart1 rx pin name"
                        default "IIC0_SDA"
                    config BSP_UART1_TX_PINNAME
                        string "uart1 tx pin name"
                        default "IIC0_SCL"
                endif

            config BSP_USING_UART2
                bool "Enable UART 2"
                default n

                if BSP_USING_UART2
                    config BSP_UART2_RX_PINNAME
                        string "uart2 rx pin name"
                        default ""
                    config BSP_UART2_TX_PINNAME
                        string "uart2 tx pin name"
                        default ""
                endif

            config BSP_USING_UART3
                bool "Enable UART 3"
                default n

                if BSP_USING_UART3
                    config BSP_UART3_RX_PINNAME
                        string "uart3 rx pin name"
                        default ""
                    config BSP_UART3_TX_PINNAME
                        string "uart3 tx pin name"
                        default ""
                endif

            config BSP_USING_UART4
                bool "Enable UART 4"
                default n

                if BSP_USING_UART4
                    config BSP_UART4_RX_PINNAME
                        string "uart4 rx pin name"
                        default ""
                    config BSP_UART4_TX_PINNAME
                        string "uart4 tx pin name"
                        default ""
                endif

            config BSP_UART_IRQ_BASE
                int
                default 30
        endif

    menuconfig BSP_USING_I2C
        bool "Using I2C"
        select RT_USING_I2C
        select RT_USING_PIN
        default n

        if BSP_USING_I2C
            config BSP_USING_I2C0
                bool "Enable I2C0"
                default n

                if BSP_USING_I2C0
                    config BSP_I2C0_SCL_PINNAME
                        string "i2c0 scl pin name"
                        default ""
                    config BSP_I2C0_SDA_PINNAME
                        string "i2c0 sda pin name"
                        default ""
                endif

            config BSP_USING_I2C1
                bool "Enable I2C1"
                default n

                if BSP_USING_I2C1
                    config BSP_I2C1_SCL_PINNAME
                        string "i2c1 scl pin name"
                        default ""
                    config BSP_I2C1_SDA_PINNAME
                        string "i2c1 sda pin name"
                        default ""
                endif

            config BSP_USING_I2C2
                bool "Enable I2C2"
                default n

                if BSP_USING_I2C2
                    config BSP_I2C2_SCL_PINNAME
                        string "i2c2 scl pin name"
                        default ""
                    config BSP_I2C2_SDA_PINNAME
                        string "i2c2 sda pin name"
                        default ""
                endif

            config BSP_USING_I2C3
                bool "Enable I2C3"
                default n

                if BSP_USING_I2C3
                    config BSP_I2C3_SCL_PINNAME
                        string "i2c3 scl pin name"
                        default ""
                    config BSP_I2C3_SDA_PINNAME
                        string "i2c3 sda pin name"
                        default ""
                endif

            config BSP_USING_I2C4
                bool "Enable I2C4"
                default n

                if BSP_USING_I2C4
                    config BSP_I2C4_SCL_PINNAME
                        string "i2c4 scl pin name"
                        default ""
                    config BSP_I2C4_SDA_PINNAME
                        string "i2c4 sda pin name"
                        default ""
                endif

            config BSP_I2C_IRQ_BASE
                int
                default 32
        endif

    menuconfig BSP_USING_ADC
        bool "Using ADC"
        select RT_USING_ADC
        default n

        if BSP_USING_ADC
            config BSP_USING_ADC_ACTIVE
                bool "Enable ADC Controller in Active Domain"
                default n

                if BSP_USING_ADC_ACTIVE
                    config BSP_ACTIVE_ADC1_PINNAME
                        string "Pin name for VIN1 in Active Domain"
                        default ""
                    config BSP_ACTIVE_ADC2_PINNAME
                        string "Pin name for VIN2 in Active Domain"
                        default ""
                    config BSP_ACTIVE_ADC3_PINNAME
                        string "Pin name for VIN3 in Active Domain"
                        default ""
                endif

            config BSP_USING_ADC_NODIE
                bool "Enable ADC Controller in No-die Domain"
                default n

                if BSP_USING_ADC_NODIE
                    config BSP_NODIE_ADC1_PINNAME
                        string "Pin name for VIN1 in No-die Domain"
                        default ""
                    config BSP_NODIE_ADC2_PINNAME
                        string "Pin name for VIN2 in No-die Domain"
                        default ""
                    config BSP_NODIE_ADC3_PINNAME
                        string "Pin name for VIN3 in No-die Domain"
                        default ""
                endif
        endif

    config BSP_USING_SPI
        bool "Using SPI"
        select RT_USING_SPI
        default n

        if BSP_USING_SPI
            config BSP_USING_SPI0
                bool "Enable SPI 0"
                default n

                if BSP_USING_SPI0
                    config BSP_SPI0_SCK_PINNAME
                        string "spi0 sck pin name"
                        default ""
                    config BSP_SPI0_SDO_PINNAME
                        string "spi0 sdo pin name"
                        default ""
                    config BSP_SPI0_SDI_PINNAME
                        string "spi0 sdi pin name"
                        default ""
                    config BSP_SPI0_CS_PINNAME
                        string "spi0 cs pin name"
                        default ""
                endif

            config BSP_USING_SPI1
                bool "Enable SPI 1"
                default n

                if BSP_USING_SPI1
                    config BSP_SPI1_SCK_PINNAME
                        string "spi1 sck pin name"
                        default ""
                    config BSP_SPI1_SDO_PINNAME
                        string "spi1 sdo pin name"
                        default ""
                    config BSP_SPI1_SDI_PINNAME
                        string "spi1 sdi pin name"
                        default ""
                    config BSP_SPI1_CS_PINNAME
                        string "spi1 cs pin name"
                        default ""
                endif

            config BSP_USING_SPI2
                bool "Enable SPI 2"
                default n

                if BSP_USING_SPI2
                    config BSP_SPI2_SCK_PINNAME
                        string "spi2 sck pin name"
                        default ""
                    config BSP_SPI2_SDO_PINNAME
                        string "spi2 sdo pin name"
                        default ""
                    config BSP_SPI2_SDI_PINNAME
                        string "spi2 sdi pin name"
                        default ""
                    config BSP_SPI2_CS_PINNAME
                        string "spi2 cs pin name"
                        default ""
                endif

            config BSP_USING_SPI3
                bool "Enable SPI 3"
                default n

                if BSP_USING_SPI3
                    config BSP_SPI3_SCK_PINNAME
                        string "spi3 sck pin name"
                        default ""
                    config BSP_SPI3_SDO_PINNAME
                        string "spi3 sdo pin name"
                        default ""
                    config BSP_SPI3_SDI_PINNAME
                        string "spi3 sdi pin name"
                        default ""
                    config BSP_SPI3_CS_PINNAME
                        string "spi3 cs pin name"
                        default ""
                endif
        endif

    menuconfig BSP_USING_WDT
        bool "Enable Watchdog Timer"
        select RT_USING_WDT
        default n

        if BSP_USING_WDT
            config BSP_USING_WDT0
                bool "Enable WDT0"
                default n

            config BSP_USING_WDT1
                bool "Enable WDT1"
                default n

            config BSP_USING_WDT2
                bool "Enable WDT2"
                default n
        endif

    menuconfig BSP_USING_TIMER
        bool "Enable TIMER"
        default n
        select RT_USING_CLOCK_TIME
        if BSP_USING_TIMER
            config BSP_USING_TIMER4
                bool "Enable TIMER4"
                default n

            config BSP_USING_TIMER5
                bool "Enable TIMER5"
                default n

            config BSP_USING_TIMER6
                bool "Enable TIMER6"
                default n

            config BSP_USING_TIMER7
                bool "Enable TIMER7"
                default n

            config BSP_TIMER_IRQ_BASE
                int
                default 55
        endif

    menuconfig BSP_USING_PWM
        bool "Using PWM"
        select RT_USING_PWM
        default n

        if BSP_USING_PWM
            config BSP_USING_PWM0
                bool "Enable PWM 0"
                default n

                if BSP_USING_PWM0
                    config BSP_PWM0_0_PINNAME
                        string "pwm[0] pin name"
                        default ""
                    config BSP_PWM0_1_PINNAME
                        string "pwm[1] pin name"
                        default ""
                    config BSP_PWM0_2_PINNAME
                        string "pwm[2] pin name"
                        default ""
                    config BSP_PWM0_3_PINNAME
                        string "pwm[3] pin name"
                        default ""
                endif

            config BSP_USING_PWM1
                bool "Enable PWM 1"
                default n

                if BSP_USING_PWM1
                    config BSP_PWM1_4_PINNAME
                        string "pwm[4] pin name"
                        default ""
                    config BSP_PWM1_5_PINNAME
                        string "pwm[5] pin name"
                        default ""
                    config BSP_PWM1_6_PINNAME
                        string "pwm[6] pin name"
                        default ""
                    config BSP_PWM1_7_PINNAME
                        string "pwm[7] pin name"
                        default ""
                endif

            config BSP_USING_PWM2
                bool "Enable PWM 2"
                default n

                if BSP_USING_PWM2
                    config BSP_PWM2_8_PINNAME
                        string "pwm[8] pin name"
                        default ""
                    config BSP_PWM2_9_PINNAME
                        string "pwm[9] pin name"
                        default ""
                    config BSP_PWM2_10_PINNAME
                        string "pwm[10] pin name"
                        default ""
                    config BSP_PWM2_11_PINNAME
                        string "pwm[11] pin name"
                        default ""
                endif

            config BSP_USING_PWM3
                bool "Enable PWM 3"
                default n

                if BSP_USING_PWM3
                    config BSP_PWM3_12_PINNAME
                        string "pwm[12] pin name"
                        default ""
                    config BSP_PWM3_13_PINNAME
                        string "pwm[13] pin name"
                        default ""
                    config BSP_PWM3_14_PINNAME
                        string "pwm[14] pin name"
                        default ""
                    config BSP_PWM3_15_PINNAME
                        string "pwm[15] pin name"
                        default ""
                endif
        endif

    config BSP_USING_RTC
        bool "Enable RTC"
        select RT_USING_RTC
        default n
endmenu
