menu "Hardware Drivers Config"
    config CPK_R7FA2L1AB
        bool
        default y

    config SOC_R7FA2L1AB
        bool
        select SOC_SERIES_R7FA2L1
        select RT_USING_COMPONENTS_INIT
        select RT_USING_USER_MAIN
        default y

    menu "Onboard Peripheral Drivers"

    endmenu

    menu "On-chip Peripheral Drivers"

        rsource "../../libraries/HAL_Drivers/Kconfig"

        menuconfig BSP_USING_UART
            bool "Enable UART"
            default y
            select RT_USING_SERIAL
            select RT_USING_SERIAL_V2
            if BSP_USING_UART

                menuconfig BSP_USING_UART0
                    bool "Enable UART0"
                    default n
                    if BSP_USING_UART0
                        config BSP_UART0_RX_USING_DMA
                            bool "Enable UART0 RX DMA"
                            depends on BSP_USING_UART0 && RT_SERIAL_USING_DMA
                            default n

                        config BSP_UART0_TX_USING_DMA
                            bool "Enable UART0 TX DMA"
                            depends on BSP_USING_UART0 && RT_SERIAL_USING_DMA
                            default n

                        config BSP_UART0_RX_BUFSIZE
                            int "Set UART0 RX buffer size"
                            range 64 65535
                            depends on RT_USING_SERIAL_V2
                            default 256

                        config BSP_UART0_TX_BUFSIZE
                            int "Set UART0 TX buffer size"
                            range 0 65535
                            depends on RT_USING_SERIAL_V2
                            default 0
                    endif

                menuconfig BSP_USING_UART1
                    bool "Enable UART1"
                    default n
                    if BSP_USING_UART1
                        config BSP_UART1_RX_USING_DMA
                            bool "Enable UART1 RX DMA"
                            depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
                            default n

                        config BSP_UART1_TX_USING_DMA
                            bool "Enable UART1 TX DMA"
                            depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
                            default n

                        config BSP_UART1_RX_BUFSIZE
                            int "Set UART1 RX buffer size"
                            range 64 65535
                            depends on RT_USING_SERIAL_V2
                            default 256

                        config BSP_UART1_TX_BUFSIZE
                            int "Set UART1 TX buffer size"
                            range 0 65535
                            depends on RT_USING_SERIAL_V2
                            default 0
                    endif

                menuconfig BSP_USING_UART2
                    bool "Enable UART2"
                    default n
                    if BSP_USING_UART2
                        config BSP_UART2_RX_USING_DMA
                            bool "Enable UART2 RX DMA"
                            depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
                            default n

                        config BSP_UART2_TX_USING_DMA
                            bool "Enable UART2 TX DMA"
                            depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
                            default n

                        config BSP_UART2_RX_BUFSIZE
                            int "Set UART2 RX buffer size"
                            range 64 65535
                            depends on RT_USING_SERIAL_V2
                            default 256

                        config BSP_UART2_TX_BUFSIZE
                            int "Set UART2 TX buffer size"
                            range 0 65535
                            depends on RT_USING_SERIAL_V2
                            default 0
                    endif

                menuconfig BSP_USING_UART3
                    bool "Enable UART3"
                    default n
                    if BSP_USING_UART3
                        config BSP_UART3_RX_USING_DMA
                            bool "Enable UART3 RX DMA"
                            depends on BSP_USING_UART3 && RT_SERIAL_USING_DMA
                            default n

                        config BSP_UART3_TX_USING_DMA
                            bool "Enable UART3 TX DMA"
                            depends on BSP_USING_UART3 && RT_SERIAL_USING_DMA
                            default n

                        config BSP_UART3_RX_BUFSIZE
                            int "Set UART3 RX buffer size"
                            range 64 65535
                            depends on RT_USING_SERIAL_V2
                            default 256

                        config BSP_UART3_TX_BUFSIZE
                            int "Set UART3 TX buffer size"
                            range 0 65535
                            depends on RT_USING_SERIAL_V2
                            default 0
                    endif

                menuconfig BSP_USING_UART9
                    bool "Enable UART9"
                    default n
                    if BSP_USING_UART9
                        config BSP_UART9_RX_USING_DMA
                            bool "Enable UART9 RX DMA"
                            depends on BSP_USING_UART9 && RT_SERIAL_USING_DMA
                            default n

                        config BSP_UART9_TX_USING_DMA
                            bool "Enable UART9 TX DMA"
                            depends on BSP_USING_UART9 && RT_SERIAL_USING_DMA
                            default n

                        config BSP_UART9_RX_BUFSIZE
                            int "Set UART9 RX buffer size"
                            range 64 65535
                            depends on RT_USING_SERIAL_V2
                            default 256

                        config BSP_UART9_TX_BUFSIZE
                            int "Set UART9 TX buffer size"
                            range 0 65535
                            depends on RT_USING_SERIAL_V2
                            default 0
                    endif
            endif

        menuconfig BSP_USING_HW_I2C
            bool "Enable hardware I2C BUS"
            default n
            if BSP_USING_HW_I2C
                config BSP_USING_HW_I2C1
                    bool "Enable Hardware I2C1 BUS"
                    default n
            endif

        menuconfig BSP_USING_SOFT_I2C
            bool "Enable software I2C bus"
            select RT_USING_I2C
            select RT_USING_I2C_BITOPS
            select RT_USING_PIN
            default n
            if BSP_USING_SOFT_I2C
                config BSP_USING_SOFT_I2C
                menuconfig BSP_USING_I2C1
                    bool "Enable I2C1 Bus (software simulation)"
                    default n
                    if BSP_USING_I2C1
                        comment "Please refer to the 'bsp_io.h' file to configure the pins"
                        config BSP_I2C1_SCL_PIN
                            hex "i2c1 scl pin number (hex)"
                            range 0x0000 0xFFFF
                            default 0x050C
                        config BSP_I2C1_SDA_PIN
                            hex "i2c1 sda pin number (hex)"
                            range 0x0000 0xFFFF
                            default 0x050B
                    endif
            endif

        menuconfig BSP_USING_SPI
            bool "Enable SPI BUS"
            default n
            select RT_USING_SPI
            if BSP_USING_SPI
                config BSP_SPI_USING_DTC_DMA
                    bool "Enable SPI DTC transfers data without using the CPU."
                    default n

                config BSP_USING_SPI0
                    bool "Enable SPI0 BUS"
                    default n

                config BSP_USING_SPI1
                    bool "Enable SPI1 BUS"
                    default n
            endif

        menuconfig BSP_USING_ADC
            bool "Enable ADC"
            default n
            select RT_USING_ADC
            if BSP_USING_ADC
                config BSP_USING_ADC0
                    bool "Enable ADC0"
                    default n
            endif

        menuconfig BSP_USING_DAC
            bool "Enable DAC"
            default n
            select RT_USING_DAC
            if BSP_USING_DAC
                config BSP_USING_DAC0
                    bool "Enable DAC0"
                    default n
            endif

        menuconfig BSP_USING_PWM
            bool "Enable PWM"
            default n
            select RT_USING_PWM
            if BSP_USING_PWM
                config BSP_USING_PWM0
                    bool "Enable GPT0 (32-Bits) output PWM"
                    default n

                config BSP_USING_PWM1
                    bool "Enable GPT1 (32-Bits) output PWM"
                    default n

                config BSP_USING_PWM2
                    bool "Enable GPT2 (32-Bits) output PWM"
                    default n

                config BSP_USING_PWM3
                    bool "Enable GPT3 (32-Bits) output PWM"
                    default n

                config BSP_USING_PWM4
                    bool "Enable GPT4 (16-Bits) output PWM"
                    default n

                config BSP_USING_PWM5
                    bool "Enable GPT5 (16-Bits) output PWM"
                    default n

                config BSP_USING_PWM6
                    bool "Enable GPT6 (16-Bits) output PWM"
                    default n

                config BSP_USING_PWM7
                    bool "Enable GPT7 (16-Bits) output PWM"
                    default n

                config BSP_USING_PWM8
                    bool "Enable GPT8 (16-Bits) output PWM"
                    default n

                config BSP_USING_PWM9
                    bool "Enable GPT9 (16-Bits) output PWM"
                    default n
            endif

        menuconfig BSP_USING_CAN
            bool "Enable CAN"
            default n
            select RT_USING_CAN
            if BSP_USING_CAN
                config BSP_USING_CAN0
                    bool "Enable CAN0"
                    default n
            endif

        config BSP_USING_LPM
            bool "Enable LPM"
            select RT_USING_PM
            default n
            if BSP_USING_LPM
                config BSP_LPM_SLEEP
                    bool "Enable LPM sleep mode"
                    default n

                config BSP_LPM_SNOOZE
                    bool "Enable LPM snooze mode"
                    default n

                config BSP_LPM_STANDBY
                    bool "Enable LPM standby mode"
                    default n
            endif

        menuconfig BSP_USING_SCI
            bool "Enable SCI Controller"
            default n



            if BSP_USING_SCI
                config BSP_USING_SCI0
                    bool "Enable SCI0"
                    default n
                    if BSP_USING_SCI0
                        choice
                        prompt "choice sci mode"
                        default BSP_USING_SCI0_SPI
                        config BSP_USING_SCI0_SPI
                            select BSP_USING_SCIn_SPI
                            bool "SPI mode"
                        config BSP_USING_SCI0_I2C
                            select BSP_USING_SCIn_I2C
                            bool "I2C mode"
                        config BSP_USING_SCI0_UART
                            select BSP_USING_SCIn_UART
                            bool "UART mode"
                        endchoice
                        if BSP_USING_SCI0_UART
                            config BSP_SCI0_UART_RX_BUFSIZE
                                int "Set UART0 RX buffer size"
                                range 64 65535
                                depends on RT_USING_SERIAL_V2
                                default 256

                            config BSP_SCI0_UART_TX_BUFSIZE
                                int "Set UART0 TX buffer size"
                                range 0 65535
                                depends on RT_USING_SERIAL_V2
                                default 0
                        endif
                    endif
                config BSP_USING_SCI1
                    bool "Enable SCI1"
                    default n
                    if BSP_USING_SCI1
                        choice
                        prompt "choice sci mode"
                        default BSP_USING_SCI1_SPI
                        config BSP_USING_SCI1_SPI
                            select BSP_USING_SCIn_SPI
                            bool "SPI mode"
                        config BSP_USING_SCI1_I2C
                            select BSP_USING_SCIn_I2C
                            bool "I2C mode"
                        config BSP_USING_SCI1_UART
                            select BSP_USING_SCIn_UART
                            bool "UART mode"
                        endchoice
                        if BSP_USING_SCI1_UART
                            config BSP_SCI1_UART_RX_BUFSIZE
                                int "Set UART1 RX buffer size"
                                range 64 65535
                                depends on RT_USING_SERIAL_V2
                                default 256

                            config BSP_SCI1_UART_TX_BUFSIZE
                                int "Set UART1 TX buffer size"
                                range 0 65535
                                depends on RT_USING_SERIAL_V2
                                default 0
                        endif
                    endif
                config BSP_USING_SCI2
                    bool "Enable SCI2"
                    default n
                    if BSP_USING_SCI2
                        choice
                        prompt "choice sci mode"
                        default BSP_USING_SCI2_SPI
                        config BSP_USING_SCI2_SPI
                            select BSP_USING_SCIn_SPI
                            bool "SPI mode"
                        config BSP_USING_SCI2_I2C
                            select BSP_USING_SCIn_I2C
                            bool "I2C mode"
                        config BSP_USING_SCI2_UART
                            select BSP_USING_SCIn_UART
                            bool "UART mode"
                        endchoice
                        if BSP_USING_SCI2_UART
                            config BSP_SCI2_UART_RX_BUFSIZE
                                int "Set UART2 RX buffer size"
                                range 64 65535
                                depends on RT_USING_SERIAL_V2
                                default 256

                            config BSP_SCI2_UART_TX_BUFSIZE
                                int "Set UART2 TX buffer size"
                                range 0 65535
                                depends on RT_USING_SERIAL_V2
                                default 0
                        endif
                    endif
                config BSP_USING_SCI3
                    bool "Enable SCI3"
                    default n
                    if BSP_USING_SCI3
                        choice
                        prompt "choice sci mode"
                        default BSP_USING_SCI3_SPI
                        config BSP_USING_SCI3_SPI
                            select BSP_USING_SCIn_SPI
                            bool "SPI mode"
                        config BSP_USING_SCI3_I2C
                            select BSP_USING_SCIn_I2C
                            bool "I2C mode"
                        config BSP_USING_SCI3_UART
                            select BSP_USING_SCIn_UART
                            bool "UART mode"
                        endchoice
                        if BSP_USING_SCI3_UART
                            config BSP_SCI3_UART_RX_BUFSIZE
                                int "Set UART3 RX buffer size"
                                range 64 65535
                                depends on RT_USING_SERIAL_V2
                                default 256

                            config BSP_SCI3_UART_TX_BUFSIZE
                                int "Set UART3 TX buffer size"
                                range 0 65535
                                depends on RT_USING_SERIAL_V2
                                default 0
                        endif
                    endif
                config BSP_USING_SCI4
                    bool "Enable SCI4"
                    default n
                    if BSP_USING_SCI4
                        choice
                        prompt "choice sci mode"
                        default BSP_USING_SCI4_SPI
                        config BSP_USING_SCI4_SPI
                            select BSP_USING_SCIn_SPI
                            bool "SPI mode"
                        config BSP_USING_SCI4_I2C
                            select BSP_USING_SCIn_I2C
                            bool "I2C mode"
                        config BSP_USING_SCI4_UART
                            select BSP_USING_SCIn_UART
                            bool "UART mode"
                        endchoice
                        if BSP_USING_SCI4_UART
                            config BSP_SCI4_UART_RX_BUFSIZE
                                int "Set UART4 RX buffer size"
                                range 64 65535
                                depends on RT_USING_SERIAL_V2
                                default 256

                            config BSP_SCI4_UART_TX_BUFSIZE
                                int "Set UART4 TX buffer size"
                                range 0 65535
                                depends on RT_USING_SERIAL_V2
                                default 0
                        endif
                    endif
                config BSP_USING_SCI5
                    bool "Enable SCI5"
                    default n
                    if BSP_USING_SCI5
                        choice
                        prompt "choice sci mode"
                        default BSP_USING_SCI5_SPI
                        config BSP_USING_SCI5_SPI
                            select BSP_USING_SCIn_SPI
                            bool "SPI mode"
                        config BSP_USING_SCI5_I2C
                            select BSP_USING_SCIn_I2C
                            bool "I2C mode"
                        config BSP_USING_SCI5_UART
                            select BSP_USING_SCIn_UART
                            bool "UART mode"
                        endchoice
                        if BSP_USING_SCI5_UART
                            config BSP_SCI5_UART_RX_BUFSIZE
                                int "Set UART5 RX buffer size"
                                range 64 65535
                                depends on RT_USING_SERIAL_V2
                                default 256

                            config BSP_SCI5_UART_TX_BUFSIZE
                                int "Set UART5 TX buffer size"
                                range 0 65535
                                depends on RT_USING_SERIAL_V2
                                default 0
                        endif
                    endif
                config BSP_USING_SCI6
                    bool "Enable SCI6"
                    default n
                    if BSP_USING_SCI6
                        choice
                        prompt "choice sci mode"
                        default BSP_USING_SCI6_SPI
                        config BSP_USING_SCI6_SPI
                            select BSP_USING_SCIn_SPI
                            bool "SPI mode"
                        config BSP_USING_SCI6_I2C
                            select BSP_USING_SCIn_I2C
                            bool "I2C mode"
                        config BSP_USING_SCI6_UART
                            select BSP_USING_SCIn_UART
                            bool "UART mode"
                        endchoice
                        if BSP_USING_SCI6_UART
                            config BSP_SCI6_UART_RX_BUFSIZE
                                int "Set UART6 RX buffer size"
                                range 64 65535
                                depends on RT_USING_SERIAL_V2
                                default 256

                            config BSP_SCI6_UART_TX_BUFSIZE
                                int "Set UART6 TX buffer size"
                                range 0 65535
                                depends on RT_USING_SERIAL_V2
                                default 0
                        endif
                    endif
                config BSP_USING_SCI7
                    bool "Enable SCI7"
                    default n
                    if BSP_USING_SCI7
                        choice
                        prompt "choice sci mode"
                        default BSP_USING_SCI7_SPI
                        config BSP_USING_SCI7_SPI
                            select BSP_USING_SCIn_SPI
                            bool "SPI mode"
                        config BSP_USING_SCI7_I2C
                            select BSP_USING_SCIn_I2C
                            bool "I2C mode"
                        config BSP_USING_SCI7_UART
                            select BSP_USING_SCIn_UART
                            bool "UART mode"
                        endchoice
                        if BSP_USING_SCI7_UART
                            config BSP_SCI7_UART_RX_BUFSIZE
                                int "Set UART7 RX buffer size"
                                range 64 65535
                                depends on RT_USING_SERIAL_V2
                                default 256

                            config BSP_SCI7_UART_TX_BUFSIZE
                                int "Set UART7 TX buffer size"
                                range 0 65535
                                depends on RT_USING_SERIAL_V2
                                default 0
                        endif
                    endif
                config BSP_USING_SCI8
                    bool "Enable SCI8"
                    default n
                    if BSP_USING_SCI8
                        choice
                        prompt "choice sci mode"
                        default BSP_USING_SCI8_SPI
                        config BSP_USING_SCI8_SPI
                            select BSP_USING_SCIn_SPI
                            bool "SPI mode"
                        config BSP_USING_SCI8_I2C
                            select BSP_USING_SCIn_I2C
                            bool "I2C mode"
                        config BSP_USING_SCI8_UART
                            select BSP_USING_SCIn_UART
                            bool "UART mode"
                        endchoice
                        if BSP_USING_SCI8_UART
                            config BSP_SCI8_UART_RX_BUFSIZE
                                int "Set UART8 RX buffer size"
                                range 64 65535
                                depends on RT_USING_SERIAL_V2
                                default 256

                            config BSP_SCI8_UART_TX_BUFSIZE
                                int "Set UART8 TX buffer size"
                                range 0 65535
                                depends on RT_USING_SERIAL_V2
                                default 0
                        endif
                    endif
                config BSP_USING_SCI9
                    bool "Enable SCI9"
                    default n
                    if BSP_USING_SCI9
                        choice
                        prompt "choice sci mode"
                        default BSP_USING_SCI9_SPI
                        config BSP_USING_SCI9_SPI
                            select BSP_USING_SCIn_SPI
                            bool "SPI mode"
                        config BSP_USING_SCI9_I2C
                            select BSP_USING_SCIn_I2C
                            bool "I2C mode"
                        config BSP_USING_SCI9_UART
                            select BSP_USING_SCIn_UART
                            bool "UART mode"
                        endchoice
                        if BSP_USING_SCI9_UART
                            config BSP_SCI9_UART_RX_BUFSIZE
                                int "Set UART9 RX buffer size"
                                range 64 65535
                                depends on RT_USING_SERIAL_V2
                                default 256

                            config BSP_SCI9_UART_TX_BUFSIZE
                                int "Set UART9 TX buffer size"
                                range 0 65535
                                depends on RT_USING_SERIAL_V2
                                default 0
                        endif
                    endif
            endif

    endmenu

    menu "Board extended module Drivers"

    endmenu
endmenu