rtc: abx80x: Add Device Tree matching table
[linux-2.6-microblaze.git] / drivers / rtc / rtc-abx80x.c
index 3521d8e..67bf3b8 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/bcd.h>
 #include <linux/i2c.h>
 #include <linux/module.h>
+#include <linux/of_device.h>
 #include <linux/rtc.h>
 #include <linux/watchdog.h>
 
@@ -863,9 +864,57 @@ static const struct i2c_device_id abx80x_id[] = {
 };
 MODULE_DEVICE_TABLE(i2c, abx80x_id);
 
+#ifdef CONFIG_OF
+static const struct of_device_id abx80x_of_match[] = {
+       {
+               .compatible = "abracon,abx80x",
+               .data = (void *)ABX80X
+       },
+       {
+               .compatible = "abracon,ab0801",
+               .data = (void *)AB0801
+       },
+       {
+               .compatible = "abracon,ab0803",
+               .data = (void *)AB0803
+       },
+       {
+               .compatible = "abracon,ab0804",
+               .data = (void *)AB0804
+       },
+       {
+               .compatible = "abracon,ab0805",
+               .data = (void *)AB0805
+       },
+       {
+               .compatible = "abracon,ab1801",
+               .data = (void *)AB1801
+       },
+       {
+               .compatible = "abracon,ab1803",
+               .data = (void *)AB1803
+       },
+       {
+               .compatible = "abracon,ab1804",
+               .data = (void *)AB1804
+       },
+       {
+               .compatible = "abracon,ab1805",
+               .data = (void *)AB1805
+       },
+       {
+               .compatible = "microcrystal,rv1805",
+               .data = (void *)RV1805
+       },
+       { }
+};
+MODULE_DEVICE_TABLE(of, abx80x_of_match);
+#endif
+
 static struct i2c_driver abx80x_driver = {
        .driver         = {
                .name   = "rtc-abx80x",
+               .of_match_table = of_match_ptr(abx80x_of_match),
        },
        .probe          = abx80x_probe,
        .id_table       = abx80x_id,