mfd: da9063: Add device tree support
authorSteve Twiss <stwiss.opensource@diasemi.com>
Tue, 20 Jan 2015 13:54:25 +0000 (13:54 +0000)
committerLee Jones <lee.jones@linaro.org>
Thu, 22 Jan 2015 16:04:04 +0000 (16:04 +0000)
Add device tree support for DA9063 regulators; Real-Time Clock
and Watchdog.

Signed-off-by: Steve Twiss <stwiss.opensource@diasemi.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/mfd/da9063-core.c
drivers/mfd/da9063-i2c.c
include/linux/mfd/da9063/core.h

index f38bc98..facd361 100644 (file)
@@ -86,6 +86,7 @@ static const struct mfd_cell da9063_devs[] = {
        },
        {
                .name           = DA9063_DRVNAME_WATCHDOG,
+               .of_compatible  = "dlg,da9063-watchdog",
        },
        {
                .name           = DA9063_DRVNAME_HWMON,
@@ -101,6 +102,7 @@ static const struct mfd_cell da9063_devs[] = {
                .name           = DA9063_DRVNAME_RTC,
                .num_resources  = ARRAY_SIZE(da9063_rtc_resources),
                .resources      = da9063_rtc_resources,
+               .of_compatible  = "dlg,da9063-rtc",
        },
        {
                .name           = DA9063_DRVNAME_VIBRATION,
index 21fd8d9..6f3a7c0 100644 (file)
@@ -25,6 +25,9 @@
 #include <linux/mfd/da9063/pdata.h>
 #include <linux/mfd/da9063/registers.h>
 
+#include <linux/of.h>
+#include <linux/regulator/of_regulator.h>
+
 static const struct regmap_range da9063_ad_readable_ranges[] = {
        {
                .range_min = DA9063_REG_PAGE_CON,
@@ -203,6 +206,11 @@ static struct regmap_config da9063_regmap_config = {
        .cache_type = REGCACHE_RBTREE,
 };
 
+static const struct of_device_id da9063_dt_ids[] = {
+       { .compatible = "dlg,da9063", },
+       { }
+};
+MODULE_DEVICE_TABLE(of, da9063_dt_ids);
 static int da9063_i2c_probe(struct i2c_client *i2c,
        const struct i2c_device_id *id)
 {
@@ -257,6 +265,7 @@ static struct i2c_driver da9063_i2c_driver = {
        .driver = {
                .name = "da9063",
                .owner = THIS_MODULE,
+               .of_match_table = of_match_ptr(da9063_dt_ids),
        },
        .probe    = da9063_i2c_probe,
        .remove   = da9063_i2c_remove,
index b92a326..79f4d82 100644 (file)
@@ -36,6 +36,7 @@ enum da9063_models {
 enum da9063_variant_codes {
        PMIC_DA9063_AD = 0x3,
        PMIC_DA9063_BB = 0x5,
+       PMIC_DA9063_CA = 0x6,
 };
 
 /* Interrupts */