zephyr/scripts/dts/extract
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
..
__init__.py
clocks.py scripts: dts: Remove unused variable in old scripts 2019-09-07 10:25:02 -05:00
compatible.py dts: Make instance defines consistent 2019-07-30 17:10:31 -05:00
default.py scripts: dts: Fix misc. pylint warnings in old scripts 2019-09-07 10:25:02 -05:00
directive.py scripts/dts: Add deprecation comments to old scripts 2019-07-29 16:22:17 -04:00
flash.py scripts: dts: Fix misc. pylint warnings in old scripts 2019-09-07 10:25:02 -05:00
globals.py scripts: dts: Replace 'sub-node:' with more general 'child-binding:' 2019-09-19 08:39:22 -05:00
interrupts.py scripts/dts/gen_defines.py: Ignore varions base properties 2019-09-07 10:25:02 -05:00
reg.py scripts: dts: Replace bare 'except's in old scripts 2019-09-07 10:25:02 -05:00