menu "Hardware Drivers Config"

    menu "On-chip Peripheral Drivers"
        source "$BSP_DIR/../libraries/m480/rtt_port/Kconfig"
    endmenu

    menu "On-board Peripheral Drivers"

        config BSP_USING_NULINKME
            bool "Enable UART0 for RTT Console(uart0)"
            select BSP_USING_UART
            select BSP_USING_UART0
            default y

        config BOARD_USING_IP101GR
            bool "Enable ethernet phy supporting(over emac/mdio)"
            select BSP_USING_EMAC
            default n

        config BOARD_USING_NAU88L25
            bool "NAU88L25 Audio Codec supporting(over i2s, i2c2)"
            select NU_PKG_USING_NAU88L25
            select BSP_USING_I2C2
            select BSP_USING_I2S
            select BSP_USING_I2S0
            default n

        config BOARD_USING_STORAGE_SDCARD
            bool "SDCARD supporting(over sdh0)"
            select BSP_USING_SDH
            select BSP_USING_SDH0
            default n

        config BOARD_USING_STORAGE_SPIFLASH
            bool "SPIFLASH supporting(over qspi0)"
            select BSP_USING_QSPI
            select BSP_USING_QSPI0
            default y

        config BOARD_USING_USB_D_H
            bool "Enable USB Device or Host function"
            help
                Choose this option if you need USB function.

        if BOARD_USING_USB_D_H
            choice
                prompt "Select FS/HS USB Ports"

                config BOARD_USING_HSUSBD
                    select BSP_USING_HSUSBD
                    bool "Enable HSUSBD(over USB2.0)"
                    help
                        Choose this option if you need HSUSBD function mode.

                config BOARD_USING_HSUSBD_USBH
                    select BSP_USING_USBH
                    select BSP_USING_HSUSBD
                    bool "Enable HSUSBD(over USB2.0) and USBH(over USB1.1)"
                    help
                        Choose this option if you need HSUSBD and USBH function mode at the same time.

                config BOARD_USING_HSUSBH
                    select BSP_USING_HSUSBH
                    bool "Enable HSUSBH(over USB2.0)"
                    help
                        Choose this option if you need HSUSBH function mode.

                config BOARD_USING_HSUSBH_USBD
                    select BSP_USING_HSUSBH
                    select BSP_USING_USBD
                    bool "Enable HSUSBH(over USB2.0) and USBD(over USB1.1)"
                    help
                        Choose this option if you need HSUSBH and USBD function mode at the same time.

                config BOARD_USING_HSOTG
                    select BSP_USING_HSOTG
                    bool "Enable HSOTG(over USB2.0)"
                    help
                        Choose this option if you need HSOTG function mode.
            endchoice
        endif

    endmenu

    menu "Board extended module drivers"

        config BOARD_USING_ADVANCE_V4
            bool "Use BOARD_USING_ADVANCE_V4 board"
            default n

        if BOARD_USING_ADVANCE_V4

            config BOARD_USING_MAX31875
                bool "MAX31875 Temperature sensor(over i2c1)"
                select NU_PKG_USING_MAX31875
                select BSP_USING_I2C1
                default n

            config BOARD_USING_MPU6500
                bool "MPU6500 6-axis sensor(over i2c2)"
                select PKG_USING_SENSORS_DRIVERS
                select PKG_USING_MPU6XXX
                select PKG_USING_MPU6XXX_LATEST_VERSION
                select PKG_USING_MPU6XXX_ACCE
                select PKG_USING_MPU6XXX_GYRO
                select BSP_USING_I2C2
                default n

            config BOARD_USING_LCD_ILI9341
                bool "LCD ILI9341(over ebi0)"
                select RT_USING_TOUCH
                select BSP_USING_EADC
                select BSP_USING_EADC0
                select NU_PKG_USING_ADC_TOUCH
                select NU_PKG_USING_ADC_TOUCH_SW
                select NU_PKG_USING_ILI9341
                select NU_PKG_USING_ILI9341_EBI
                select NU_PKG_ILI9341_WITH_OFFSCREEN_FRAMEBUFFER
                select NU_PKG_ILI9341_HORIZONTAL
                default n

            if BOARD_USING_LCD_ILI9341

                config BOARD_USING_ILI9341_EBI_PORT
                int "Specify EBI port index"
                range 0 2
                default 0

                config BOARD_USING_ILI9341_PIN_BACKLIGHT
                int "Specify the pin index of backlight pin index"
                    range 0 127
                    default 23

                config BOARD_USING_ILI9341_PIN_RESET
                int "Specify the pin index of reset pin index"
                    range 0 127
                    default 22

                config BOARD_USING_ILI9341_PIN_DC
                int "Specify the pin index of data&command switching"
                    range 0 127
                    default 115

             endif

            config BOARD_USING_AT24LC64
                bool "AT24LC64 EEPROM(over i2c2)"
                select BSP_USING_I2C
                select BSP_USING_I2C2
                select PKG_USING_AT24CXX
                default n

            config BOARD_USING_SRAM0_AS_MEMHEAP
                bool "EBI SRAM supporting(over ebi1)"
                select BSP_USING_EBI
                select RT_USING_MEMHEAP
                select RT_USING_MEMHEAP_AS_HEAP
                default n

             if BOARD_USING_SRAM0_AS_MEMHEAP
                config NU_EBI_SRAM0_SIZE
                hex "SRAM capacity(In byte)"
                range 0x200 0x100000
                default 0x80000
                depends on BSP_USING_EBI_BANK0
             endif

            config BOARD_USING_BUZZER
                bool "BUZZER.(over bpwm0_ch5)"
                select BSP_USING_BPWM
                select BSP_USING_BPWM0
                default n

        endif

    endmenu

    source "$BSP_DIR/../libraries/nu_packages/Kconfig"

endmenu
