From: Daniel Mack <daniel@zonque.org>
To: zbr@ioremap.net, robh+dt@kernel.org, mark.rutland@arm.com,
szabolcs.gyurko@tlt.hu
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Daniel Mack <daniel@zonque.org>
Subject: [PATCH RFC 4/4] w1: ds2760: add devicetree matching glue
Date: Tue, 19 Jun 2018 23:27:44 +0200 [thread overview]
Message-ID: <20180619212744.794-5-daniel@zonque.org> (raw)
In-Reply-To: <20180619212744.794-1-daniel@zonque.org>
Add an id table for ds2760 so it can be matched by the core.
Also, refrain from allocating the platform device for the supply driver at
runtime when the device was matched via DT, because in this case, supply
devices are also probed with device tree nodes, so they will always be
present.
Signed-off-by: Daniel Mack <daniel@zonque.org>
---
drivers/w1/slaves/w1_ds2760.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/drivers/w1/slaves/w1_ds2760.c b/drivers/w1/slaves/w1_ds2760.c
index 26168abfb8b8..a737a96204ed 100644
--- a/drivers/w1/slaves/w1_ds2760.c
+++ b/drivers/w1/slaves/w1_ds2760.c
@@ -17,6 +17,7 @@
#include <linux/mutex.h>
#include <linux/idr.h>
#include <linux/gfp.h>
+#include <linux/of.h>
#include <linux/w1.h>
@@ -131,6 +132,9 @@ static int w1_ds2760_add_slave(struct w1_slave *sl)
int ret;
struct platform_device *pdev;
+ if (sl->dev.of_node)
+ return 0;
+
pdev = platform_device_alloc("ds2760-battery", PLATFORM_DEVID_AUTO);
if (!pdev)
return -ENOMEM;
@@ -154,9 +158,17 @@ static void w1_ds2760_remove_slave(struct w1_slave *sl)
{
struct platform_device *pdev = dev_get_drvdata(&sl->dev);
- platform_device_unregister(pdev);
+ if (!sl->dev.of_node)
+ platform_device_unregister(pdev);
}
+#ifdef CONFIG_OF
+static const struct of_device_id w1_ds2760_of_ids[] = {
+ { .compatible = "maxim,w1-ds2760" },
+ {}
+};
+#endif
+
static struct w1_family_ops w1_ds2760_fops = {
.add_slave = w1_ds2760_add_slave,
.remove_slave = w1_ds2760_remove_slave,
@@ -166,6 +178,7 @@ static struct w1_family_ops w1_ds2760_fops = {
static struct w1_family w1_ds2760_family = {
.fid = W1_FAMILY_DS2760,
.fops = &w1_ds2760_fops,
+ .of_match_table = of_match_ptr(w1_ds2760_of_ids),
};
module_w1_family(w1_ds2760_family);
--
2.17.1
next prev parent reply other threads:[~2018-06-19 21:27 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-19 21:27 [PATCH RFC 0/4] Adding DT functionality to w1 busses Daniel Mack
2018-06-19 21:27 ` [PATCH RFC 1/4] dt-bindings: w1: document sub-node bindings for DS2760 Daniel Mack
2018-06-26 21:33 ` Rob Herring
2018-06-19 21:27 ` [PATCH RFC 2/4] w1: core: match sub-nodes of bus masters in devicetree Daniel Mack
2018-06-19 21:27 ` [PATCH RFC 3/4] w1: core: provide helper to look up w1 slaves through devicetree nodes Daniel Mack
2018-06-19 21:27 ` Daniel Mack [this message]
2018-06-26 21:39 ` [PATCH RFC 0/4] Adding DT functionality to w1 busses Rob Herring
2018-06-27 19:12 ` Daniel Mack
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=20180619212744.794-5-daniel@zonque.org \
--to=daniel@zonque.org \
--cc=devicetree@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=robh+dt@kernel.org \
--cc=szabolcs.gyurko@tlt.hu \
--cc=zbr@ioremap.net \
/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).