[PATCH v12 2/7] nvmem: Clarify the situation when there is no DT node available

From: Miquel Raynal
Date: Thu Oct 05 2023 - 12:19:08 EST


At a first look it might seem that the presence of the of_node pointer
in the nvmem device does not matter much, but in practice, after looking
deep into the DT core, nvmem_add_cells_from_dt() will simply and always
return NULL if this field is not provided. As most mtd devices don't
populate this field (this could evolve later), it means none of their
children cells will be populated unless no_of_node is explicitly set to
false. In order to clarify the logic, let's add clear check at the
beginning of this helper.

Signed-off-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx>
---
drivers/nvmem/core.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index eaf6a3fe8ca6..286efd3f5a31 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -743,6 +743,9 @@ static int nvmem_add_cells_from_dt(struct nvmem_device *nvmem, struct device_nod

static int nvmem_add_cells_from_legacy_of(struct nvmem_device *nvmem)
{
+ if (!nvmem->dev.of_node)
+ return 0;
+
return nvmem_add_cells_from_dt(nvmem, nvmem->dev.of_node);
}

--
2.34.1