Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) # Copyright 2018 Linaro Ltd.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) %YAML 1.2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) ---
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) # All the top-level keys are standard json-schema keywords except for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) # 'maintainers' and 'select'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) # $id is a unique identifier based on the filename. There may or may not be a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) # file present at the URL.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) $id: http://devicetree.org/schemas/example-schema.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) # $schema is the meta-schema this schema should be validated with.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) $schema: http://devicetree.org/meta-schemas/core.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) title: An example schema annotated with jsonschema details
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) maintainers:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17)   - Rob Herring <robh@kernel.org>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) description: |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20)   A more detailed multi-line description of the binding.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22)   Details about the hardware device and any links to datasheets can go here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24)   Literal blocks are marked with the '|' at the beginning. The end is marked by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25)   indentation less than the first line of the literal block. Lines also cannot
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26)   begin with a tab character.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) select: false
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29)   # 'select' is a schema applied to a DT node to determine if this binding
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30)   # schema should be applied to the node. It is optional and by default the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31)   # possible compatible strings are extracted and used to match.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33)   # In this case, a 'false' schema will never match.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36)   # A dictionary of DT properties for this binding schema
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37)   compatible:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38)     # More complicated schema can use oneOf (XOR), anyOf (OR), or allOf (AND)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39)     # to handle different conditions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40)     # In this case, it's needed to handle a variable number of values as there
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41)     # isn't another way to express a constraint of the last string value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42)     # The boolean schema must be a list of schemas.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43)     oneOf:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44)       - items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45)           # items is a list of possible values for the property. The number of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46)           # values is determined by the number of elements in the list.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47)           # Order in lists is significant, order in dicts is not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48)           # Must be one of the 1st enums followed by the 2nd enum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49)           #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50)           # Each element in items should be 'enum' or 'const'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51)           - enum:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52)               - vendor,soc4-ip
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53)               - vendor,soc3-ip
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54)               - vendor,soc2-ip
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55)           - enum:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56)               - vendor,soc1-ip
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57)         # additionalItems being false is implied
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58)         # minItems/maxItems equal to 2 is implied
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59)       - items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60)           # 'const' is just a special case of an enum with a single possible value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61)           - const: vendor,soc1-ip
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63)   reg:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64)     # The core schema already checks that reg values are numbers, so device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65)     # specific schema don't need to do those checks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66)     # The description of each element defines the order and implicitly defines
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67)     # the number of reg entries.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68)     items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69)       - description: core registers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70)       - description: aux registers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71)     # minItems/maxItems equal to 2 is implied
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73)   reg-names:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74)     # The core schema enforces this (*-names) is a string array
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75)     items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76)       - const: core
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77)       - const: aux
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79)   clocks:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80)     # Cases that have only a single entry just need to express that with maxItems
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81)     maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82)     description: bus clock. A description is only needed for a single item if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83)       there's something unique to add.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84)       The items should have a fixed order, so pattern matching names are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85)       discouraged.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87)   clock-names:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88)     items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89)       - const: bus
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91)   interrupts:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92)     # Either 1 or 2 interrupts can be present
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93)     minItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94)     maxItems: 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95)     items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96)       - description: tx or combined interrupt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97)       - description: rx interrupt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98)     description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99)       A variable number of interrupts warrants a description of what conditions
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100)       affect the number of interrupts. Otherwise, descriptions on standard
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101)       properties are not necessary.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)       The items should have a fixed order, so pattern matching names are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103)       discouraged.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)   interrupt-names:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)     # minItems must be specified here because the default would be 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)     minItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)     maxItems: 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)     items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110)       - const: tx irq
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111)       - const: rx irq
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113)   # Property names starting with '#' must be quoted
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114)   '#interrupt-cells':
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115)     # A simple case where the value must always be '2'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116)     # The core schema handles that this must be a single integer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117)     const: 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119)   interrupt-controller: true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)     # The core checks this is a boolean, so just have to list it here to be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)     # valid for this binding.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123)   clock-frequency:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)     # The type is set in the core schema. Per device schema only need to set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)     # constraints on the possible values.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)     minimum: 100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127)     maximum: 400000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)     # The value that should be used if the property is not present
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129)     default: 200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131)   foo-gpios:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132)     maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133)     description: A connection of the 'foo' gpio line.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135)   # *-supply is always a single phandle, so nothing more to define.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136)   foo-supply: true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)   # Vendor specific properties
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139)   #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)   # Vendor specific properties have slightly different schema requirements than
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)   # common properties. They must have at least a type definition and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142)   # 'description'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)   vendor,int-property:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144)     description: Vendor specific properties must have a description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)     $ref: /schemas/types.yaml#/definitions/uint32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146)     enum: [2, 4, 6, 8, 10]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148)   vendor,bool-property:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149)     description: Vendor specific properties must have a description. Boolean
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150)       properties are one case where the json-schema 'type' keyword can be used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151)       directly.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152)     type: boolean
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154)   vendor,string-array-property:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155)     description: Vendor specific properties should reference a type in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156)       core schema.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157)     $ref: /schemas/types.yaml#/definitions/string-array
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158)     items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159)       - enum: [foo, bar]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160)       - enum: [baz, boo]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162)   vendor,property-in-standard-units-microvolt:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163)     description: Vendor specific properties having a standard unit suffix
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164)       don't need a type.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165)     enum: [ 100, 200, 300 ]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167)   child-node:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168)     description: Child nodes are just another property from a json-schema
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169)       perspective.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170)     type: object  # DT nodes are json objects
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171)     properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172)       vendor,a-child-node-property:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173)         description: Child node properties have all the same schema
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174)           requirements.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175)         type: boolean
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177)     required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178)       - vendor,a-child-node-property
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) # Describe the relationship between different properties
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) dependencies:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182)   # 'vendor,bool-property' is only allowed when 'vendor,string-array-property'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183)   # is present
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184)   vendor,bool-property: [ 'vendor,string-array-property' ]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185)   # Expressing 2 properties in both orders means all of the set of properties
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186)   # must be present or none of them.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187)   vendor,string-array-property: [ 'vendor,bool-property' ]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190)   - compatible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191)   - reg
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192)   - interrupts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193)   - interrupt-controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) # if/then schema can be used to handle conditions on a property affecting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) # another property. A typical case is a specific 'compatible' value changes the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) # constraints on other properties.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) # For multiple 'if' schema, group them under an 'allOf'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) # If the conditionals become too unweldy, then it may be better to just split
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) # the binding into separate schema documents.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) allOf:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204)   - if:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205)       properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206)         compatible:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207)           contains:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208)             const: vendor,soc2-ip
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209)     then:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210)       required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211)         - foo-supply
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212)   # Altering schema depending on presence of properties is usually done by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213)   # dependencies (see above), however some adjustments might require if:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214)   - if:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215)       required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216)         - vendor,bool-property
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217)     then:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218)       properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219)         vendor,int-property:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220)           enum: [2, 4, 6]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) # Ideally, the schema should have this line otherwise any other properties
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) # present are allowed. There's a few common properties such as 'status' and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) # 'pinctrl-*' which are added automatically by the tooling.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) # This can't be used in cases where another schema is referenced
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) # (i.e. allOf: [{$ref: ...}]).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) # If and only if another schema is referenced and arbitrary children nodes can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) # appear, "unevaluatedProperties: false" could be used.  A typical example is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) # an I2C controller where no name pattern matching for children can be added.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) additionalProperties: false
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) examples:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234)   # Examples are now compiled with dtc and validated against the schemas
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235)   #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236)   # Examples have a default #address-cells and #size-cells value of 1. This can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237)   # be overridden or an appropriate parent bus node should be shown (such as on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238)   # i2c buses).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239)   #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240)   # Any includes used have to be explicitly included.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241)   - |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242)     node@1000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243)           compatible = "vendor,soc4-ip", "vendor,soc1-ip";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244)           reg = <0x1000 0x80>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245)                 <0x3000 0x80>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246)           reg-names = "core", "aux";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247)           interrupts = <10>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248)           interrupt-controller;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249)     };