linux-watchdog.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: "Thierry Reding" <thierry.reding@gmail.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Matti Vaittinen" <mazziesaccount@gmail.com>,
	"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
	"Claudiu Beznea" <claudiu.beznea@microchip.com>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Wim Van Sebroeck" <wim@linux-watchdog.org>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Guenter Roeck" <linux@roeck-us.net>,
	"Miquel Raynal" <miquel.raynal@bootlin.com>,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Felipe Balbi" <balbi@kernel.org>,
	"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Krzysztof Wilczyński" <kw@linux.com>,
	"Vignesh Raghavendra" <vigneshr@ti.com>,
	"Daniel Vetter" <daniel@ffwll.ch>,
	"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>,
	"Alexandre Torgue" <alexandre.torgue@foss.st.com>,
	"Marc Zyngier" <maz@kernel.org>,
	"Richard Weinberger" <richard@nod.at>,
	"David Airlie" <airlied@linux.ie>,
	"Nicolas Ferre" <nicolas.ferre@microchip.com>,
	"Alyssa Rosenzweig" <alyssa@rosenzweig.io>,
	"Bartosz Golaszewski" <brgl@bgdev.pl>,
	"Jonathan Hunter" <jonathanh@nvidia.com>,
	"Rob Herring" <robh@kernel.org>,
	"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Pali Rohár" <pali@kernel.org>
Cc: linux-watchdog@vger.kernel.org, linux-usb@vger.kernel.org,
	linux-gpio@vger.kernel.org, linux-pci@vger.kernel.org,
	linux-tegra@vger.kernel.org, linux-mtd@lists.infradead.org,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	linux-stm32@st-md-mailman.stormreply.com,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH v1 10/11] watchdog: bd9576_wdt: switch to using devm_fwnode_gpiod_get()
Date: Sun,  4 Sep 2022 23:31:02 -0700	[thread overview]
Message-ID: <20220903-gpiod_get_from_of_node-remove-v1-10-b29adfb27a6c@gmail.com> (raw)
In-Reply-To: <20220903-gpiod_get_from_of_node-remove-v1-0-b29adfb27a6c@gmail.com>

I would like to stop exporting OF-specific devm_gpiod_get_from_of_node()
so that gpiolib can be cleaned a bit, so let's switch to the generic
fwnode property API.

While at it switch the rest of the calls to read properties in
bd9576_wdt_probe() to the generic device property API as well.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

diff --git a/drivers/watchdog/bd9576_wdt.c b/drivers/watchdog/bd9576_wdt.c
index 0b6999f3b6e8..4a20e07fbb69 100644
--- a/drivers/watchdog/bd9576_wdt.c
+++ b/drivers/watchdog/bd9576_wdt.c
@@ -9,8 +9,8 @@
 #include <linux/gpio/consumer.h>
 #include <linux/mfd/rohm-bd957x.h>
 #include <linux/module.h>
-#include <linux/of.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/regmap.h>
 #include <linux/watchdog.h>
 
@@ -202,10 +202,10 @@ static int bd957x_set_wdt_mode(struct bd9576_wdt_priv *priv, int hw_margin,
 static int bd9576_wdt_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
-	struct device_node *np = dev->parent->of_node;
 	struct bd9576_wdt_priv *priv;
 	u32 hw_margin[2];
 	u32 hw_margin_max = BD957X_WDT_DEFAULT_MARGIN, hw_margin_min = 0;
+	int count;
 	int ret;
 
 	priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
@@ -221,40 +221,51 @@ static int bd9576_wdt_probe(struct platform_device *pdev)
 		return -ENODEV;
 	}
 
-	priv->gpiod_en = devm_gpiod_get_from_of_node(dev, dev->parent->of_node,
-						     "rohm,watchdog-enable-gpios",
-						     0, GPIOD_OUT_LOW,
-						     "watchdog-enable");
+	priv->gpiod_en = devm_fwnode_gpiod_get(dev, dev_fwnode(dev->parent),
+					       "rohm,watchdog-enable",
+					       GPIOD_OUT_LOW,
+					       "watchdog-enable");
 	if (IS_ERR(priv->gpiod_en))
 		return dev_err_probe(dev, PTR_ERR(priv->gpiod_en),
 			      "getting watchdog-enable GPIO failed\n");
 
-	priv->gpiod_ping = devm_gpiod_get_from_of_node(dev, dev->parent->of_node,
-						     "rohm,watchdog-ping-gpios",
-						     0, GPIOD_OUT_LOW,
-						     "watchdog-ping");
+	priv->gpiod_ping = devm_fwnode_gpiod_get(dev, dev_fwnode(dev->parent),
+						 "rohm,watchdog-ping",
+						 GPIOD_OUT_LOW,
+						 "watchdog-ping");
 	if (IS_ERR(priv->gpiod_ping))
 		return dev_err_probe(dev, PTR_ERR(priv->gpiod_ping),
 				     "getting watchdog-ping GPIO failed\n");
 
-	ret = of_property_read_variable_u32_array(np, "rohm,hw-timeout-ms",
-						  &hw_margin[0], 1, 2);
-	if (ret < 0 && ret != -EINVAL)
-		return ret;
+	count = device_property_count_u32(dev->parent, "rohm,hw-timeout-ms");
+	if (count < 0 && count != -EINVAL)
+		return count;
+
+	if (count > 0) {
+		if (count > ARRAY_SIZE(hw_margin))
+			return -EINVAL;
 
-	if (ret == 1)
-		hw_margin_max = hw_margin[0];
+		ret = device_property_read_u32_array(dev->parent,
+						     "rohm,hw-timeout-ms",
+						     hw_margin, count);
+		if (ret < 0)
+			return ret;
 
-	if (ret == 2) {
-		hw_margin_max = hw_margin[1];
-		hw_margin_min = hw_margin[0];
+		if (count == 1)
+			hw_margin_max = hw_margin[0];
+
+		if (count == 2) {
+			hw_margin_max = hw_margin[1];
+			hw_margin_min = hw_margin[0];
+		}
 	}
 
 	ret = bd957x_set_wdt_mode(priv, hw_margin_max, hw_margin_min);
 	if (ret)
 		return ret;
 
-	priv->always_running = of_property_read_bool(np, "always-running");
+	priv->always_running = device_property_read_bool(dev->parent,
+							 "always-running");
 
 	watchdog_set_drvdata(&priv->wdd, priv);
 

-- 
b4 0.10.0-dev-fc921

  parent reply	other threads:[~2022-09-05  6:32 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-05  6:30 [PATCH v1 00/11] Get rid of [devm_]gpiod_get_from_of_node() public APIs Dmitry Torokhov
2022-09-05  6:30 ` [PATCH v1 01/11] PCI: tegra: switch to using devm_fwnode_gpiod_get Dmitry Torokhov
2022-09-05  7:19   ` Pali Rohár
2022-09-05 10:49     ` Andy Shevchenko
2022-09-05 10:53       ` Pali Rohár
2022-09-05 10:54         ` Andy Shevchenko
2022-09-05 10:54       ` Andy Shevchenko
2022-09-05 22:49     ` Dmitry Torokhov
2022-09-08  8:13   ` Linus Walleij
2022-09-05  6:30 ` [PATCH v1 02/11] drm/tegra: " Dmitry Torokhov
2022-09-05 10:57   ` Andy Shevchenko
2022-09-05 19:37     ` Dmitry Torokhov
2022-09-05 21:03       ` Linus Walleij
2022-09-05 22:08         ` Dmitry Torokhov
2022-09-05  6:30 ` [PATCH v1 03/11] mtd: rawnand: stm32_fmc2: switch to using devm_fwnode_gpiod_get() Dmitry Torokhov
2022-09-20  8:33   ` Miquel Raynal
2022-09-05  6:30 ` [PATCH v1 04/11] usb: phy: tegra: switch to using devm_gpiod_get() Dmitry Torokhov
2022-09-05 10:59   ` Andy Shevchenko
2022-09-05 19:39     ` Dmitry Torokhov
2022-09-05 19:41       ` Andy Shevchenko
2022-09-05 19:51         ` Dmitry Torokhov
2022-09-05 19:55           ` Andy Shevchenko
2022-09-05 22:07             ` Guenter Roeck
2022-09-06 12:27               ` Andy Shevchenko
2022-09-05  6:30 ` [PATCH v1 05/11] usb: gadget: udc: at91: switch to using fwnode_gpiod_get_index() Dmitry Torokhov
2022-09-05  6:30 ` [PATCH v1 06/11] PCI: aardvark: switch to using devm_gpiod_get_optional() Dmitry Torokhov
2022-09-05  7:00   ` Pali Rohár
2022-09-05 10:47     ` Andy Shevchenko
2022-09-05 19:54       ` Dmitry Torokhov
2022-09-05 22:54     ` Dmitry Torokhov
2022-09-05 23:10       ` Pali Rohár
2022-09-05 23:18         ` Dmitry Torokhov
2022-09-08  8:32   ` Linus Walleij
2022-09-05  6:30 ` [PATCH v1 07/11] PCI: apple: switch to using fwnode_gpiod_get_index() Dmitry Torokhov
2022-09-06  0:19   ` Dmitry Torokhov
2022-09-08  8:33     ` Linus Walleij
2022-09-05  6:31 ` [PATCH v1 08/11] regulator: bd71815: switch to using devm_fwnode_gpiod_get() Dmitry Torokhov
2022-09-05  9:55   ` Matti Vaittinen
2022-09-05 10:42   ` Andy Shevchenko
2022-09-08  8:10   ` Linus Walleij
2022-09-05  6:31 ` [PATCH v1 09/11] regulator: bd9576: " Dmitry Torokhov
2022-09-05  9:56   ` Matti Vaittinen
2022-09-05 10:40   ` Andy Shevchenko
2022-09-05 13:19     ` Matti Vaittinen
2022-09-05 13:23       ` Andy Shevchenko
2022-09-05  6:31 ` Dmitry Torokhov [this message]
2022-09-05 11:09   ` [PATCH v1 10/11] watchdog: bd9576_wdt: " Andy Shevchenko
2022-09-05 15:13     ` Guenter Roeck
2022-09-05 15:21       ` Andy Shevchenko
2022-09-05 15:49         ` Guenter Roeck
2022-09-05 19:47           ` Dmitry Torokhov
2022-09-05 22:09             ` Guenter Roeck
2022-09-07  2:00               ` Dmitry Torokhov
2022-09-08  8:38   ` Linus Walleij
2022-09-05  6:31 ` [PATCH v1 11/11] gpiolib: of: remove [devm_]gpiod_get_from_of_node() APIs Dmitry Torokhov
2022-09-05 10:40   ` Linus Walleij
2022-09-05  7:08 ` [PATCH v1 00/11] Get rid of [devm_]gpiod_get_from_of_node() public APIs Greg Kroah-Hartman
2022-09-05 11:13 ` Andy Shevchenko
2022-10-27 13:38 ` (subset) " Lorenzo Pieralisi
2022-10-28  1:06   ` Dmitry Torokhov

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=20220903-gpiod_get_from_of_node-remove-v1-10-b29adfb27a6c@gmail.com \
    --to=dmitry.torokhov@gmail.com \
    --cc=airlied@linux.ie \
    --cc=alexandre.belloni@bootlin.com \
    --cc=alexandre.torgue@foss.st.com \
    --cc=alyssa@rosenzweig.io \
    --cc=balbi@kernel.org \
    --cc=bhelgaas@google.com \
    --cc=brgl@bgdev.pl \
    --cc=broonie@kernel.org \
    --cc=claudiu.beznea@microchip.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jonathanh@nvidia.com \
    --cc=kw@linux.com \
    --cc=lgirdwood@gmail.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=linux-tegra@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=linux-watchdog@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=lpieralisi@kernel.org \
    --cc=maz@kernel.org \
    --cc=mazziesaccount@gmail.com \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=miquel.raynal@bootlin.com \
    --cc=nicolas.ferre@microchip.com \
    --cc=pali@kernel.org \
    --cc=richard@nod.at \
    --cc=robh@kernel.org \
    --cc=thierry.reding@gmail.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=vigneshr@ti.com \
    --cc=wim@linux-watchdog.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;
as well as URLs for NNTP newsgroup(s).