menu "Hardware Drivers Config"

config SOC_RP2040
    bool
    select SOC_SERIES_RP2040_PICO
    select RT_USING_COMPONENTS_INIT
    default y

menu "Onboard Peripheral Drivers"

    config BSP_USING_LVGL
        bool "Enable LVGL for LCD"
        select PKG_USING_LVGL
        select BSP_USING_SPI_LCD
        default n

    if BSP_USING_LVGL
        config BSP_USING_LVGL_DEMO
            bool "Enable LVGL demo"
            select PKG_USING_LV_MUSIC_DEMO
            default y
    endif
endmenu

menu "On-chip Peripheral Drivers"

    config BSP_USING_PIN
        bool "Enable GPIO"
        select RT_USING_PIN
        default y

    config BSP_USING_UART
        bool "Enable UART"
        select RT_USING_UART
        default y

    menuconfig BSP_USING_SOFT_I2C
        bool "Enable I2C BUS (software simulation)"
        default n
        select RT_USING_I2C
        select RT_USING_I2C_BITOPS
        select RT_USING_PIN
        if BSP_USING_SOFT_I2C
            config BSP_USING_SOFT_I2C1
                bool "Enable I2C1 Bus (software simulation)"
                default n
                if BSP_USING_SOFT_I2C1
                    config BSP_SOFT_I2C1_SCL_PIN
                        int "i2c1 scl pin number (GP)"
                        range 0 28
                        default 2
                    config BSP_SOFT_I2C1_SDA_PIN
                        int "I2C1 sda pin number (GP)"
                        range 0 28
                        default 3
                endif
        endif

    menuconfig BSP_USING_SOFT_SPI
        bool "Enable soft SPI BUS"
        default n
        select RT_USING_PIN
        select RT_USING_SPI_BITOPS
        select RT_USING_SPI
        if BSP_USING_SOFT_SPI
            config BSP_USING_SOFT_SPI0
                bool "Enable SPI0 Bus (software simulation)"
                default n
                if BSP_USING_SOFT_SPI0
                    config BSP_S_SPI0_SCK_PIN
                        int "spi0 sck pin number (GP)"
                        range 0 28
                        default 6
                    config BSP_S_SPI0_MOSI_PIN
                        int "spi0 mosi pin number (GP)"
                        range 0 28
                        default 7
                    config BSP_S_SPI0_MISO_PIN
                        int "spi0 miso pin number (GP)"
                        range 0 28
                        default 4
                endif
            config BSP_USING_SOFT_SPI1
                bool "Enable SPI1 Bus (software simulation)"
                default n
                if BSP_USING_SOFT_SPI1
                    config BSP_S_SPI1_SCK_PIN
                        int "spi1 sck pin number (GP)"
                        range 0 28
                        default 10
                    config BSP_S_SPI1_MOSI_PIN
                        int "spi1 mosi pin number (GP)"
                        range 0 28
                        default 11
                    config BSP_S_SPI1_MISO_PIN
                        int "spi1 miso pin number (GP)"
                        range 0 28
                        default 12
                endif
        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 (GP26)"
                default n
            config BSP_USING_ADC1
                bool "Enable ADC1 (GP27)"
                default n
            config BSP_USING_ADC2
                bool "Enable ADC2 (GP28)"
                default n
        endif

    config BSP_USING_WDT
        bool "Enable WDT"
        select RT_USING_WDT
        default n
endmenu

endmenu