Am Donnerstag, den 16.07.2020, 08:46 +0200 schrieb Oleksij Rempel: > Calling the devinfo against a device which is linked to some devicetree > node weill result a devictree dump of this node. For example: > > barebox@Protonic PRTI6Q board:/ devinfo sound-spdif.of > Bus: platform > Device node: /sound-spdif > sound-spdif { > compatible = "fsl,imx-audio-spdif"; > model = "imx-spdif"; > spdif-controller = <0x7a>; > spdif-in; > spdif-out; > }; > > Calling same command on a device wich is linked to the root node of > devicetree, for example "machine.of", will trigger a dump fo complete > devicetree. Taking a step back from the immediate issue with the root node: is it even a good idea to dump the whole subtree of nodes in the devinfo? Most likely someone using devinfo is only interested in the of_node of the device and maybe some subnodes that don't have a device on their own. So wouldn't it make more sense to only dump the node of the device in question and subnodes without a compatible? This way we could remove the special case for the root node and still get some useful information in devinfo, like the board compatible property. Regards, Lucas > Since the same functionality is provided by the "of_dump" > command, it is better to limit devinfo on the root device. After this > patch we would get following output: > > barebox@Protonic PRTI6Q board:/ devinfo machine.of > Driver: board-protonic-imx6 > Bus: platform > Parameters: > boardid: 0 (type: uint32) > boardrev: 1 (type: uint32) > > In this example, "boardid" and "boardrev" are variabled provided by this > this specific board driver. > > Signed-off-by: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx> > --- > commands/devinfo.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/commands/devinfo.c b/commands/devinfo.c > index 81956b1cc0..018a7c4167 100644 > --- a/commands/devinfo.c > +++ b/commands/devinfo.c > @@ -99,7 +99,7 @@ static int do_devinfo(int argc, char *argv[]) > printf("\n"); > } > #ifdef CONFIG_OFDEVICE > - if (dev->device_node) { > + if (dev->device_node && dev->device_node != of_get_root_node()) { > printf("Device node: %s\n", dev->device_node->full_name); > of_print_nodes(dev->device_node, 0); > } _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox