1from building import *
2
3cwd = GetCurrentDir()
4src = Split('''
5source/ccmu/hal_clk.c
6source/ccmu/sunxi-ng/clk-fixed-rate.c
7source/ccmu/sunxi-ng/ccu_common.c
8source/ccmu/sunxi-ng/ccu_sdm.c
9source/ccmu/sunxi-ng/ccu_mp.c
10source/ccmu/sunxi-ng/ccu_mult.c
11source/ccmu/sunxi-ng/clk-fixed-factor.c
12source/ccmu/sunxi-ng/ccu_reset.c
13source/ccmu/sunxi-ng/ccu_gate.c
14source/ccmu/sunxi-ng/ccu-sun8iw20-rtc.c
15source/ccmu/sunxi-ng/ccu-sun8iw20-r.c
16source/ccmu/sunxi-ng/ccu_frac.c
17source/ccmu/sunxi-ng/ccu_mux.c
18source/ccmu/sunxi-ng/ccu_nm.c
19source/ccmu/sunxi-ng/ccu.c
20source/ccmu/sunxi-ng/ccu_nk.c
21source/ccmu/sunxi-ng/clk.c
22source/ccmu/sunxi-ng/ccu_nkm.c
23source/ccmu/sunxi-ng/clk-divider.c
24source/ccmu/sunxi-ng/ccu_div.c
25source/ccmu/sunxi-ng/ccu_nkmp.c
26source/ccmu/sunxi-ng/ccu-sun8iw20.c
27source/ccmu/hal_reset.c
28source/gpio/hal_gpio.c
29source/gpio/sun8iw20/gpio-sun8iw20.c
30source/uart/hal_uart.c
31source/pwm/hal_pwm.c
32source/watchdog/hal_watchdog.c
33source/timer/hal_timer.c
34source/timer/sunxi_timer.c
35source/timer/hal_avs.c
36''')
37
38#./source/disp2/disp/lcd/VVX07H005A10.c
39#./source/disp2/disp/lcd/st7701s.c
40#./source/disp2/disp/lcd/to20t20000.c
41#./source/disp2/disp/lcd/lq101r1sx03.c
42#./source/disp2/disp/lcd/s2003t46g.c
43#./source/disp2/disp/lcd/tm_dsi_panel.c
44#./source/disp2/disp/lcd/st7789v_cpu.c
45#./source/disp2/disp/lcd/default_eink.c
46#./source/disp2/disp/lcd/h245qbn02.c
47#./source/disp2/disp/lcd/dx0960be40a1.c
48#./source/disp2/disp/lcd/WilliamLcd.c
49#./source/disp2/disp/lcd/ili9881c.c
50#./source/disp2/disp/lcd/S6D7AA0X01.c
51#./source/disp2/disp/lcd/inet_dsi_panel.c
52#./source/disp2/disp/lcd/t30p106.c
53#./source/disp2/disp/lcd/fd055hd003s.c
54#./source/disp2/disp/lcd/wtl096601g03.c
55#./source/disp2/disp/lcd/lt070me05000.c
56#./source/disp2/disp/lcd/tft720x1280.c
57#./source/disp2/disp/lcd/st7796s.c
58#./source/disp2/disp/lcd/frd450h40014.c
59#./source/disp2/disp/lcd/lh219wq1.c
60#./source/disp2/disp/lcd/wtq05027d01.c
61#./source/disp2/disp/lcd/ls029b3sx02.c
62#./source/disp2/disp/lcd/st7789v.c
63#./source/disp2/disp/lcd/cpu_gg1p4062utsw.c
64#./source/disp2/disp/lcd/ili9341.c
65#./source/disp2/disp/lcd/t27p06.c
66#./source/disp2/disp/lcd/rt13qv005d.c
67# ./source/disp2/disp/lcd/he0801a068.c
68
69# ./source/disp2/disp/de/lowlevel_v2x/disp_waveform.c
70# ./source/disp2/disp/de/lowlevel_v2x/de_eink.c
71# ./source/disp2/disp/de/lowlevel_v2x/disp_eink_data.c
72# ./source/disp2/disp/de/lowlevel_v2x/rtmx_eink.c
73
74# ./source/disp2/disp/de/lowlevel_v2x/de_dsi_28.c
75
76# ./source/disp2/soc/sun8iw19.c
77# ./source/disp2/soc/VVX07H005A10_mipi_config.c
78# ./source/disp2/soc/f133_fpga.c
79# ./source/disp2/soc/v459_perf1.c
80# ./source/disp2/soc/f133_lvds.c
81
82# ./source/disp2/disp/de/disp_smart_backlight.c
83
84# ./source/disp2/disp/de/lowlevel_v2x/de_lcd.c
85# ./source/disp2/disp/de/disp_hdmi.c
86# ./source/disp2/disp/de/disp_tv.c
87# ./source/disp2/disp/de/disp_vdevice.c
88# ./source/disp2/disp/lcd/tft08006.c
89# ./source/disp2/soc/tft08006_mipi_config.c
90
91disp2_src = Split('''
92./source/disp2/disp/de/disp_manager.c
93./source/disp2/disp/de/disp_lcd.c
94./source/disp2/disp/de/disp_display.c
95./source/disp2/disp/de/disp_device.c
96./source/disp2/disp/de/disp_features.c
97./source/disp2/disp/de/disp_capture.c
98./source/disp2/disp/de/lowlevel_v2x/de_wb.c
99./source/disp2/disp/de/lowlevel_v2x/de_dsi.c
100./source/disp2/disp/de/lowlevel_v2x/de_peak.c
101./source/disp2/disp/de/lowlevel_v2x/de_gsu.c
102./source/disp2/disp/de/lowlevel_v2x/de_vep_table.c
103./source/disp2/disp/de/lowlevel_v2x/de_hal.c
104./source/disp2/disp/de/lowlevel_v2x/de_vsu.c
105./source/disp2/disp/de/lowlevel_v2x/de_scaler_table.c
106./source/disp2/disp/de/lowlevel_v2x/de_ccsc.c
107./source/disp2/disp/de/lowlevel_v2x/de_bws.c
108./source/disp2/disp/de/lowlevel_v2x/de_lti.c
109./source/disp2/disp/de/lowlevel_v2x/de_lcd_sun50iw10.c
110./source/disp2/disp/de/lowlevel_v2x/disp_al.c
111./source/disp2/disp/de/lowlevel_v2x/de_clock.c
112./source/disp2/disp/de/lowlevel_v2x/de_smbl.c
113./source/disp2/disp/de/lowlevel_v2x/de_enhance.c
114./source/disp2/disp/de/lowlevel_v2x/de_rtmx.c
115./source/disp2/disp/de/lowlevel_v2x/de_ase.c
116./source/disp2/disp/de/lowlevel_v2x/de_feat.c
117./source/disp2/disp/de/lowlevel_v2x/de_fce.c
118./source/disp2/disp/de/lowlevel_v2x/de_dcsc.c
119./source/disp2/disp/de/lowlevel_v2x/de_fcc.c
120./source/disp2/disp/de/disp_private.c
121./source/disp2/disp/de/disp_enhance.c
122./source/disp2/disp/lcd/default_panel.c
123./source/disp2/disp/lcd/lcd_source.c
124./source/disp2/disp/lcd/panels.c
125./source/disp2/disp/disp_sys_intf.c
126./source/disp2/disp/dev_disp.c
127./source/disp2/disp/disp_debug.c
128./source/disp2/soc/disp_board_config.c
129./source/disp2/soc/platform_resource.c
130./source/disp2/soc/sun20iw1.c
131''')
132if GetDepend('LCD_SUPPORT_TFTRGB'):
133    if not GetDepend('LCD_USING_XML_CONFIG'):
134        disp2_src += ['./source/disp2/soc/rgb_config.c']
135if GetDepend('LCD_SUPPORT_TFT08006'):
136    # disp2_src += ['./source/disp2/soc/tft08006_mipi_config.c']
137    disp2_src += ['./source/disp2/disp/lcd/tft08006.c']
138
139sdmmc_src = Split('''
140source/sdmmc/core.c
141source/sdmmc/hal_sdpin.c
142source/sdmmc/hal_sdhost.c
143source/sdmmc/mmc.c
144source/sdmmc/quirks.c
145source/sdmmc/sd.c
146source/sdmmc/sdio.c
147source/sdmmc/test.c
148source/sdmmc/sdio_irq.c
149source/sdmmc/cmd/cmd_sd.c
150source/sdmmc/osal/os/RT-Thread/os_debug.c
151source/sdmmc/osal/os/RT-Thread/os_mutex.c
152source/sdmmc/osal/os/RT-Thread/os_queue.c
153source/sdmmc/osal/os/RT-Thread/os_timer.c
154source/sdmmc/osal/os/RT-Thread/os_semaphore.c
155source/sdmmc/osal/os/RT-Thread/os_thread.c
156source/sdmmc/blkpart.c
157''')
158
159dma_src = Split('''
160source/dma/hal_dma.c
161source/common/dma_alloc.c
162''')
163
164spi_src = Split('''
165source/spi/hal_spi.c
166''')
167
168disp2_test_src = Split('''
169./test/disp2/disp_layer_rgb_test.c
170./test/disp2/disp_layer_cfg.c
171./test/disp2/disp_mem.c
172''')
173
174test_src = Split('''
175test/gpio/test_gpio.c
176test/ccmu/test_ng_ccmu.c
177test/dma/test_dma.c
178test/spi/test_spi.c
179''')
180
181gmac = Split('''
182source/gmac/hal_geth_utils.c
183source/gmac/hal_geth.c
184''')
185
186phy = Split('''
187source/phy/hal_miiphyutil.c
188source/phy/hal_phy.c
189''')
190
191rtc = Split('''
192source/rtc/hal_rtc.c
193source/rtc/rtc-lib.c
194''')
195
196g2d_src = Split('''
197source/g2d_rcq/g2d_bld.c
198source/g2d_rcq/g2d_mixer.c
199source/g2d_rcq/g2d_ovl_v.c
200source/g2d_rcq/g2d_rotate.c
201source/g2d_rcq/g2d_top.c
202source/g2d_rcq/simple_idr.c
203source/g2d_rcq/g2d.c
204source/g2d_rcq/g2d_ovl_u.c
205source/g2d_rcq/g2d_rcq.c
206source/g2d_rcq/g2d_scal.c
207source/g2d_rcq/g2d_wb.c
208''')
209
210g2d_path = [cwd + '/source/g2d_rcq/']
211
212disp2_path = [
213    cwd + '/test/disp2', cwd + '/source/disp2/disp',
214    cwd + '/source/disp2/disp/lcd',
215    cwd + '/source/disp2/disp/de',
216    cwd + '/source/disp2/disp/de/lowlevel_v2x',
217    cwd + '/source/disp2/soc']
218
219rtc_path = [cwd + '/../include/hal/rtc']
220
221twi_src = []
222twi_path = []
223if GetDepend('DRIVERS_TWI'):
224    twi_src += ['source/twi/hal_twi.c']
225    twi_path += [cwd + '/source/twi']
226
227udc_src = Split('''
228source/usb/platform/sun20iw1/usb_sun20iw1.c
229''')
230# source/usb/udc/hal_udc.c
231udc_path = [cwd + '/source/usb/udc', cwd + '/source/usb/include']
232
233ce_src = Split('''
234source/ce/ce_common.c
235source/ce/hal_ce.c
236''')
237ce_path = [cwd + '/source/ce']
238
239efuse_src = Split('''
240source/efuse/efuse.c
241source/efuse/hal_efuse.c
242''')
243efuse_path = [cwd + '/source/efuse']
244
245CPPPATH = [
246    cwd,
247    cwd + '/../include/hal',
248    cwd + '/../include/hal/sdmmc',
249    cwd + '/../include/hal/phy',
250    cwd + '/../include/hal/usb',
251    cwd + '/../include/osal',
252    cwd + '/source',
253    cwd + '/source/uart',
254    cwd + '/source/ccmu',
255    cwd + '/source/gpio',
256    cwd + '/source/gpio/sun8iw20',
257    cwd + '/source/pwm',
258    cwd + '/../include/hal/sdmmc/osal',
259    cwd + '/../include/hal/sdmmc/hal',
260    cwd + '/source/timer',
261]
262
263uart_src = Split('''
264source/uart/hal_uart.c
265''')
266uart_path = [cwd + '/source/uart']
267
268if GetDepend('DRVIERS_UART'):
269    CPPPATH += uart_path
270    src += uart_src
271
272if GetDepend('DISP2_SUNXI'):
273    CPPPATH += disp2_path
274    src += disp2_src #+ disp2_test_src
275
276CPPPATH += rtc_path
277
278if GetDepend('DRIVERS_SDMMC'):
279    src += sdmmc_src
280
281if GetDepend('DRIVERS_SPI'):
282    src += spi_src
283
284src += dma_src
285# src += test_src
286src += rtc
287
288if GetDepend('DRIVERS_GMAC'):
289    src += gmac
290    src += phy
291
292if GetDepend('DRIVERS_TWI'):
293    CPPPATH += twi_path
294    src += twi_src
295
296if GetDepend('DRIVERS_G2D'):
297    src += g2d_src
298    CPPPATH += g2d_path
299
300if GetDepend('DRIVERS_USB'):
301    if GetDepend('USB_DEVICE'):
302        src += udc_src
303        CPPPATH += udc_path
304
305if GetDepend('DRIVERS_CE'):
306    src += ce_src
307    CPPPATH += ce_path
308
309if GetDepend('DRIVERS_EFUSE'):
310    src += efuse_src
311    CPPPATH += efuse_path
312
313group = DefineGroup('hal', src, depend = [''], CPPPATH = CPPPATH)
314
315Return('group')
316