diff options
| author | Abhijeet Dharmapurikar <adharmap@codeaurora.org> | 2016-01-14 19:38:40 -0800 |
|---|---|---|
| committer | Rohit Vaswani <rvaswani@codeaurora.org> | 2016-03-01 12:22:40 -0800 |
| commit | d0f6370950d139c392de8ba3f11addd375bd7394 (patch) | |
| tree | aa08133ff7eaf98eda613955223dc16347440cff | |
| parent | 89b8a21c57d57f535f13b584aa6f151dbd9d23fe (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.c | 48 | ||||
| -rw-r--r-- | drivers/power/smb135x-charger.c | 45 |
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; |
