summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-05-04 08:45:24 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-05-04 08:45:24 -0700
commit2cba7631042e148b68e0af9f575dd70e4bb813c1 (patch)
tree092f967cfed81b3140994967741bb2cbb450e4bf /drivers
parenta18fb0347b76f1bcd9b950ff06c615ec6c38e7c4 (diff)
parent8f48ec6a5abca8351e6511c51bc6bb1e247bbdab (diff)
Merge "regulator: onsemi-ncp6335d: Add is_enabled API support"
Diffstat (limited to 'drivers')
-rw-r--r--drivers/regulator/onsemi-ncp6335d.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/drivers/regulator/onsemi-ncp6335d.c b/drivers/regulator/onsemi-ncp6335d.c
index 595fde1c825f..3b4ca4f81527 100644
--- a/drivers/regulator/onsemi-ncp6335d.c
+++ b/drivers/regulator/onsemi-ncp6335d.c
@@ -153,6 +153,20 @@ static void ncp633d_slew_delay(struct ncp6335d_info *dd,
udelay(delay);
}
+static int ncp6335d_is_enabled(struct regulator_dev *rdev)
+{
+ int rc, val = 0;
+ struct ncp6335d_info *dd = rdev_get_drvdata(rdev);
+
+ rc = ncp6335x_read(dd, dd->vsel_reg, &val);
+ if (rc)
+ dev_err(dd->dev, "Unable to read enable register rc(%d)", rc);
+
+ dump_registers(dd, dd->vsel_reg, __func__);
+
+ return ((val & NCP6335D_ENABLE) ? 1 : 0);
+}
+
static int ncp6335d_enable(struct regulator_dev *rdev)
{
int rc;
@@ -297,6 +311,7 @@ static struct regulator_ops ncp6335d_ops = {
.set_voltage = ncp6335d_set_voltage,
.get_voltage = ncp6335d_get_voltage,
.list_voltage = ncp6335d_list_voltage,
+ .is_enabled = ncp6335d_is_enabled,
.enable = ncp6335d_enable,
.disable = ncp6335d_disable,
.set_mode = ncp6335d_set_mode,
@@ -305,6 +320,7 @@ static struct regulator_ops ncp6335d_ops = {
static struct regulator_desc rdesc = {
.name = "ncp6335d",
+ .supply_name = "vin",
.owner = THIS_MODULE,
.n_voltages = NCP6335D_VOLTAGE_STEPS,
.ops = &ncp6335d_ops,
@@ -748,7 +764,7 @@ int __init ncp6335d_regulator_init(void)
return i2c_add_driver(&ncp6335d_regulator_driver);
}
EXPORT_SYMBOL(ncp6335d_regulator_init);
-arch_initcall(ncp6335d_regulator_init);
+subsys_initcall(ncp6335d_regulator_init);
static void __exit ncp6335d_regulator_exit(void)
{