^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) };