1# SPDX-License-Identifier: BSD-3-Clause
2#
3# Includes base bindings at multiple levels (binding,
4# child-binding, grandchild-binding):
5#
6#   include: base.yaml
7#   child-binding:
8#     include: base.yaml
9#     child-binding:
10#       include: base.yaml
11#
12# Which properties are specified at which levels is summarized below
13# for convenience.
14#
15# Child-binding level:
16#   From top-level "include:" element.
17#   - child-prop-1 (amended)
18#   - child-prop-2
19#   - child-prop-enum
20#   From "child-binding: include:" element.
21#   - prop-1 (amended)
22#   - prop-2 (amended)
23#   - prop-enum (amended)
24#
25# Grandchild-binding level:
26#   From top-level "include:" element.
27#   - grandchild-prop-1 (amended)
28#   - grandchild-prop-2
29#   - grandchild-prop-enum
30#   From "child-binding: include:" element.
31#   - child-prop-1 (amended)
32#   - child-prop-2
33#   - child-prop-enum
34#   From "child-binding: child-binding: include:" element.
35#   - prop-1 (amended)
36#   - prop-2 (amended)
37#   - prop-enum (amended)
38#
39# Grand-grandchild-binding level:
40#   From "child-binding: include:" element.
41#   - child-prop-1
42#   - child-prop-2
43#   - child-prop-enum
44#   From "child-binding: child-binding: include:" element.
45#   - grandchild-prop-1
46#   - grandchild-prop-2
47#   - grandchild-prop-enum
48
49description: Description of 'base_multi.yaml'.
50
51include:
52  - name: base.yaml
53    child-binding:
54      property-allowlist: [child-prop-1, child-prop-2, child-prop-enum]
55      child-binding:
56        property-allowlist: [grandchild-prop-1, grandchild-prop-2, grandchild-prop-enum]
57
58child-binding:
59  include:
60    - name: base.yaml
61      property-allowlist: [prop-1, prop-2, prop-enum]
62      child-binding:
63        property-allowlist: [child-prop-1, child-prop-2, child-prop-enum]
64        child-binding:
65          property-allowlist: [grandchild-prop-1, grandchild-prop-2, grandchild-prop-enum]
66
67  properties:
68    # Amend top-level "include:" element.
69    child-prop-1:
70      const: 0xf1
71    # Amend this "child-binding: include:" element.
72    prop-1:
73      const: 0xf1
74    prop-2:
75      description: New description (child).
76    prop-enum:
77      required: true
78      default: FOO
79
80  child-binding:
81    include:
82      - name: base.yaml
83        property-allowlist: [prop-1, prop-2, prop-enum]
84        child-binding:
85          property-allowlist: [child-prop-1, child-prop-2, child-prop-enum]
86          child-binding:
87            property-allowlist: [grandchild-prop-1, grandchild-prop-2, grandchild-prop-enum]
88
89    properties:
90      # Amend above top-level "include:" element.
91      grandchild-prop-1:
92        const: 0xf2
93      # Amend above "child-binding: include:" element.
94      child-prop-1:
95        const: 0xf2
96      # Amend this "child-binding: child-binding: include:" element.
97      prop-1:
98        const: 0xf2
99      prop-2:
100        description: New description (grandchild).
101      prop-enum:
102        required: true
103        default: FOO
104