mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 20:32:04 +09:00
regulator: rk818: remove the repeated operations.
Populates regulator_init_data structure by extracting data from device tree node, when regulator drivers register a regulator. so we don't repeat it. Change-Id: I481e7c802a24916f15c5b3a5eaf66f32dc0272d7 Signed-off-by: Shengfei xu <xsf@rock-chips.com>
This commit is contained in:
committed by
Gerrit Code Review
parent
8de0542fae
commit
5d24f68822
@@ -395,43 +395,16 @@ static struct of_regulator_match rk818_reg_matches[] = {
|
||||
[RK818_ID_SWITCH] = { .name = "SWITCH_REG" },
|
||||
};
|
||||
|
||||
static int rk818_regulator_dt_parse_pdata(struct device *dev,
|
||||
struct device *client_dev,
|
||||
struct regmap *map)
|
||||
{
|
||||
struct device_node *np;
|
||||
int ret;
|
||||
|
||||
np = of_get_child_by_name(client_dev->of_node, "regulators");
|
||||
if (!np)
|
||||
return -ENXIO;
|
||||
|
||||
ret = of_regulator_match(dev, np, rk818_reg_matches,
|
||||
RK818_NUM_REGULATORS);
|
||||
|
||||
of_node_put(np);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int rk818_regulator_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct rk808 *rk818 = dev_get_drvdata(pdev->dev.parent);
|
||||
struct i2c_client *client = rk818->i2c;
|
||||
struct regulator_config config = {};
|
||||
struct regulator_dev *rk818_rdev;
|
||||
int ret, i;
|
||||
|
||||
ret = rk818_regulator_dt_parse_pdata(&pdev->dev, &client->dev,
|
||||
rk818->regmap);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
int i;
|
||||
|
||||
/* Instantiate the regulators */
|
||||
for (i = 0; i < RK818_NUM_REGULATORS; i++) {
|
||||
if (!rk818_reg_matches[i].init_data ||
|
||||
!rk818_reg_matches[i].of_node)
|
||||
continue;
|
||||
|
||||
config.dev = &client->dev;
|
||||
config.regmap = rk818->regmap;
|
||||
config.of_node = rk818_reg_matches[i].of_node;
|
||||
|
||||
Reference in New Issue
Block a user