Signed-off-by: Sameer Pujar <spujar@xxxxxxxxxx>I'd like to move this to the dtschema repository instead.
Cc: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
---
Documentation/devicetree/bindings/graph.txt | 128 --------------------
Documentation/devicetree/bindings/graph.yaml | 170 +++++++++++++++++++++++++++
2 files changed, 170 insertions(+), 128 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/graph.txt
create mode 100644 Documentation/devicetree/bindings/graph.yaml
+%YAML 1.2reg property.
+---
+$id: http://devicetree.org/schemas/graph.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Common bindings for device graphs
+
+description: |
+ The hierarchical organisation of the device tree is well suited to describe
+ control flow to devices, but there can be more complex connections between
+ devices that work together to form a logical compound device, following an
+ arbitrarily complex graph.
+ There already is a simple directed graph between devices tree nodes using
+ phandle properties pointing to other nodes to describe connections that
+ can not be inferred from device tree parent-child relationships. The device
+ tree graph bindings described herein abstract more complex devices that can
+ have multiple specifiable ports, each of which can be linked to one or more
+ ports of other devices.
+
+ These common bindings do not contain any information about the direction or
+ type of the connections, they just map their existence. Specific properties
+ may be described by specialized bindings depending on the type of connection.
+
+ To see how this binding applies to video pipelines, for example, see
+ Documentation/devicetree/bindings/media/video-interfaces.txt.
+ Here the ports describe data interfaces, and the links between them are
+ the connecting data buses. A single port with multiple connections can
+ correspond to multiple devices being connected to the same physical bus.
+
+maintainers:
+ - Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
+
+definitions:
+
+ port:
+ type: object
+ description: |
+ If there is more than one 'port' or more than one 'endpoint' node
+ or 'reg' property present in the port and/or endpoint nodes then
+ '#address-cells' and '#size-cells' properties are required in relevant
+ parent node.
+reg?
+ patternProperties:
+ "^endpoint(@[0-9a-f]+)?$":
+ type: object
+ properties:
+ remote-endpoint:No reason for this to be under 'definitions'. Just move down.
+ description: |
+ phandle to an 'endpoint' subnode of a remote device node.
+ $ref: /schemas/types.yaml#/definitions/phandle
+
+ ports:
+ type: object
+ patternProperties:
+ "^port(@[0-9a-f]+)?$":
+ $ref: "#/definitions/port"
+This needs to be true here. But you need this within 'ports' and 'port'.
+properties:
+ ports:
+ $ref: "#/definitions/ports"
+
+patternProperties:
+ "^port(@[0-9a-f]+)?$":
+ $ref: "#/definitions/port"
+
+additionalProperties: false
(I think... I think we only have extra properties within endpoint
nodes.)