zephyr/scripts
Ulf Magnusson 0b1ab4ab09 scripts: dts: Replace 'sub-node:' with more general 'child-binding:'
Deprecate 'sub-node:' and add a more general 'child-binding:' mechanism
to bindings. Keep supporting 'sub-node:', but print a deprecation
warning when it's used.

Like 'sub-node:', 'child-binding:' gives a binding to child nodes, but
the binding is required to be a complete binding, and is treated (and
checked) like a normal binding.

'child-binding:' can in turn contain another 'child-binding:', up to any
number of levels. This is automatic from treating it like a normal
binding, and from the code initializing parent Devices before child
Devices.

This lets nodes give bindings to grandchildren.

For example, take this devicetree fragment:

    parent {
            compatible = "foo";
            child-1 {
                    grandchild-1 {
                            ...
                    };
                    grandchild-2 {
                            ...
                    };
            };
            child-2 {
                    grandchild-3 {
                            ...
                    };
            };
    };

The binding for 'foo' could provide bindings for grandchild-1/2/3 like
this:

    compatible: "foo"

    # Binding for children
    child-binding:
        title: ...
        description: ...

        ...

        # Binding for grandchildren
        child-binding:
            title: ...
            description: ...

            properties:
                ...

Due to implementation issues with the old devicetree scripts, only two
levels of 'child-binding:' is supported for now. This limitation will go
away in Zephyr 2.2.

Piggyback shortening 'description:' and 'title:' in some bindings that
provide child bindings. This makes the generated header a bit neater.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2019-09-19 08:39:22 -05: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: Replace 'sub-node:' with more general 'child-binding:' 2019-09-19 08:39:22 -05: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 kconfig: support multiple DTS bindings directories 2019-09-16 05:29:27 -05: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: flash: Fix exception on build folder guessing 2019-09-07 10:24:17 -04:00
.gitignore expr_parser.py: simple expression language 2016-05-04 22:57:39 +00:00
checkpatch.pl dts: import vendor-prefixes.txt from linux kernel 2019-05-22 12:40:20 -04:00
checkstack.pl First commit 2015-04-10 16:44:37 -07:00
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 scripts: python: cleanup script and fix PEP8 issues 2018-01-03 19:03:41 -05:00
gen_priv_stacks.py scripts: Simplify code with sys.exit(<string>) 2019-09-08 12:34:16 +02:00
gen_relocate_app.py scripts: pep8 gen_relocate_app.py 2019-09-19 00:34:38 -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: Remove semicolons, unused variables, and a '!= None' 2019-09-14 13:36:41 +08: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 sanitycheck: Merge common vs per-test "filter" field values semantically 2019-09-19 00:29:41 -04:00
series-push-hook.sh scripts: fix path issue in push-hook script 2019-03-13 11:59:38 -05:00
spelling.txt scripts: updated spelling.txt file 2017-07-14 12:57:40 +03:00
subfolder_list.py cmake: Encode and decode in UTF-8 in build system 2019-07-18 16:50:08 +02:00
tags.sh scripts: fix tags.sh to current source tree 2018-01-15 18:30:28 -05:00
valgrind.supp valgrind: Add error supression file for POSIX arch 2018-12-21 21:07:18 +01:00
waitpid sanitycheck: Let waitpid script kill Xtensa ISS if user hits ctrl+c. 2017-04-11 16:53:41 +00:00
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