Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e488ca9f authored by Brian Norris's avatar Brian Norris
Browse files

doc: dt: mtd: partitions: add compatible property to "partitions" node

As noted here [1], there are potentially future conflicts if we try to
use MTD's "partitions" subnode to describe anything besides just the
fixed-in-the-device-tree partitions currently described in this
document. Particularly, there was a proposal to use this node for the
AFS parser too.

It can pose a (small) problem to try to differentiate the following
nodes:

	// using binding as currently specified
	partitions {
		#address-cells = <x>;
		#size-cells = <y>;
		partition@0 {
			...;
		};
	};

and

	// proposed future binding
	partitions {
		compatible = "arm,arm-flash-structure";
	};

It's especially difficult if other uses of this node start having
subnodes.

So, since the "partitions" node is new in v4.4, let's fixup the binding
before release so that it requires a compatible property, so it's much
clearer to distinguish. e.g.:

	// proposed
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <x>;
		#size-cells = <y>;
		partition@0 {
			...;
		};
	};

[1] Subject: "mtd: create a partition type device tree binding"
    http://lkml.kernel.org/g/20151113220039.GA74382@google.com
    http://lists.infradead.org/pipermail/linux-mtd/2015-November/063355.html
    http://lists.infradead.org/pipermail/linux-mtd/2015-November/063364.html



Cc: Michal Suchanek <hramrach@gmail.com>
Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
Acked-by: default avatarRob Herring <robh@kernel.org>
parent 8c62b4e1
Loading
Loading
Loading
Loading
+6 −1
Original line number Original line Diff line number Diff line
@@ -6,7 +6,9 @@ used for what purposes, but which don't use an on-flash partition table such
as RedBoot.
as RedBoot.


The partition table should be a subnode of the mtd node and should be named
The partition table should be a subnode of the mtd node and should be named
'partitions'. Partitions are defined in subnodes of the partitions node.
'partitions'. This node should have the following property:
- compatible : (required) must be "fixed-partitions"
Partitions are then defined in subnodes of the partitions node.


For backwards compatibility partitions as direct subnodes of the mtd device are
For backwards compatibility partitions as direct subnodes of the mtd device are
supported. This use is discouraged.
supported. This use is discouraged.
@@ -36,6 +38,7 @@ Examples:


flash@0 {
flash@0 {
	partitions {
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#address-cells = <1>;
		#size-cells = <1>;
		#size-cells = <1>;


@@ -53,6 +56,7 @@ flash@0 {


flash@1 {
flash@1 {
	partitions {
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#address-cells = <1>;
		#size-cells = <2>;
		#size-cells = <2>;


@@ -66,6 +70,7 @@ flash@1 {


flash@2 {
flash@2 {
	partitions {
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <2>;
		#address-cells = <2>;
		#size-cells = <2>;
		#size-cells = <2>;


+3 −0
Original line number Original line Diff line number Diff line
@@ -55,6 +55,9 @@ static int parse_ofpart_partitions(struct mtd_info *master,
			 master->name, mtd_node->full_name);
			 master->name, mtd_node->full_name);
		ofpart_node = mtd_node;
		ofpart_node = mtd_node;
		dedicated = false;
		dedicated = false;
	} else if (!of_device_is_compatible(ofpart_node, "fixed-partitions")) {
		/* The 'partitions' subnode might be used by another parser */
		return 0;
	}
	}


	/* First count the subnodes */
	/* First count the subnodes */