1from building import *
2
3cwd     = GetCurrentDir()
4src     = Split('''
5    drv_uart.c
6    drv_por.c
7    drv_gpio.c
8    drv_pinmux.c
9''')
10CPPDEFINES = []
11
12CPPPATH = [cwd]
13
14CHIP_TYPE = 'cv180x'
15if GetDepend('BOARD_TYPE_MILKV_DUO256M') or GetDepend('BOARD_TYPE_MILKV_DUOS'):
16    CHIP_TYPE = 'cv181x'
17elif GetDepend('BOARD_TYPE_MILKV_DUO'):
18    CHIP_TYPE = 'cv180x'
19
20CPPPATH += [cwd + r'/libraries']
21CPPPATH += [cwd + r'/libraries/' + CHIP_TYPE]
22
23if GetDepend('BSP_USING_I2C'):
24    src += ['drv_hw_i2c.c']
25
26if GetDepend('BSP_USING_ADC'):
27    src += ['drv_adc.c']
28
29if GetDepend('BSP_USING_WDT'):
30    src += ['drv_wdt.c']
31
32if GetDepend(['BSP_USING_SPI']):
33    src += ['drv_spi.c']
34    src += ['libraries/spi/dw_spi.c']
35    CPPPATH += [cwd + r'/libraries/spi']
36
37if GetDepend('BSP_USING_PWM'):
38    src += ['drv_pwm.c']
39    CPPPATH += [cwd + r'/libraries/cv180x/pwm']
40
41if GetDepend('BSP_ROOTFS_TYPE_CROMFS'):
42    src += ['port/mnt_cromfs.c']
43elif GetDepend('BSP_ROOTFS_TYPE_DISKFS'):
44    src += ['port/mnt_diskfs.c']
45
46if GetDepend('BSP_USING_SDH'):
47    src += ['drv_sdhci.c']
48    CPPPATH += [cwd + r'/libraries/sdif']
49
50if GetDepend('BSP_USING_ETH'):
51    src += Split('''
52        drv_eth.c
53        libraries/eth/dw_eth_mac.c
54        libraries/eth/cvi_eth_phy.c
55        libraries/eth/eth_phy_cvitek.c
56    ''')
57    CPPPATH += [cwd + r'/libraries/eth']
58
59CPPDEFINES += ['-DCONFIG_64BIT']
60
61if GetDepend('BSP_USING_RTC'):
62    src += ['drv_rtc.c']
63
64if GetDepend('BSP_USING_TIMER'):
65    src += ['drv_timer.c']
66
67group = DefineGroup('drivers', src, depend = [''], CPPDEFINES = CPPDEFINES, CPPPATH = CPPPATH)
68
69Return('group')
70