@@ -30,6 +30,8 @@ def main(hal_path, output):
30
30
31
31
# obtain all available APIs for each series
32
32
apis = dict ()
33
+ usb_series = list ()
34
+ usb_headers = list ()
33
35
for entry in sorted (hal_path .iterdir ()):
34
36
if not entry .is_dir () or not entry .name .startswith ("gd32" ):
35
37
continue
@@ -51,6 +53,16 @@ def main(hal_path, output):
51
53
apis [api ] = list ()
52
54
apis [api ].append (entry .name )
53
55
56
+ usb_drivers = entry / "usb_drivers" / "include"
57
+ if not usb_drivers .exists ():
58
+ continue
59
+
60
+ usb_series .append (entry .name )
61
+
62
+ # All usb headers are same between gd32 series.
63
+ if not usb_headers :
64
+ usb_headers = [p .name for p in usb_drivers .iterdir ()]
65
+
54
66
if output .exists ():
55
67
shutil .rmtree (output )
56
68
output .mkdir (parents = True )
@@ -70,6 +82,24 @@ def main(hal_path, output):
70
82
f .write (f"#include <{ series } _{ api } .h>\n " )
71
83
f .write ("#endif\n " )
72
84
85
+ usb_header_file = output / ("gd32_usb.h" )
86
+ with open (usb_header_file , "w" ) as f :
87
+ f .write ("/*\n " )
88
+ f .write (" * NOTE: Autogenerated file using gd32headers.py\n " )
89
+ f .write (" *\n " )
90
+ f .write (" * SPDX-License-Identifier: Apache-2.0\n " )
91
+ f .write (" */\n \n " )
92
+
93
+ for series in usb_series :
94
+ f .write (f"#if " if series == usb_series [0 ] else "\t " )
95
+ f .write (f"defined(CONFIG_SOC_SERIES_{ series .upper ()} )" )
96
+ f .write (" || \\ \n " if series != usb_series [- 1 ] else "\n " )
97
+
98
+ for header in usb_headers :
99
+ f .write ("#include <" + header + ">\n " )
100
+
101
+ f .write ("#endif\n " )
102
+
73
103
74
104
if __name__ == "__main__" :
75
105
parser = argparse .ArgumentParser ()
0 commit comments