mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-27 07:25:21 +00:00
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>
23 lines
473 B
YAML
23 lines
473 B
YAML
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
title: child-binding test
|
|
description: child-binding test
|
|
|
|
compatible: "child-binding"
|
|
|
|
child-binding:
|
|
title: child node
|
|
description: child node
|
|
properties:
|
|
child-prop:
|
|
type: int
|
|
required: true
|
|
|
|
child-binding:
|
|
title: grandchild node
|
|
description: grandchild node
|
|
properties:
|
|
grandchild-prop:
|
|
type: int
|
|
required: true
|