Commit 71e03de4 authored by Steve Twiss's avatar Steve Twiss Committed by Lee Jones

mfd: da9063: Add device tree support

Add device tree support for DA9063 regulators; Real-Time Clock
and Watchdog.
Signed-off-by: default avatarSteve Twiss <stwiss.opensource@diasemi.com>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent 80392682
...@@ -86,6 +86,7 @@ static const struct mfd_cell da9063_devs[] = { ...@@ -86,6 +86,7 @@ static const struct mfd_cell da9063_devs[] = {
}, },
{ {
.name = DA9063_DRVNAME_WATCHDOG, .name = DA9063_DRVNAME_WATCHDOG,
.of_compatible = "dlg,da9063-watchdog",
}, },
{ {
.name = DA9063_DRVNAME_HWMON, .name = DA9063_DRVNAME_HWMON,
...@@ -101,6 +102,7 @@ static const struct mfd_cell da9063_devs[] = { ...@@ -101,6 +102,7 @@ static const struct mfd_cell da9063_devs[] = {
.name = DA9063_DRVNAME_RTC, .name = DA9063_DRVNAME_RTC,
.num_resources = ARRAY_SIZE(da9063_rtc_resources), .num_resources = ARRAY_SIZE(da9063_rtc_resources),
.resources = da9063_rtc_resources, .resources = da9063_rtc_resources,
.of_compatible = "dlg,da9063-rtc",
}, },
{ {
.name = DA9063_DRVNAME_VIBRATION, .name = DA9063_DRVNAME_VIBRATION,
......
...@@ -25,6 +25,9 @@ ...@@ -25,6 +25,9 @@
#include <linux/mfd/da9063/pdata.h> #include <linux/mfd/da9063/pdata.h>
#include <linux/mfd/da9063/registers.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[] = { static const struct regmap_range da9063_ad_readable_ranges[] = {
{ {
.range_min = DA9063_REG_PAGE_CON, .range_min = DA9063_REG_PAGE_CON,
...@@ -203,6 +206,11 @@ static struct regmap_config da9063_regmap_config = { ...@@ -203,6 +206,11 @@ static struct regmap_config da9063_regmap_config = {
.cache_type = REGCACHE_RBTREE, .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, static int da9063_i2c_probe(struct i2c_client *i2c,
const struct i2c_device_id *id) const struct i2c_device_id *id)
{ {
...@@ -257,6 +265,7 @@ static struct i2c_driver da9063_i2c_driver = { ...@@ -257,6 +265,7 @@ static struct i2c_driver da9063_i2c_driver = {
.driver = { .driver = {
.name = "da9063", .name = "da9063",
.owner = THIS_MODULE, .owner = THIS_MODULE,
.of_match_table = of_match_ptr(da9063_dt_ids),
}, },
.probe = da9063_i2c_probe, .probe = da9063_i2c_probe,
.remove = da9063_i2c_remove, .remove = da9063_i2c_remove,
......
...@@ -36,6 +36,7 @@ enum da9063_models { ...@@ -36,6 +36,7 @@ enum da9063_models {
enum da9063_variant_codes { enum da9063_variant_codes {
PMIC_DA9063_AD = 0x3, PMIC_DA9063_AD = 0x3,
PMIC_DA9063_BB = 0x5, PMIC_DA9063_BB = 0x5,
PMIC_DA9063_CA = 0x6,
}; };
/* Interrupts */ /* Interrupts */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment