1Import('RTT_ROOT')
2Import('rtconfig')
3from building import *
4import os
5
6cwd = GetCurrentDir()
7group = []
8src = []
9path = [cwd]
10
11if GetDepend(['RT_USING_PIN']):
12    src += ['drv_gpio.c']
13
14if GetDepend(['RT_USING_SERIAL']):
15    if GetDepend(['RT_USING_SERIAL_V2']):
16        src += ['drv_usart_v2.c']
17    else:
18        src += ['drv_usart.c']
19
20if GetDepend(['BSP_USING_TIM']):
21    src += ['drv_tim.c']
22
23if GetDepend(['BSP_USING_PWM']):
24    src += ['drv_pwm.c', 'drv_tim.c']
25
26if GetDepend(['RT_USING_SPI']):
27    src += ['drv_spi.c']
28
29if GetDepend(['RT_USING_QSPI']):
30    src += ['drv_qspi.c']
31
32if GetDepend('RT_USING_SOFT_SPI'):
33    src += ['drv_soft_spi.c']
34
35if GetDepend(['RT_USING_I2C', 'RT_USING_I2C_BITOPS']):
36    if GetDepend('BSP_USING_I2C1') or GetDepend('BSP_USING_I2C2') or GetDepend('BSP_USING_I2C3') or GetDepend('BSP_USING_I2C4'):
37        src += ['drv_soft_i2c.c']
38
39if GetDepend(['RT_USING_I2C']):
40    if GetDepend('BSP_USING_HARD_I2C1') or GetDepend('BSP_USING_HARD_I2C2') or GetDepend('BSP_USING_HARD_I2C3') or GetDepend('BSP_USING_HARD_I2C4'):
41        src += ['drv_hard_i2c.c']
42
43if GetDepend(['BSP_USING_ETH', 'RT_USING_LWIP']) and not GetDepend(['SOC_STM32H750_ARTPI']):
44    src += ['drv_eth.c']
45
46if GetDepend(['RT_USING_ADC']):
47    src += ['drv_adc.c']
48
49if GetDepend(['RT_USING_DAC']):
50    src += ['drv_dac.c']
51
52if GetDepend(['RT_USING_CAN']):
53    src += ['drv_can.c']
54
55if GetDepend(['RT_USING_PM']):
56    src += ['drv_pm.c']
57
58if GetDepend(['BSP_USING_LPTIM']):
59    src += ['drv_lptim.c']
60
61if GetDepend('BSP_USING_SDRAM'):
62    src += ['drv_sdram.c']
63
64if GetDepend(['BSP_USING_NAND1']):
65    src += ['drv_nand.c']
66
67if GetDepend('BSP_USING_LCD'):
68    src += ['drv_lcd.c']
69
70if GetDepend('BSP_USING_LCD_MIPI'):
71    src += ['drv_lcd_mipi.c']
72
73if GetDepend('BSP_USING_ONCHIP_RTC'):
74    src += ['drv_rtc.c']
75
76if GetDepend(['BSP_USING_ON_CHIP_FLASH', 'SOC_SERIES_STM32G0']):
77    src += [os.path.join('drv_flash', 'drv_flash_g0.c')]
78
79if GetDepend(['BSP_USING_ON_CHIP_FLASH', 'SOC_SERIES_STM32F0']):
80    src += [os.path.join('drv_flash', 'drv_flash_f0.c')]
81
82if GetDepend(['BSP_USING_ON_CHIP_FLASH', 'SOC_SERIES_STM32F1']):
83    src += [os.path.join('drv_flash', 'drv_flash_f1.c')]
84
85if GetDepend(['BSP_USING_ON_CHIP_FLASH', 'SOC_SERIES_STM32F2']):
86    src += [os.path.join('drv_flash', 'drv_flash_f2.c')]
87
88if GetDepend(['BSP_USING_ON_CHIP_FLASH', 'SOC_SERIES_STM32F4']):
89    src += [os.path.join('drv_flash', 'drv_flash_f4.c')]
90
91if GetDepend(['BSP_USING_ON_CHIP_FLASH', 'SOC_SERIES_STM32F7']):
92    src += [os.path.join('drv_flash', 'drv_flash_f7.c')]
93
94if GetDepend(['BSP_USING_ON_CHIP_FLASH', 'SOC_SERIES_STM32L1']):
95    src += [os.path.join('drv_flash', 'drv_flash_l1.c')]
96
97if GetDepend(['BSP_USING_ON_CHIP_FLASH', 'SOC_SERIES_STM32L4']):
98    src += [os.path.join('drv_flash', 'drv_flash_l4.c')]
99
100if GetDepend(['BSP_USING_ON_CHIP_FLASH', 'SOC_SERIES_STM32H7']):
101    src += [os.path.join('drv_flash', 'drv_flash_h7.c')]
102
103if GetDepend(['BSP_USING_ON_CHIP_FLASH', 'SOC_SERIES_STM32WB']):
104    src += [os.path.join('drv_flash', 'drv_flash_wb.c')]
105
106if GetDepend('RT_USING_HWCRYPTO'):
107    src += ['drv_crypto.c']
108
109if GetDepend(['BSP_USING_WDT']):
110    src += ['drv_wdt.c']
111
112if GetDepend(['BSP_USING_SDIO']):
113    if GetDepend('SOC_SERIES_STM32H7RS') or GetDepend('SOC_SERIES_STM32H7') or GetDepend('SOC_SERIES_STM32F7') or GetDepend('SOC_SERIES_STM32L4') or GetDepend('SOC_SERIES_STM32L5'):
114        src += ['drv_sdmmc.c']
115    else:
116        src += ['drv_sdio.c']
117
118if GetDepend(['BSP_USING_USBD']):
119    src += ['drv_usbd.c']
120
121if GetDepend(['BSP_USING_PULSE_ENCODER']):
122    src += ['drv_pulse_encoder.c']
123
124if GetDepend(['BSP_USING_USBH']):
125    src += ['drv_usbh.c']
126
127path += [os.path.join(cwd, 'config')]
128
129if GetDepend('BSP_USING_ON_CHIP_FLASH'):
130    path += [os.path.join(cwd, 'drv_flash')]
131
132group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path)
133
134Return('group')
135