Skip to content

Commit a682383

Browse files
committed
scripts: gd32headers support usb headers
Add usb headers support for gd32headers. Still in develop, test will added if this solution be confirmed.
1 parent 8790803 commit a682383

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

common_include/gd32_usb.h

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/*
2+
* NOTE: Autogenerated file using gd32headers.py
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#if defined(CONFIG_SOC_SERIES_GD32F4XX)
8+
#include <drv_usb_dev.h>
9+
#include <drv_usb_regs.h>
10+
#include <drv_usbd_int.h>
11+
#include <drv_usbh_int.h>
12+
#include <drv_usb_core.h>
13+
#include <drv_usb_hw.h>
14+
#include <drv_usb_host.h>
15+
#endif

scripts/gd32headers.py

+30
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ def main(hal_path, output):
3030

3131
# obtain all available APIs for each series
3232
apis = dict()
33+
usb_series = list()
34+
usb_headers = list()
3335
for entry in sorted(hal_path.iterdir()):
3436
if not entry.is_dir() or not entry.name.startswith("gd32"):
3537
continue
@@ -51,6 +53,16 @@ def main(hal_path, output):
5153
apis[api] = list()
5254
apis[api].append(entry.name)
5355

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+
5466
if output.exists():
5567
shutil.rmtree(output)
5668
output.mkdir(parents=True)
@@ -70,6 +82,24 @@ def main(hal_path, output):
7082
f.write(f"#include <{series}_{api}.h>\n")
7183
f.write("#endif\n")
7284

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+
73103

74104
if __name__ == "__main__":
75105
parser = argparse.ArgumentParser()

0 commit comments

Comments
 (0)