From: Wolfram Sang <wsa@the-dreams.de>
To: Kieran Bingham <kieran@ksquared.org.uk>
Cc: Javier Martinez Canillas <javier@osg.samsung.com>,
Lee Jones <lee.jones@linaro.org>,
linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org,
grant.likely@linaro.org, sameo@linux.intel.com
Subject: Re: [PATCHv5 0/8] 2c: Relax mandatory I2C ID table passing
Date: Fri, 10 Jun 2016 15:32:00 +0200 [thread overview]
Message-ID: <20160610133200.GB1624@katana> (raw)
In-Reply-To: <575AAD67.5070804@bingham.xyz>
[-- Attachment #1: Type: text/plain, Size: 2986 bytes --]
> When I reported :
>
> > * new_device (built-in, and external module)
> > echo ds1307 0x68 > /sys/bus/i2c/devices/i2c-2/new_device
> > cat /sys/class/rtc/rtc0/date
> >
> > - Both of those worked fine.
>
> That was *without* Javier's patch, but hopefully obviously *with* Lee's
> patchset.
>
> Do you need this testing *with* Javiers patch as well?
Without Javiers patch. But with a modified rtc driver which will only
use proper compatibles, no i2c_device_ids, and probe_new. And this one
should be able to instantiate via userspace with the driver builtin.
We have documented ways of instantiating. All I ask for is to make sure
the old style and new style work with them. Check the attached sketch
for an example (only compile-tested and conversion to probe_new is
missing). Can you instantiate the "maxim,ds1307" (with the additional
printout) and "dallas,ds1307" via userspace?
diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c
index 821d9c089cdb48..10a4e5bc923e07 100644
--- a/drivers/rtc/rtc-ds1307.c
+++ b/drivers/rtc/rtc-ds1307.c
@@ -31,6 +31,7 @@
*/
enum ds_type {
ds_1307,
+ maxim_1307,
ds_1337,
ds_1338,
ds_1339,
@@ -144,6 +145,10 @@ static struct chip_desc chips[last_ds_type] = {
.nvram_offset = 8,
.nvram_size = 56,
},
+ [maxim_1307] = {
+ .nvram_offset = 8,
+ .nvram_size = 56,
+ },
[ds_1337] = {
.alarm = 1,
},
@@ -173,23 +178,6 @@ static struct chip_desc chips[last_ds_type] = {
},
};
-static const struct i2c_device_id ds1307_id[] = {
- { "ds1307", ds_1307 },
- { "ds1337", ds_1337 },
- { "ds1338", ds_1338 },
- { "ds1339", ds_1339 },
- { "ds1388", ds_1388 },
- { "ds1340", ds_1340 },
- { "ds3231", ds_3231 },
- { "m41t00", m41t00 },
- { "mcp7940x", mcp794xx },
- { "mcp7941x", mcp794xx },
- { "pt7c4338", ds_1307 },
- { "rx8025", rx_8025 },
- { }
-};
-MODULE_DEVICE_TABLE(i2c, ds1307_id);
-
/*----------------------------------------------------------------------*/
#define BLOCK_DATA_MAX_TRIES 10
@@ -1435,6 +1423,9 @@ read_rtc:
*/
tmp = ds1307->regs[DS1307_REG_SECS];
switch (ds1307->type) {
+ case maxim_1307:
+ dev_info(&client->dev, "I'm a Maxim\n");
+ /* fallthrough */
case ds_1307:
case m41t00:
/* clock halted? turn it on, so clock can tick. */
@@ -1610,13 +1601,22 @@ static int ds1307_remove(struct i2c_client *client)
return 0;
}
+#ifdef CONFIG_OF
+static const struct of_device_id ds1307_dt_ids[] = {
+ { .compatible = "dallas,ds1307", .data = (void *)ds_1307 },
+ { .compatible = "maxim,ds1307", .data = (void *)maxim_1307 },
+ { /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, ds1302_dt_ids);
+#endif
+
static struct i2c_driver ds1307_driver = {
.driver = {
.name = "rtc-ds1307",
+ .of_match_table = of_match_ptr(ds1307_dt_ids),
},
.probe = ds1307_probe,
.remove = ds1307_remove,
- .id_table = ds1307_id,
};
module_i2c_driver(ds1307_driver);
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2016-06-10 13:32 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-04 15:14 [PATCHv5 0/8] 2c: Relax mandatory I2C ID table passing Kieran Bingham
2016-05-04 15:14 ` [PATCHv5 1/8] i2c: Add pointer dereference protection to i2c_match_id() Kieran Bingham
2016-05-10 4:54 ` Javier Martinez Canillas
2016-05-04 15:14 ` [PATCHv5 2/8] i2c: Add the ability to match device to compatible string without an of_node Kieran Bingham
2016-05-10 4:57 ` Javier Martinez Canillas
2016-05-04 15:14 ` [PATCHv5 3/8] i2c: Match using traditional OF methods, then by vendor-less compatible strings Kieran Bingham
2016-05-10 4:58 ` Javier Martinez Canillas
2016-05-04 15:14 ` [PATCHv5 4/8] i2c: Make I2C ID tables non-mandatory for DT'ed devices Kieran Bingham
2016-05-10 5:01 ` Javier Martinez Canillas
2016-05-04 15:14 ` [PATCHv5 5/8] i2c: Export i2c_match_id() for direct use by device drivers Kieran Bingham
2016-05-10 5:02 ` Javier Martinez Canillas
2016-05-04 15:14 ` [PATCHv5 6/8] i2c: Provide a temporary .probe_new() call-back type Kieran Bingham
2016-05-10 5:04 ` Javier Martinez Canillas
2016-05-04 15:14 ` [PATCHv5 7/8] mfd: 88pm860x: Move over to new I2C device .probe() call Kieran Bingham
2016-05-10 5:07 ` Javier Martinez Canillas
2016-05-04 15:14 ` [PATCHv5 8/8] mfd: as3722: Rid driver of superfluous I2C device ID structure Kieran Bingham
2016-05-10 5:20 ` Javier Martinez Canillas
2016-05-10 7:33 ` Lee Jones
2016-05-10 13:23 ` Javier Martinez Canillas
2016-05-10 14:01 ` Lee Jones
2016-05-10 14:39 ` [PATCH] cocci: Find i2c drivers with an of_device table that isn't exported Kieran Bingham
2016-05-10 15:07 ` [PATCH] cocci: Provide script to find i2c_tables missing exports Kieran Bingham
2016-05-11 20:07 ` Javier Martinez Canillas
2016-05-09 9:14 ` [PATCHv5 0/8] 2c: Relax mandatory I2C ID table passing Lee Jones
2016-05-09 13:21 ` Javier Martinez Canillas
2016-05-10 5:31 ` Javier Martinez Canillas
2016-05-10 7:48 ` Kieran Bingham
2016-06-09 14:24 ` Lee Jones
2016-06-09 19:15 ` Wolfram Sang
2016-06-09 19:45 ` Javier Martinez Canillas
2016-06-09 20:04 ` Wolfram Sang
2016-06-10 10:03 ` Kieran Bingham
2016-06-10 11:00 ` Wolfram Sang
2016-06-10 12:07 ` Kieran Bingham
2016-06-10 13:32 ` Wolfram Sang [this message]
2016-06-12 21:13 ` [TEST PATCH] rtc: convert ds1307 to interim probe_new Kieran Bingham
2016-06-12 21:26 ` kbuild test robot
2016-06-12 21:26 ` kbuild test robot
2016-06-12 21:26 ` kbuild test robot
2016-06-12 21:26 ` kbuild test robot
2016-06-13 17:13 ` Wolfram Sang
2016-07-11 9:13 ` Kieran Bingham
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=20160610133200.GB1624@katana \
--to=wsa@the-dreams.de \
--cc=grant.likely@linaro.org \
--cc=javier@osg.samsung.com \
--cc=kieran@ksquared.org.uk \
--cc=lee.jones@linaro.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sameo@linux.intel.com \
/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.