zephyr/scripts
Ulf Magnusson b97ed9e4b4 scripts: dts: Generalize handling of phandle-array types
Generating generic information for 'type: phandle-array' properties in
edtlib was difficult due to defining phandle-array as just a list of
phandles and numbers. To make sense of a phandle-array property like
'pwms', you have to know that #pwm-cells is expected to appear on
each referenced controller, and that the binding for the controller has
a #cells.

Because of this, handling of various 'type: phandle-array' properties
was previously hardcoded in edtlib and exposed through properties like
Node.pwms, instead of through the generic Node.props (though with a lot
of shared code).

In practice, it turns out that all 'type: phandle-array' properties in
Zephyr work exactly the same way: They all have names that end in -s,
the 's' is removed to derive the name of related properties, and they
all look up #cells in the binding for the controller, which gives names
to the data values.

Strengthen the definition of 'type: phandle-array' to mean a property
that works exactly like the existing phandle-array properties (which
also means requiring that the name ends in -s). This removes a ton of
hardcoding from edtlib and allows new 'type: phandle-array' properties
to be added without making any code changes.

If we ever need a property type that's a list of phandles and numbers
but that doesn't follow this scheme, then we could add a separate type
for it. We should check if the standard scheme is fine first though.

The only property type for which no information is generated is now
'compound'.

There's some inconsistency in how we generate identifiers for clocks
compared to other 'type: phandle-array' properties, so keep
special-casing them for now in gen_defines.py (see the comment in
write_clocks()).

This change also enabled a bunch of other simplifications, like reusing
the ControllerAndData class for interrupts.

Piggyback generalization of *-map properties so that they work for any
phandle-array properties. It's now possible to have things like
'io-channel-map', if you need to.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2019-09-26 15:30:23 -07:00
..
checkpatch kernel: rename NANO_ESF 2019-07-25 15:06:58 -07:00
ci ci: run_ci: Refactor west setup into a function 2019-09-18 19:13:37 -05:00
coccinelle scripts/coccinelle: Add script for counting identifier length 2019-04-18 12:29:07 -04:00
dts scripts: dts: Generalize handling of phandle-array types 2019-09-26 15:30:23 -07:00
footprint scripts: footprint: Fix pylint warnings 2019-09-14 13:35:08 +08:00
gitlint zephyr_commit_rules.py: Fix pylint warning by simplifying conditional 2019-09-08 22:19:37 -04:00
kconfig scripts: edtlib: Call nodes "nodes" instead of "devices" 2019-09-26 05:23:28 -07:00
sanity_chk scripts: Simplify code with sys.exit(<string>) 2019-09-08 12:34:16 +02:00
support scripts: Simplify code with sys.exit(<string>) 2019-09-08 12:34:16 +02:00
west_commands west: esp32: use Python interpreter to execute ESP tool 2019-09-25 17:33:28 +02:00
.gitignore
checkpatch.pl dts: import vendor-prefixes.txt from linux kernel 2019-05-22 12:40:20 -04:00
checkstack.pl
coccicheck docs: fix misspelling across the tree 2019-06-19 15:34:13 -05:00
dir_is_writeable.py license: cleanup: add SPDX Apache-2.0 license identifier 2019-04-07 08:45:22 -04:00
elf_helper.py scripts: elf_helper.py: fix C++ template constexpr value processing 2019-09-17 20:49:34 +08:00
file2hex.py file2hex.py: new --gzip-mtime option that defaults to zero + test 2019-04-17 08:27:40 -04:00
filter-known-issues.py filter-known-issues.py: Remove '== True' test 2019-09-08 22:20:20 -04:00
gen_app_partitions.py scripts: Fix random typo'd whitespace 2019-09-07 07:54:17 -04:00
gen_cfb_font_header.py scripts: Fix random typo'd whitespace 2019-09-07 07:54:17 -04:00
gen_gcov_files.py gen_gcov_files.py: Replace bare 'except' with 'except Exception' 2019-09-07 07:58:16 -04:00
gen_kobject_list.py rtc: Remove old rtc functionality 2019-09-14 07:33:38 -05:00
gen_offset_header.py
gen_priv_stacks.py scripts: Simplify code with sys.exit(<string>) 2019-09-08 12:34:16 +02:00
gen_relocate_app.py scripts: gen_relocate_app.py: add custom align size for relocation 2019-09-19 21:38:31 -04:00
gen_syscall_header.py userspace: Support for split 64 bit arguments 2019-09-12 11:31:50 +08:00
gen_syscalls.py gen_syscalls.py: make 'noweak' a list instead of a random order set 2019-09-19 20:59:06 -04:00
mergehex.py scripts: mergehex: Add --overlap argument 2019-05-16 07:16:55 -05:00
parse_syscalls.py userspace: add additional script documentation 2019-03-12 08:37:58 +01:00
process_gperf.py scripts: Simplify code with sys.exit(<string>) 2019-09-08 12:34:16 +02:00
requirements.txt scripts: west_commands: verify minimum cmake version 2019-09-07 10:08:23 -04:00
sanitycheck scripts: sanitycheck: Multiple --west-flash arguments 2019-09-19 22:19:49 -04:00
series-push-hook.sh scripts: fix path issue in push-hook script 2019-03-13 11:59:38 -05:00
spelling.txt
subfolder_list.py cmake: Encode and decode in UTF-8 in build system 2019-07-18 16:50:08 +02:00
tags.sh
valgrind.supp valgrind: Add error supression file for POSIX arch 2018-12-21 21:07:18 +01:00
waitpid
west-commands.yml west: Add completion command 2019-05-10 13:08:27 +02:00
zephyr_module.py scripts: Simplify code with sys.exit(<string>) 2019-09-08 12:34:16 +02:00