[PATCH 1/7] dt-bindings: Add support for export-symbols node
From: Herve Codina
Date: Mon Dec 09 2024 - 10:21:32 EST
An export-symbols node allows to export symbols for symbols resolution
performed when applying a device tree overlay.
When a device tree overlay is applied on a node having an export-symbols
node, symbols listed in the export-symbols node are used to resolve
undefined symbols referenced from the overlay.
This allows:
- Referencing symbols from an device tree overlay without the need to
know the full base board. Only the connector definition is needed.
- Using the exact same overlay on several connectors available on a given
board.
For instance, the following description is supported with the
export-symbols node:
- Base device tree board A:
...
foo_connector: connector1 {
export-symbols {
connector = <&foo_connector>;
};
};
bar_connector: connector2 {
export-symbols {
connector = <&bar_connector>;
};
};
...
- Base device tree board B:
...
front_connector: addon-connector {
export-symbols {
connector = <&front_connector>;
};
};
...
- Overlay describing an addon board the can be connected on connectors:
...
node {
...
connector = <&connector>;
...
};
...
Thanks to the export-symbols node, the overlay can be applied on
connector1 or connector2 available on board A but also on
addon-connector available on board B.
Signed-off-by: Herve Codina <herve.codina@xxxxxxxxxxx>
---
.../devicetree/bindings/export-symbols.yaml | 43 +++++++++++++++++++
1 file changed, 43 insertions(+)
create mode 100644 Documentation/devicetree/bindings/export-symbols.yaml
diff --git a/Documentation/devicetree/bindings/export-symbols.yaml b/Documentation/devicetree/bindings/export-symbols.yaml
new file mode 100644
index 000000000000..0e404eff8937
--- /dev/null
+++ b/Documentation/devicetree/bindings/export-symbols.yaml
@@ -0,0 +1,43 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/export-symbols.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Export symbols
+
+maintainers:
+ - Herve Codina <herve.codina@xxxxxxxxxxx>
+
+description: |
+ An export-symbols node allows to export symbols for symbols resolution
+ performed when applying a device tree overlay.
+
+ When a device tree overlay is applied on a node having an export-symbols
+ node, symbols listed in the export-symbols node are used to resolve undefined
+ symbols referenced from the overlay.
+
+properties:
+ $nodename:
+ const: export-symbols
+
+patternProperties:
+ "^[a-zA-Z_]?[a-zA-Z0-9_]*$":
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description:
+ A symbol exported in the form <symbol_name>=<phandle>.
+
+additionalProperties: false
+
+examples:
+ - |
+ /*
+ * Allows 'connector' symbol used in a device-tree overlay to be resolved to
+ * connector0 when the device-tree overlay is applied on connector0 node.
+ */
+ connector0: connector0 {
+ export-symbols {
+ connector = <&connector0>;
+ };
+ };
+...
--
2.47.0