Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 420118d4 authored by Mark Brown's avatar Mark Brown
Browse files

Merge remote-tracking branch 'regulator/topic/alias' into regulator-next

parents 2a2bec65 32dadef2
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -283,6 +283,7 @@ REGULATOR
  devm_regulator_get()
  devm_regulator_put()
  devm_regulator_bulk_get()
  devm_regulator_register()

CLOCK
  devm_clk_get()
+0 −12
Original line number Diff line number Diff line
@@ -310,10 +310,6 @@ static struct regulator_consumer_supply wallvdd_consumers[] = {

	REGULATOR_SUPPLY("SPKVDDL", "spi0.1"),
	REGULATOR_SUPPLY("SPKVDDR", "spi0.1"),
	REGULATOR_SUPPLY("SPKVDDL", "wm5102-codec"),
	REGULATOR_SUPPLY("SPKVDDR", "wm5102-codec"),
	REGULATOR_SUPPLY("SPKVDDL", "wm5110-codec"),
	REGULATOR_SUPPLY("SPKVDDR", "wm5110-codec"),

	REGULATOR_SUPPLY("DC1VDD", "0-0034"),
	REGULATOR_SUPPLY("DC2VDD", "0-0034"),
@@ -653,14 +649,6 @@ static struct regulator_consumer_supply pvdd_1v8_consumers[] = {
	REGULATOR_SUPPLY("DBVDD3", "spi0.1"),
	REGULATOR_SUPPLY("LDOVDD", "spi0.1"),
	REGULATOR_SUPPLY("CPVDD", "spi0.1"),

	REGULATOR_SUPPLY("DBVDD2", "wm5102-codec"),
	REGULATOR_SUPPLY("DBVDD3", "wm5102-codec"),
	REGULATOR_SUPPLY("CPVDD", "wm5102-codec"),

	REGULATOR_SUPPLY("DBVDD2", "wm5110-codec"),
	REGULATOR_SUPPLY("DBVDD3", "wm5110-codec"),
	REGULATOR_SUPPLY("CPVDD", "wm5110-codec"),
};

static struct regulator_init_data pvdd_1v8 = {
+29 −3
Original line number Diff line number Diff line
@@ -569,13 +569,25 @@ static struct mfd_cell early_devs[] = {
	{ .name = "arizona-ldo1" },
};

static const char *wm5102_supplies[] = {
	"DBVDD2",
	"DBVDD3",
	"CPVDD",
	"SPKVDDL",
	"SPKVDDR",
};

static struct mfd_cell wm5102_devs[] = {
	{ .name = "arizona-micsupp" },
	{ .name = "arizona-extcon" },
	{ .name = "arizona-gpio" },
	{ .name = "arizona-haptics" },
	{ .name = "arizona-pwm" },
	{ .name = "wm5102-codec" },
	{
		.name = "wm5102-codec",
		.parent_supplies = wm5102_supplies,
		.num_parent_supplies = ARRAY_SIZE(wm5102_supplies),
	},
};

static struct mfd_cell wm5110_devs[] = {
@@ -584,7 +596,17 @@ static struct mfd_cell wm5110_devs[] = {
	{ .name = "arizona-gpio" },
	{ .name = "arizona-haptics" },
	{ .name = "arizona-pwm" },
	{ .name = "wm5110-codec" },
	{
		.name = "wm5110-codec",
		.parent_supplies = wm5102_supplies,
		.num_parent_supplies = ARRAY_SIZE(wm5102_supplies),
	},
};

static const char *wm8997_supplies[] = {
	"DBVDD2",
	"CPVDD",
	"SPKVDD",
};

static struct mfd_cell wm8997_devs[] = {
@@ -593,7 +615,11 @@ static struct mfd_cell wm8997_devs[] = {
	{ .name = "arizona-gpio" },
	{ .name = "arizona-haptics" },
	{ .name = "arizona-pwm" },
	{ .name = "wm8997-codec" },
	{
		.name = "wm8997-codec",
		.parent_supplies = wm8997_supplies,
		.num_parent_supplies = ARRAY_SIZE(wm8997_supplies),
	},
};

int arizona_dev_init(struct arizona *arizona)
+17 −5
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@
#include <linux/module.h>
#include <linux/irqdomain.h>
#include <linux/of.h>
#include <linux/regulator/consumer.h>

static struct device_type mfd_dev_type = {
	.name	= "mfd_device",
@@ -99,6 +100,13 @@ static int mfd_add_device(struct device *parent, int id,
	pdev->dev.dma_mask = parent->dma_mask;
	pdev->dev.dma_parms = parent->dma_parms;

	ret = devm_regulator_bulk_register_supply_alias(
			&pdev->dev, cell->parent_supplies,
			parent, cell->parent_supplies,
			cell->num_parent_supplies);
	if (ret < 0)
		goto fail_res;

	if (parent->of_node && cell->of_compatible) {
		for_each_child_of_node(parent->of_node, np) {
			if (of_device_is_compatible(np, cell->of_compatible)) {
@@ -112,12 +120,12 @@ static int mfd_add_device(struct device *parent, int id,
		ret = platform_device_add_data(pdev,
					cell->platform_data, cell->pdata_size);
		if (ret)
			goto fail_res;
			goto fail_alias;
	}

	ret = mfd_platform_add_cell(pdev, cell);
	if (ret)
		goto fail_res;
		goto fail_alias;

	for (r = 0; r < cell->num_resources; r++) {
		res[r].name = cell->resources[r].name;
@@ -152,17 +160,17 @@ static int mfd_add_device(struct device *parent, int id,
		if (!cell->ignore_resource_conflicts) {
			ret = acpi_check_resource_conflict(&res[r]);
			if (ret)
				goto fail_res;
				goto fail_alias;
		}
	}

	ret = platform_device_add_resources(pdev, res, cell->num_resources);
	if (ret)
		goto fail_res;
		goto fail_alias;

	ret = platform_device_add(pdev);
	if (ret)
		goto fail_res;
		goto fail_alias;

	if (cell->pm_runtime_no_callbacks)
		pm_runtime_no_callbacks(&pdev->dev);
@@ -171,6 +179,10 @@ static int mfd_add_device(struct device *parent, int id,

	return 0;

fail_alias:
	devm_regulator_bulk_unregister_supply_alias(&pdev->dev,
						    cell->parent_supplies,
						    cell->num_parent_supplies);
fail_res:
	kfree(res);
fail_device:
+2 −10
Original line number Diff line number Diff line
@@ -391,7 +391,8 @@ static int pm8607_regulator_probe(struct platform_device *pdev)
	else
		config.regmap = chip->regmap_companion;

	info->regulator = regulator_register(&info->desc, &config);
	info->regulator = devm_regulator_register(&pdev->dev, &info->desc,
						  &config);
	if (IS_ERR(info->regulator)) {
		dev_err(&pdev->dev, "failed to register regulator %s\n",
			info->desc.name);
@@ -402,14 +403,6 @@ static int pm8607_regulator_probe(struct platform_device *pdev)
	return 0;
}

static int pm8607_regulator_remove(struct platform_device *pdev)
{
	struct pm8607_regulator_info *info = platform_get_drvdata(pdev);

	regulator_unregister(info->regulator);
	return 0;
}

static struct platform_device_id pm8607_regulator_driver_ids[] = {
	{
		.name	= "88pm860x-regulator",
@@ -428,7 +421,6 @@ static struct platform_driver pm8607_regulator_driver = {
		.owner	= THIS_MODULE,
	},
	.probe		= pm8607_regulator_probe,
	.remove		= pm8607_regulator_remove,
	.id_table	= pm8607_regulator_driver_ids,
};

Loading