zephyr/scripts
Grzegorz Swiderski 15488be6af scripts: dts: Refactor gen_driver_kconfig_dts
The motivation for this patch was to improve the script's performance,
but some stylistic changes and cleanups are included as well.

The main optimization concerns the use of PyYAML, as it offers multiple
functions for interpreting YAML. The commonly used `load`/`safe_load`
converts a YAML stream to a dictionary. There are also `scan`, `parse`,
and `compose`, which return intermediate representations, the last one
being a graph. [1]

Since `gen_driver_kconfig_dts` scans DT bindings for compatible strings,
it only needs to look through top level keys in YAML. The intermediate
PyYAML graph is sufficient for this, and using it reduces the script's
execution time by about 30%, without making the code too complicated.

[1] - https://pyyaml.org/wiki/PyYAMLDocumentation

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2025-01-19 07:57:57 +01:00
..
build scripts: build: Make scripts executable 2025-01-15 15:06:01 +01:00
checkpatch scripts: checkpatch: add NRF_GPIO_Type to typedefs file 2024-11-01 12:10:12 -05:00
ci scripts: ci: check_compliance: Add sysbuild Kconfig checks 2025-01-17 16:35:53 +01:00
coccinelle
coredump scripts: coredump: Fix loading coredumps when thread info is enabled. 2024-12-09 22:06:23 +00:00
dts scripts: dts: Refactor gen_driver_kconfig_dts 2025-01-19 07:57:57 +01:00
footprint ci: footprint: fix nrf5340dk/nrf5340/cpuapp board name 2024-10-25 14:08:18 +02:00
generate_usb_vif python: Format and sort imports 2024-11-25 10:07:13 +01:00
gitlint
kconfig kconfig: Add dt_compat_any_not_has_prop function 2024-12-16 13:09:14 +01:00
logging/dictionary scripts: logging: dictionary: fix parsing of DWARF v5 2024-12-20 12:36:46 +01:00
native_simulator native_simulator: Get latest from upstream 2024-10-24 17:01:50 +01:00
net
profiling
pylib twister: fix shell prompt detection with VT100 colors disabled 2025-01-17 16:35:33 +01:00
pylint/checkers
release
ruff scripts: Add helper scripts for ruff baseline excludes 2024-11-19 18:36:54 -05:00
schemas twister: harness: recording: Allow multiple patterns 2025-01-16 22:38:51 +01:00
support
tests twister: Remove 'xtools' toolchain variant references 2025-01-17 10:50:07 +01:00
tracing tracing: add named event trace 2024-10-17 10:46:52 -04:00
utils python: Format and sort imports 2024-11-25 10:07:13 +01:00
west_commands scripts: west_command: spdx: Exit with non-zero code on failure 2025-01-15 15:03:59 +01:00
.gitignore
check_maintainers.py python: Format and sort imports 2024-11-25 10:07:13 +01:00
checkpatch.pl scripts: checkpatch: add special consideration for DIR 2025-01-08 01:29:06 +01:00
checkstack.pl
coccicheck
dump_bugs_pickle.py
gen_gcov_files.py
get_maintainer.py
github_helpers.py
list_boards.py scripts: Undo Board.{dir -> directories[0]} renames 2024-10-26 17:14:06 +02:00
list_hardware.py scripts: list_hardware: Do not check qualifiers for run once config 2024-10-26 17:14:06 +02:00
list_shields.py
make_bugs_pickle.py
requirements-base.txt Revert "cmake: remove enforcement of DWARF v4" 2024-12-20 16:05:23 +01:00
requirements-build-test.txt scripts: twister: Add CTest harness 2025-01-10 04:12:42 +01:00
requirements-compliance.txt scripts: Update and lock ruff 2024-12-03 23:30:00 +00:00
requirements-extras.txt scripts: Remove zcbor requirement from requirements-extras.txt 2024-12-23 17:09:43 +01:00
requirements-run-test.txt
requirements.txt
series-push-hook.sh
set_assignees.py
snippets.py sysbuild: Add support for snippets 2024-12-27 07:18:13 +01:00
spelling.txt
tags.sh
twister scripts: twister: Python Version Guard 2024-11-04 17:24:24 -05:00
valgrind.supp
west-commands.yml scripts: west-commands: add an entry for the patch command 2024-12-24 11:15:38 +01:00
zephyr_module.py scripts: west_commands: Support out-of-tree runners 2025-01-08 17:02:06 +01:00