Import('RTT_ROOT')
Import('rtconfig')
from building import *

cwd = os.path.join(str(Dir('#')), 'drivers')

# add the general drivers.
src = Split("""
board.c
drv_uart.c
drv_cache.c
""")

CPPPATH = [cwd]
CPPDEFINES = []

# add sdram driver code
if GetDepend('RT_USING_SDRAM'):
    src = src + ['drv_sdram.c'] 

# add pin driver code
if GetDepend('RT_USING_PIN'):
    src += ['drv_pin.c']

# add rtc driver code
if GetDepend('RT_USING_RTC_HP'):
    src = src + ['drv_rtc.c'] 

# add spibus driver code
if GetDepend('RT_USING_SPI'):
    src += ['drv_spi_bus.c']

# add spi flash driver code
if GetDepend('RT_USING_SPI_FLASH'):
    src += ['drv_spi_flash.c']

# add i2cbus driver code
if GetDepend('RT_USING_I2C'):
    src += ['drv_i2c.c']

# add lcd driver code
if GetDepend('RT_USING_LCD'):
    src += ['drv_lcd.c']
    if GetDepend('BOARD_RT1050_EVK') and GetDepend('PKG_USING_GUIENGINE'):
        src += ['drv_ft5406.c']

# add sdio driver code
if GetDepend('RT_USING_SDIO'):
    src += ['drv_sdio.c']

# add usb device driver code
if GetDepend('RT_USING_USB_DEVICE'):
    src += ['drv_usbd.c']
    src += Glob('usb/device/*.c')
# add usb phy driver code
if GetDepend('RT_USING_USB_DEVICE'):
    src += Glob('usb/phy/*.c')
    CPPDEFINES += ['ENDIANNESS']

if GetDepend('BOARD_RT1050_EVK') or GetDepend('BOARD_RT1050_SeeedStudio'):
    if GetDepend('RT_USING_LWIP'):
        src += ['drv_eth.c', 'fsl_phy.c']
        CPPDEFINES += ['FSL_FEATURE_PHYKSZ8081_USE_RMII50M_MODE']
        
if GetDepend('BOARD_RT1050_FIRE') and GetDepend('RT_USING_LWIP'):
    src += ['drv_eth_fire.c', 'fsl_phy_fire.c']

if GetDepend('RT_USING_AUDIO'):
    src += ['drv_codec.c', 'fsl_wm8960.c']

group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES=CPPDEFINES)

Return('group')
