1Import('RTT_ROOT')
2Import('rtconfig')
3from building import *
4
5cwd = GetCurrentDir()
6
7# add the general drivers.
8src = Split("""
9drv_irq.c
10""")
11
12if GetDepend(['RT_USING_PIN']):
13    src += ['drv_gpio.c']
14
15if GetDepend(['RT_USING_SERIAL']):
16    if GetDepend(['RT_USING_SERIAL_V2']):
17        src += ['drv_usart_v2.c']
18    else:
19        src += ['drv_usart.c']
20
21if GetDepend(['RT_USING_SPI']):
22    src += ['drv_spi.c']
23
24if GetDepend(['RT_USING_QSPI']):
25    src += ['drv_qspi.c']
26
27if GetDepend(['RT_USING_I2C']):
28    src += ['drv_i2c.c']
29    if GetDepend(['RT_USING_I2C_BITOPS']):
30        src += ['drv_soft_i2c.c']
31
32if GetDepend(['BSP_USING_ETH', 'RT_USING_LWIP']):
33    src += ['drv_eth.c']
34
35if GetDepend(['RT_USING_ADC']):
36    src += ['drv_adc.c']
37
38if GetDepend(['RT_USING_DAC']):
39    src += ['drv_dac.c']
40
41if GetDepend(['RT_USING_CAN']):
42    if GetDepend(['BSP_USING_CAN']):
43        src += ['drv_can.c']
44    if GetDepend(['BSP_USING_MCAN']):
45        src += ['drv_mcan.c']
46
47if GetDepend(['RT_USING_RTC']):
48    src += ['drv_rtc.c']
49
50if GetDepend(['RT_USING_WDT']):
51    src += ['drv_wdt.c']
52
53if GetDepend(['RT_USING_HWTIMER']):
54    src += ['drv_hwtimer.c']
55
56if GetDepend(['RT_USING_PULSE_ENCODER']):
57    src += ['drv_pulse_encoder.c']
58
59if GetDepend(['RT_USING_PWM']):
60    src += ['drv_pwm.c']
61
62if GetDepend(['RT_USING_INPUT_CAPTURE']):
63    src += ['drv_tmr_capture.c']
64
65if GetDepend(['RT_USING_PM']):
66    src += ['drv_pm.c']
67    src += ['drv_wktm.c']
68
69src += ['drv_common.c']
70
71if GetDepend('RT_USING_HWCRYPTO'):
72    src += ['drv_crypto.c']
73
74if GetDepend(['RT_USING_SDIO']):
75    src += ['drv_sdio.c']
76
77if GetDepend(['BSP_USING_EXMC', 'BSP_USING_SDRAM']):
78    src += ['drv_sdram.c']
79
80if GetDepend(['BSP_USING_EXMC', 'BSP_USING_NAND']):
81    src += ['drv_nand.c']
82
83if GetDepend(['BSP_USING_USBD']):
84    src += ['drv_usbd.c']
85
86if GetDepend(['BSP_USING_USBH']):
87    src += ['drv_usbh.c']
88
89if GetDepend(['BSP_USING_ON_CHIP_FLASH']):
90    if GetDepend(['SOC_SERIES_HC32F4']) or GetDepend(['SOC_SERIES_HC32F3']):
91        src += ['drv_flash/drv_flash_f4.c']
92
93path = [cwd]
94
95if GetDepend('BSP_USING_ON_CHIP_FLASH'):
96    path += [cwd + '/drv_flash']
97
98group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path)
99
100Return('group')
101