summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbhijeet Dharmapurikar <adharmap@codeaurora.org>2016-01-14 19:38:40 -0800
committerRohit Vaswani <rvaswani@codeaurora.org>2016-03-01 12:22:40 -0800
commitd0f6370950d139c392de8ba3f11addd375bd7394 (patch)
treeaa08133ff7eaf98eda613955223dc16347440cff
parent89b8a21c57d57f535f13b584aa6f151dbd9d23fe (diff)
power: smb135x: smb1351: avail of simpler regulator registration api
Change, a0c7b16 regulator: of: Provide simplified DT parsing method enables to register a regulator without constructing an regulator_init_data structure. The regulator_init_data is instantiated within the registration api and is filled with information by parsing the regualtor device node. Avail of this convenience while registering OTG regulators in the smb135x and smb1351 drivers. Change-Id: I2eb2866f9941db797ede1676e92bb87b4a23c925 Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
-rw-r--r--drivers/power/smb1351-charger.c48
-rw-r--r--drivers/power/smb135x-charger.c45
2 files changed, 33 insertions, 60 deletions
diff --git a/drivers/power/smb1351-charger.c b/drivers/power/smb1351-charger.c
index e1a98836366b..f12f78866877 100644
--- a/drivers/power/smb1351-charger.c
+++ b/drivers/power/smb1351-charger.c
@@ -868,39 +868,27 @@ struct regulator_ops smb1351_chg_otg_reg_ops = {
static int smb1351_regulator_init(struct smb1351_charger *chip)
{
int rc = 0;
- struct regulator_init_data *init_data;
struct regulator_config cfg = {};
- init_data = of_get_regulator_init_data(chip->dev, chip->dev->of_node);
- if (!init_data) {
- pr_err("Unable to allocate memory\n");
- return -ENOMEM;
+ chip->otg_vreg.rdesc.owner = THIS_MODULE;
+ chip->otg_vreg.rdesc.type = REGULATOR_VOLTAGE;
+ chip->otg_vreg.rdesc.ops = &smb1351_chg_otg_reg_ops;
+ chip->otg_vreg.rdesc.name =
+ chip->dev->of_node->name;
+ chip->otg_vreg.rdesc.of_match =
+ chip->dev->of_node->name;
+
+ cfg.dev = chip->dev;
+ cfg.driver_data = chip;
+
+ chip->otg_vreg.rdev = regulator_register(
+ &chip->otg_vreg.rdesc, &cfg);
+ if (IS_ERR(chip->otg_vreg.rdev)) {
+ rc = PTR_ERR(chip->otg_vreg.rdev);
+ chip->otg_vreg.rdev = NULL;
+ if (rc != -EPROBE_DEFER)
+ pr_err("OTG reg failed, rc=%d\n", rc);
}
-
- if (init_data->constraints.name) {
- chip->otg_vreg.rdesc.owner = THIS_MODULE;
- chip->otg_vreg.rdesc.type = REGULATOR_VOLTAGE;
- chip->otg_vreg.rdesc.ops = &smb1351_chg_otg_reg_ops;
- chip->otg_vreg.rdesc.name = init_data->constraints.name;
-
- cfg.dev = chip->dev;
- cfg.init_data = init_data;
- cfg.driver_data = chip;
- cfg.of_node = chip->dev->of_node;
-
- init_data->constraints.valid_ops_mask
- |= REGULATOR_CHANGE_STATUS;
-
- chip->otg_vreg.rdev = regulator_register(
- &chip->otg_vreg.rdesc, &cfg);
- if (IS_ERR(chip->otg_vreg.rdev)) {
- rc = PTR_ERR(chip->otg_vreg.rdev);
- chip->otg_vreg.rdev = NULL;
- if (rc != -EPROBE_DEFER)
- pr_err("OTG reg failed, rc=%d\n", rc);
- }
- }
-
return rc;
}
diff --git a/drivers/power/smb135x-charger.c b/drivers/power/smb135x-charger.c
index 6de9290f6c87..ed544b9be6bb 100644
--- a/drivers/power/smb135x-charger.c
+++ b/drivers/power/smb135x-charger.c
@@ -2348,38 +2348,23 @@ wrkarnd_and_input_current_values:
static int smb135x_regulator_init(struct smb135x_chg *chip)
{
int rc = 0;
- struct regulator_init_data *init_data;
struct regulator_config cfg = {};
- init_data = of_get_regulator_init_data(chip->dev, chip->dev->of_node);
- if (!init_data) {
- dev_err(chip->dev, "Unable to allocate memory\n");
- return -ENOMEM;
- }
-
- if (init_data->constraints.name) {
- chip->otg_vreg.rdesc.owner = THIS_MODULE;
- chip->otg_vreg.rdesc.type = REGULATOR_VOLTAGE;
- chip->otg_vreg.rdesc.ops = &smb135x_chg_otg_reg_ops;
- chip->otg_vreg.rdesc.name = init_data->constraints.name;
-
- cfg.dev = chip->dev;
- cfg.init_data = init_data;
- cfg.driver_data = chip;
- cfg.of_node = chip->dev->of_node;
-
- init_data->constraints.valid_ops_mask
- |= REGULATOR_CHANGE_STATUS;
-
- chip->otg_vreg.rdev = regulator_register(
- &chip->otg_vreg.rdesc, &cfg);
- if (IS_ERR(chip->otg_vreg.rdev)) {
- rc = PTR_ERR(chip->otg_vreg.rdev);
- chip->otg_vreg.rdev = NULL;
- if (rc != -EPROBE_DEFER)
- dev_err(chip->dev,
- "OTG reg failed, rc=%d\n", rc);
- }
+ chip->otg_vreg.rdesc.owner = THIS_MODULE;
+ chip->otg_vreg.rdesc.type = REGULATOR_VOLTAGE;
+ chip->otg_vreg.rdesc.ops = &smb135x_chg_otg_reg_ops;
+ chip->otg_vreg.rdesc.name = chip->dev->of_node->name;
+ chip->otg_vreg.rdesc.of_match = chip->dev->of_node->name;
+ cfg.dev = chip->dev;
+ cfg.driver_data = chip;
+
+ chip->otg_vreg.rdev = regulator_register(&chip->otg_vreg.rdesc, &cfg);
+ if (IS_ERR(chip->otg_vreg.rdev)) {
+ rc = PTR_ERR(chip->otg_vreg.rdev);
+ chip->otg_vreg.rdev = NULL;
+ if (rc != -EPROBE_DEFER)
+ dev_err(chip->dev,
+ "OTG reg failed, rc=%d\n", rc);
}
return rc;