All of lore.kernel.org
 help / color / mirror / Atom feed
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
To: gregkh@linuxfoundation.org
Cc: linux-kernel@vger.kernel.org, Michael Walle <michael@walle.cc>,
	Rob Herring <robh@kernel.org>,
	Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Subject: [PATCH v2 09/22] of: base: add of_parse_phandle_with_optional_args()
Date: Mon,  6 Feb 2023 13:43:43 +0000	[thread overview]
Message-ID: <20230206134356.839737-10-srinivas.kandagatla@linaro.org> (raw)
In-Reply-To: <20230206134356.839737-1-srinivas.kandagatla@linaro.org>

From: Michael Walle <michael@walle.cc>

Add a new variant of the of_parse_phandle_with_args() which treats the
cells name as optional. If it's missing, it is assumed that the phandle
has no arguments.

Up until now, a nvmem node didn't have any arguments, so all the device
trees haven't any '#*-cells' property. But there is a need for an
additional argument for the phandle, for which we need a '#*-cells'
property. Therefore, we need to support nvmem nodes with and without
this property.

Signed-off-by: Michael Walle <michael@walle.cc>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 include/linux/of.h | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/include/linux/of.h b/include/linux/of.h
index 8b9f94386dc3..98c252d2d851 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -1008,6 +1008,31 @@ static inline int of_parse_phandle_with_fixed_args(const struct device_node *np,
 					    index, out_args);
 }
 
+/**
+ * of_parse_phandle_with_optional_args() - Find a node pointed by phandle in a list
+ * @np:		pointer to a device tree node containing a list
+ * @list_name:	property name that contains a list
+ * @cells_name:	property name that specifies phandles' arguments count
+ * @index:	index of a phandle to parse out
+ * @out_args:	optional pointer to output arguments structure (will be filled)
+ *
+ * Same as of_parse_phandle_with_args() except that if the cells_name property
+ * is not found, cell_count of 0 is assumed.
+ *
+ * This is used to useful, if you have a phandle which didn't have arguments
+ * before and thus doesn't have a '#*-cells' property but is now migrated to
+ * having arguments while retaining backwards compatibility.
+ */
+static inline int of_parse_phandle_with_optional_args(const struct device_node *np,
+						      const char *list_name,
+						      const char *cells_name,
+						      int index,
+						      struct of_phandle_args *out_args)
+{
+	return __of_parse_phandle_with_args(np, list_name, cells_name,
+					    0, index, out_args);
+}
+
 /**
  * of_property_count_u8_elems - Count the number of u8 elements in a property
  *
-- 
2.25.1


  parent reply	other threads:[~2023-02-06 13:44 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-06 13:43 [PATCH v2 00/22] nvmem: patches for 6.3 Srinivas Kandagatla
2023-02-06 13:43 ` [PATCH v2 01/22] nvmem: sunxi_sid: Drop the workaround on A64 Srinivas Kandagatla
2023-02-06 13:43 ` [PATCH v2 02/22] dt-bindings: nvmem: Fix qcom,qfprom compatibles enum ordering Srinivas Kandagatla
2023-02-06 13:43 ` [PATCH v2 03/22] dt-bindings: nvmem: Add compatible for MSM8976 Srinivas Kandagatla
2023-02-06 13:43 ` [PATCH v2 04/22] dt-bindings: nvmem: qfprom: add sdm670 compatible Srinivas Kandagatla
2023-02-06 13:43 ` [PATCH v2 05/22] dt-bindings: nvmem: Add compatible for SM8150 Srinivas Kandagatla
2023-02-06 13:43 ` [PATCH v2 06/22] dt-bindings: nvmem: Add compatible for SM8250 Srinivas Kandagatla
2023-02-06 13:43 ` [PATCH v2 07/22] nvmem: core: remove spurious white space Srinivas Kandagatla
2023-02-06 13:43 ` [PATCH v2 08/22] net: add helper eth_addr_add() Srinivas Kandagatla
2023-02-06 13:43 ` Srinivas Kandagatla [this message]
2023-02-06 13:43 ` [PATCH v2 10/22] of: property: make #.*-cells optional for simple props Srinivas Kandagatla
2023-02-06 13:43 ` [PATCH v2 11/22] of: property: add #nvmem-cell-cells property Srinivas Kandagatla
2023-02-06 13:43 ` [PATCH v2 12/22] nvmem: core: add an index parameter to the cell Srinivas Kandagatla
2023-02-10 11:01   ` Alexander Stein
2023-02-06 13:43 ` [PATCH v2 13/22] nvmem: core: move struct nvmem_cell_info to nvmem-provider.h Srinivas Kandagatla
2023-02-06 13:43 ` [PATCH v2 14/22] nvmem: core: drop the removal of the cells in nvmem_add_cells() Srinivas Kandagatla
2023-02-06 13:43 ` [PATCH v2 15/22] nvmem: core: add nvmem_add_one_cell() Srinivas Kandagatla
2023-02-06 13:43 ` [PATCH v2 16/22] nvmem: core: use nvmem_add_one_cell() in nvmem_add_cells_from_of() Srinivas Kandagatla
2023-02-06 13:43 ` [PATCH v2 17/22] nvmem: stm32: add OP-TEE support for STM32MP13x Srinivas Kandagatla
2023-02-06 13:43 ` [PATCH v2 18/22] nvmem: stm32: detect bsec pta presence for STM32MP15x Srinivas Kandagatla
2023-02-06 13:43 ` [PATCH v2 19/22] nvmem: rave-sp-eeprm: fix kernel-doc bad line warning Srinivas Kandagatla
2023-02-06 13:43 ` [PATCH v2 20/22] nvmem: qcom-spmi-sdam: register at device init time Srinivas Kandagatla
2023-02-06 13:43 ` [PATCH v2 21/22] dt-bindings: nvmem: qfprom: add IPQ8074 compatible Srinivas Kandagatla
2023-02-06 13:43 ` [PATCH v2 22/22] nvmem: stm32: fix OPTEE dependency Srinivas Kandagatla

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230206134356.839737-10-srinivas.kandagatla@linaro.org \
    --to=srinivas.kandagatla@linaro.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michael@walle.cc \
    --cc=robh@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.