public inbox for linux-gpio@vger.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Linus Walleij <linusw@kernel.org>,
	linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Subject: [PATCH v1 1/1] pinctrl: pinconf-generic: Use only fwnode API in parse_dt_cfg()
Date: Thu,  5 Mar 2026 10:50:14 +0100	[thread overview]
Message-ID: <20260305095014.3221492-1-andriy.shevchenko@linux.intel.com> (raw)

The parse_dt_cfg() uses OF and fwnode APIs. Fix this inconsistency by
fully switching it to use fwnode API and rename the function accordingly.

While at it, add missing linux/property.h inclusion.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/pinctrl/pinconf-generic.c | 34 ++++++++++++++++---------------
 1 file changed, 18 insertions(+), 16 deletions(-)

diff --git a/drivers/pinctrl/pinconf-generic.c b/drivers/pinctrl/pinconf-generic.c
index 7929127c8839..61b5b3fb94ce 100644
--- a/drivers/pinctrl/pinconf-generic.c
+++ b/drivers/pinctrl/pinconf-generic.c
@@ -16,6 +16,7 @@
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/of.h>
+#include <linux/property.h>
 #include <linux/slab.h>
 #include <linux/seq_file.h>
 
@@ -205,19 +206,19 @@ static const struct pinconf_generic_params dt_params[] = {
 };
 
 /**
- * parse_dt_cfg() - Parse DT pinconf parameters
- * @np:	DT node
+ * parse_fw_cfg() - Parse firmware pinconf parameters
+ * @fwnode:	firmware node
  * @params:	Array of describing generic parameters
  * @count:	Number of entries in @params
  * @cfg:	Array of parsed config options
  * @ncfg:	Number of entries in @cfg
  *
- * Parse the config options described in @params from @np and puts the result
+ * Parse the config options described in @params from @fwnode and puts the result
  * in @cfg. @cfg does not need to be empty, entries are added beginning at
  * @ncfg. @ncfg is updated to reflect the number of entries after parsing. @cfg
  * needs to have enough memory allocated to hold all possible entries.
  */
-static int parse_dt_cfg(struct device_node *np,
+static int parse_fw_cfg(struct fwnode_handle *fwnode,
 			const struct pinconf_generic_params *params,
 			unsigned int count, unsigned long *cfg,
 			unsigned int *ncfg)
@@ -233,7 +234,7 @@ static int parse_dt_cfg(struct device_node *np,
 		const struct pinconf_generic_params *par = &params[i];
 
 		if (par->values && par->num_values) {
-			ret = fwnode_property_match_property_string(of_fwnode_handle(np),
+			ret = fwnode_property_match_property_string(fwnode,
 								    par->property,
 								    par->values, par->num_values);
 			if (ret == -ENOENT)
@@ -243,7 +244,7 @@ static int parse_dt_cfg(struct device_node *np,
 				ret = 0;
 			}
 		} else {
-			ret = of_property_read_u32(np, par->property, &val);
+			ret = fwnode_property_read_u32(fwnode, par->property, &val);
 		}
 
 		/* property not found */
@@ -258,8 +259,8 @@ static int parse_dt_cfg(struct device_node *np,
 		if (par->param <= count) {
 			ret = test_and_set_bit(par->param, properties);
 			if (ret) {
-				pr_err("%s: conflicting setting detected for %s\n",
-				       np->name, par->property);
+				pr_err("%pfw: conflicting setting detected for %s\n",
+				       fwnode, par->property);
 				bitmap_free(properties);
 				return -EINVAL;
 			}
@@ -272,8 +273,8 @@ static int parse_dt_cfg(struct device_node *np,
 
 	if (test_bit(PIN_CONFIG_DRIVE_STRENGTH, properties) &&
 			test_bit(PIN_CONFIG_DRIVE_STRENGTH_UA, properties))
-		pr_err("%s: cannot have multiple drive strength properties\n",
-		       np->name);
+		pr_err("%pfw: cannot have multiple drive strength properties\n",
+		       fwnode);
 
 	test = test_bit(PIN_CONFIG_BIAS_BUS_HOLD, properties) +
 		test_bit(PIN_CONFIG_BIAS_DISABLE, properties) +
@@ -282,15 +283,15 @@ static int parse_dt_cfg(struct device_node *np,
 		test_bit(PIN_CONFIG_BIAS_PULL_PIN_DEFAULT, properties) +
 		test_bit(PIN_CONFIG_BIAS_PULL_DOWN, properties);
 	if (test > 1)
-		pr_err("%s: cannot have multiple bias configurations\n",
-		       np->name);
+		pr_err("%pfw: cannot have multiple bias configurations\n",
+		       fwnode);
 
 	test = test_bit(PIN_CONFIG_DRIVE_OPEN_DRAIN, properties) +
 		test_bit(PIN_CONFIG_DRIVE_OPEN_SOURCE, properties) +
 		test_bit(PIN_CONFIG_DRIVE_PUSH_PULL, properties);
 	if (test > 1)
-		pr_err("%s: cannot have multiple drive configurations\n",
-		       np->name);
+		pr_err("%pfw: cannot have multiple drive configurations\n",
+		       fwnode);
 
 	bitmap_free(properties);
 	return 0;
@@ -371,6 +372,7 @@ int pinconf_generic_parse_dt_config(struct device_node *np,
 				    unsigned long **configs,
 				    unsigned int *nconfigs)
 {
+	struct fwnode_handle *fwnode = of_fwnode_handle(np);
 	unsigned long *cfg;
 	unsigned int max_cfg, ncfg = 0;
 	int ret;
@@ -386,12 +388,12 @@ int pinconf_generic_parse_dt_config(struct device_node *np,
 	if (!cfg)
 		return -ENOMEM;
 
-	ret = parse_dt_cfg(np, dt_params, ARRAY_SIZE(dt_params), cfg, &ncfg);
+	ret = parse_fw_cfg(fwnode, dt_params, ARRAY_SIZE(dt_params), cfg, &ncfg);
 	if (ret)
 		goto out;
 	if (pctldev && pctldev->desc->num_custom_params &&
 		pctldev->desc->custom_params) {
-		ret = parse_dt_cfg(np, pctldev->desc->custom_params,
+		ret = parse_fw_cfg(fwnode, pctldev->desc->custom_params,
 				   pctldev->desc->num_custom_params, cfg, &ncfg);
 		if (ret)
 			goto out;
-- 
2.50.1


             reply	other threads:[~2026-03-05  9:50 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-05  9:50 Andy Shevchenko [this message]
2026-03-10  9:19 ` [PATCH v1 1/1] pinctrl: pinconf-generic: Use only fwnode API in parse_dt_cfg() Linus Walleij
2026-03-17  8:28   ` Andy Shevchenko

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=20260305095014.3221492-1-andriy.shevchenko@linux.intel.com \
    --to=andriy.shevchenko@linux.intel.com \
    --cc=linusw@kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox