diff options
author | Stuart Longland <stuartl@vrt.com.au> | 2014-08-08 17:20:20 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-08 18:57:20 -0400 |
commit | db04d6284e2a626791e959dc71e922e8570440b6 (patch) | |
tree | fef0fb647928560bc0edf87c33eade6af4cf273b | |
parent | ede3e9d47cca565d96613bea9213eccf91c7a2a7 (diff) |
drivers/rtc/rtc-isl12022.c: device tree support
Add support for configuring the ISL12022 real-time clock via the Device
tree framework. This is based on what I've seen in the related ISL12057
driver, it has been tested and works on a Technologic Systems TS-7670
device which uses a ISL12020 RTC device, my device tree looks like this:
apbx@80040000 {
i2c0: i2c@80058000 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins_a>;
clock-frequency = <400000>;
status = "okay";
isl12022@0x6f {
compatible = "isl,isl12022";
reg = <0x6f>;
};
};
... etc
};
Signed-off-by: Stuart Longland <stuartl@vrt.com.au>
Cc: Roman Fietze <roman.fietze@telemotive.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | drivers/rtc/rtc-isl12022.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/rtc/rtc-isl12022.c b/drivers/rtc/rtc-isl12022.c index 03b891129428..aa55f081c505 100644 --- a/drivers/rtc/rtc-isl12022.c +++ b/drivers/rtc/rtc-isl12022.c | |||
@@ -17,6 +17,8 @@ | |||
17 | #include <linux/slab.h> | 17 | #include <linux/slab.h> |
18 | #include <linux/module.h> | 18 | #include <linux/module.h> |
19 | #include <linux/err.h> | 19 | #include <linux/err.h> |
20 | #include <linux/of.h> | ||
21 | #include <linux/of_device.h> | ||
20 | 22 | ||
21 | #define DRV_VERSION "0.1" | 23 | #define DRV_VERSION "0.1" |
22 | 24 | ||
@@ -271,6 +273,13 @@ static int isl12022_probe(struct i2c_client *client, | |||
271 | return PTR_ERR_OR_ZERO(isl12022->rtc); | 273 | return PTR_ERR_OR_ZERO(isl12022->rtc); |
272 | } | 274 | } |
273 | 275 | ||
276 | #ifdef CONFIG_OF | ||
277 | static struct of_device_id isl12022_dt_match[] = { | ||
278 | { .compatible = "isl,isl12022" }, | ||
279 | { }, | ||
280 | }; | ||
281 | #endif | ||
282 | |||
274 | static const struct i2c_device_id isl12022_id[] = { | 283 | static const struct i2c_device_id isl12022_id[] = { |
275 | { "isl12022", 0 }, | 284 | { "isl12022", 0 }, |
276 | { } | 285 | { } |
@@ -280,6 +289,9 @@ MODULE_DEVICE_TABLE(i2c, isl12022_id); | |||
280 | static struct i2c_driver isl12022_driver = { | 289 | static struct i2c_driver isl12022_driver = { |
281 | .driver = { | 290 | .driver = { |
282 | .name = "rtc-isl12022", | 291 | .name = "rtc-isl12022", |
292 | #ifdef CONFIG_OF | ||
293 | .of_match_table = of_match_ptr(isl12022_dt_match), | ||
294 | #endif | ||
283 | }, | 295 | }, |
284 | .probe = isl12022_probe, | 296 | .probe = isl12022_probe, |
285 | .id_table = isl12022_id, | 297 | .id_table = isl12022_id, |