menu "Hardware Drivers Config"

config SOC_IMXRT1052CVL5B
    bool 
    select SOC_MIMXRT1050_SERIES
    select RT_USING_COMPONENTS_INIT
    select RT_USING_USER_MAIN
    default y

menu "On-chip Peripheral Drivers"

    config BSP_USING_DMA
        bool "Enable DMA"
        default n
        
    config BSP_USING_GPIO
        bool "Enable GPIO"
        select RT_USING_PIN
        default y

    menuconfig BSP_USING_CAN
        bool "Enable CAN"
        select RT_USING_CAN
        default n

        if BSP_USING_CAN
            config BSP_USING_CAN1
                bool "Enable CAN1"
                default y
        endif

    menuconfig BSP_USING_LPUART
        bool "Enable UART"
        select RT_USING_SERIAL
        default y
        
        if BSP_USING_LPUART
            config BSP_USING_LPUART1
                bool "Enable LPUART1"
                default y

                config BSP_LPUART1_RX_USING_DMA
                    bool "Enable LPUART1 RX DMA"
                    depends on BSP_USING_LPUART1
                    select BSP_USING_DMA
                    select RT_SERIAL_USING_DMA
                    default n

                    config BSP_LPUART1_RX_DMA_CHANNEL
                        depends on BSP_LPUART1_RX_USING_DMA
                        int "Set LPUART1 RX DMA channel (0-32)"
                        default 0

                config BSP_LPUART1_TX_USING_DMA
                    bool "Enable LPUART1 TX DMA"
                    depends on BSP_USING_LPUART1
                    select BSP_USING_DMA
                    select RT_SERIAL_USING_DMA
                    default n

                    config BSP_LPUART1_TX_DMA_CHANNEL
                        depends on BSP_LPUART1_TX_USING_DMA
                        int "Set LPUART1 TX DMA channel (0-32)"
                        default 1

            config BSP_USING_LPUART4
                bool "Enable LPUART4"
                default n

                config BSP_LPUART4_RX_USING_DMA
                    bool "Enable LPUART4 RX DMA"
                    depends on BSP_USING_LPUART4
                    select BSP_USING_DMA
                    select RT_SERIAL_USING_DMA
                    default n

                    config BSP_LPUART4_RX_DMA_CHANNEL
                        depends on BSP_LPUART4_RX_USING_DMA
                        int "Set LPUART4 RX DMA channel (0-32)"
                        default 2

                config BSP_LPUART4_TX_USING_DMA
                    bool "Enable LPUART4 TX DMA"
                    depends on BSP_USING_LPUART4
                    select BSP_USING_DMA
                    select RT_SERIAL_USING_DMA
                    default n

                    config BSP_LPUART4_TX_DMA_CHANNEL
                        depends on BSP_LPUART4_TX_USING_DMA
                        int "Set LPUART4 TX DMA channel (0-32)"
                        default 3
        endif

    menuconfig BSP_USING_HWTIMER
        bool "Enable GPT"
        default n
        select RT_USING_HWTIMER
        if BSP_USING_TIM
            config BSP_USING_HWTIMER1
                bool "Enable GPT1"
                default n

            config BSP_USING_HWTIMER2
                bool "Enable GPT2"
                default n
        endif

    menuconfig BSP_USING_PWM
        bool "Enable PWM"
        default n
        select RT_USING_PWM
        if BSP_USING_PWM
            menuconfig BSP_USING_PWM1
                bool "Enable output pwm1"
                default n
                if BSP_USING_PWM1
                    config BSP_USING_PWM1_CH3
                        bool "Enable PWM1 channel3"
                        default n
                endif

            menuconfig BSP_USING_PWM4
                bool "Enable output pwm4"
                default n
                if BSP_USING_PWM4
                    config BSP_USING_PWM4_CH0
                        bool "Enable PWM4 channel0"
                        default n

                    config BSP_USING_PWM4_CH1
                        bool "Enable PWM4 channel1"
                        default n
                endif
        endif

    menuconfig BSP_USING_I2C
        bool "Enable I2C"
        select RT_USING_I2C
        default n
        if BSP_USING_I2C
            config BSP_USING_I2C1
                bool "Enable I2C1"
                default n
            choice
                prompt "Select I2C1 badurate"
                default HW_I2C1_BADURATE_100kHZ

                config HW_I2C1_BADURATE_100kHZ
                    bool "Badurate 100kHZ"

                config HW_I2C1_BADURATE_400kHZ
                    bool "Badurate 400kHZ"
            endchoice
        endif

    config BSP_USING_RTC
        bool "Enable RTC"
        select RT_USING_RTC
        default n

endmenu

menu "Onboard Peripheral Drivers"

    config BSP_USING_RGB
        bool "Enable RGB LED (PWM1_CH3A, PWM4_CH0A and PWM4_CH1A)"
        select BSP_USING_PWM1
        select BSP_USING_PWM4
        select BSP_USING_PWM1_CH3
        select BSP_USING_PWM4_CH0
        select BSP_USING_PWM4_CH1
        default n

    config BSP_USING_MPU6050
        bool "Enable MPU6050 (I2C1:J11 --> SCL; K11 --> SDA)"
        select BSP_USING_I2C1
        select PKG_USING_MPU6XXX
        default n

    menuconfig BSP_USING_AP3216C
        bool "Enable AP3216C (I2C1:J11 --> SCL; K11 --> SDA)"
        select BSP_USING_I2C1
        select PKG_USING_AP3216C
        default n
        if BSP_USING_AP3216C
            config AP3216C_USING_HW_INT
            bool "Enable interrupt"
            default n
        endif

    config BSP_USING_EEPROM
        bool "Enable I2C EEPROM (I2C1:J11 --> SCL; K11 --> SDA)"
        select BSP_USING_I2C1
        select  PKG_USING_AT24CXX
        default n

    config BSP_USING_RS232
        bool "Enable RS232"
        select BSP_USING_LPUART2
        default n

    config BSP_USING_RS485
        bool "Enable RS485"
        select BSP_USING_LPUART5
        default n

endmenu

menu "Board extended module Drivers"

endmenu

endmenu