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

Commit f291c74a authored by Mark Brown's avatar Mark Brown
Browse files

Merge branch 'topic/suspend' of...

Merge branch 'topic/suspend' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator into regulator-sky81452

Conflicts:
	drivers/regulator/sky81452-regulator.c
parents 8b7daad3 5e5e3a42
Loading
Loading
Loading
Loading
+22 −0
Original line number Original line Diff line number Diff line
@@ -19,6 +19,24 @@ Optional properties:
  design requires. This property describes the total system ramp time
  design requires. This property describes the total system ramp time
  required due to the combination of internal ramping of the regulator itself,
  required due to the combination of internal ramping of the regulator itself,
  and board design issues such as trace capacitance and load on the supply.
  and board design issues such as trace capacitance and load on the supply.
- regulator-state-mem sub-root node for Suspend-to-RAM mode
  : suspend to memory, the device goes to sleep, but all data stored in memory,
  only some external interrupt can wake the device.
- regulator-state-disk sub-root node for Suspend-to-DISK mode
  : suspend to disk, this state operates similarly to Suspend-to-RAM,
  but includes a final step of writing memory contents to disk.
- regulator-state-[mem/disk] node has following common properties:
	- regulator-on-in-suspend: regulator should be on in suspend state.
	- regulator-off-in-suspend: regulator should be off in suspend state.
	- regulator-suspend-microvolt: regulator should be set to this voltage
	  in suspend.
	- regulator-mode: operating mode in the given suspend state.
	  The set of possible operating modes depends on the capabilities of
	  every hardware so the valid modes are documented on each regulator
	  device tree binding document.
- regulator-initial-mode: initial operating mode. The set of possible operating
  modes depends on the capabilities of every hardware so each device binding
  documentation explains which values the regulator supports.


Deprecated properties:
Deprecated properties:
- regulator-compatible: If a regulator chip contains multiple
- regulator-compatible: If a regulator chip contains multiple
@@ -34,6 +52,10 @@ Example:
		regulator-max-microvolt = <2500000>;
		regulator-max-microvolt = <2500000>;
		regulator-always-on;
		regulator-always-on;
		vin-supply = <&vin>;
		vin-supply = <&vin>;

		regulator-state-mem {
			regulator-on-in-suspend;
		};
	};
	};


Regulator Consumers:
Regulator Consumers:
+2 −1
Original line number Original line Diff line number Diff line
@@ -330,7 +330,8 @@ static int pm8607_regulator_dt_init(struct platform_device *pdev,
	for_each_child_of_node(nproot, np) {
	for_each_child_of_node(nproot, np) {
		if (!of_node_cmp(np->name, info->desc.name)) {
		if (!of_node_cmp(np->name, info->desc.name)) {
			config->init_data =
			config->init_data =
				of_get_regulator_init_data(&pdev->dev, np);
				of_get_regulator_init_data(&pdev->dev, np,
							   &info->desc);
			config->of_node = np;
			config->of_node = np;
			break;
			break;
		}
		}
+3 −2
Original line number Original line Diff line number Diff line
@@ -189,17 +189,18 @@ static int anatop_regulator_probe(struct platform_device *pdev)
	int ret = 0;
	int ret = 0;
	u32 val;
	u32 val;


	initdata = of_get_regulator_init_data(dev, np);
	sreg = devm_kzalloc(dev, sizeof(*sreg), GFP_KERNEL);
	sreg = devm_kzalloc(dev, sizeof(*sreg), GFP_KERNEL);
	if (!sreg)
	if (!sreg)
		return -ENOMEM;
		return -ENOMEM;
	sreg->initdata = initdata;
	sreg->name = of_get_property(np, "regulator-name", NULL);
	sreg->name = of_get_property(np, "regulator-name", NULL);
	rdesc = &sreg->rdesc;
	rdesc = &sreg->rdesc;
	rdesc->name = sreg->name;
	rdesc->name = sreg->name;
	rdesc->type = REGULATOR_VOLTAGE;
	rdesc->type = REGULATOR_VOLTAGE;
	rdesc->owner = THIS_MODULE;
	rdesc->owner = THIS_MODULE;


	initdata = of_get_regulator_init_data(dev, np, rdesc);
	sreg->initdata = initdata;

	anatop_np = of_get_parent(np);
	anatop_np = of_get_parent(np);
	if (!anatop_np)
	if (!anatop_np)
		return -ENODEV;
		return -ENODEV;
+5 −3
Original line number Original line Diff line number Diff line
@@ -179,7 +179,8 @@ static const struct regulator_init_data arizona_ldo1_default = {
};
};


static int arizona_ldo1_of_get_pdata(struct arizona *arizona,
static int arizona_ldo1_of_get_pdata(struct arizona *arizona,
				     struct regulator_config *config)
				     struct regulator_config *config,
				     const struct regulator_desc *desc)
{
{
	struct arizona_pdata *pdata = &arizona->pdata;
	struct arizona_pdata *pdata = &arizona->pdata;
	struct arizona_ldo1 *ldo1 = config->driver_data;
	struct arizona_ldo1 *ldo1 = config->driver_data;
@@ -194,7 +195,8 @@ static int arizona_ldo1_of_get_pdata(struct arizona *arizona,
	if (init_node) {
	if (init_node) {
		config->of_node = init_node;
		config->of_node = init_node;


		init_data = of_get_regulator_init_data(arizona->dev, init_node);
		init_data = of_get_regulator_init_data(arizona->dev, init_node,
						       desc);


		if (init_data) {
		if (init_data) {
			init_data->consumer_supplies = &ldo1->supply;
			init_data->consumer_supplies = &ldo1->supply;
@@ -257,7 +259,7 @@ static int arizona_ldo1_probe(struct platform_device *pdev)


	if (IS_ENABLED(CONFIG_OF)) {
	if (IS_ENABLED(CONFIG_OF)) {
		if (!dev_get_platdata(arizona->dev)) {
		if (!dev_get_platdata(arizona->dev)) {
			ret = arizona_ldo1_of_get_pdata(arizona, &config);
			ret = arizona_ldo1_of_get_pdata(arizona, &config, desc);
			if (ret < 0)
			if (ret < 0)
				return ret;
				return ret;
		}
		}
+5 −3
Original line number Original line Diff line number Diff line
@@ -198,7 +198,8 @@ static const struct regulator_init_data arizona_micsupp_ext_default = {
};
};


static int arizona_micsupp_of_get_pdata(struct arizona *arizona,
static int arizona_micsupp_of_get_pdata(struct arizona *arizona,
					struct regulator_config *config)
					struct regulator_config *config,
					const struct regulator_desc *desc)
{
{
	struct arizona_pdata *pdata = &arizona->pdata;
	struct arizona_pdata *pdata = &arizona->pdata;
	struct arizona_micsupp *micsupp = config->driver_data;
	struct arizona_micsupp *micsupp = config->driver_data;
@@ -210,7 +211,7 @@ static int arizona_micsupp_of_get_pdata(struct arizona *arizona,
	if (np) {
	if (np) {
		config->of_node = np;
		config->of_node = np;


		init_data = of_get_regulator_init_data(arizona->dev, np);
		init_data = of_get_regulator_init_data(arizona->dev, np, desc);


		if (init_data) {
		if (init_data) {
			init_data->consumer_supplies = &micsupp->supply;
			init_data->consumer_supplies = &micsupp->supply;
@@ -264,7 +265,8 @@ static int arizona_micsupp_probe(struct platform_device *pdev)


	if (IS_ENABLED(CONFIG_OF)) {
	if (IS_ENABLED(CONFIG_OF)) {
		if (!dev_get_platdata(arizona->dev)) {
		if (!dev_get_platdata(arizona->dev)) {
			ret = arizona_micsupp_of_get_pdata(arizona, &config);
			ret = arizona_micsupp_of_get_pdata(arizona, &config,
							   desc);
			if (ret < 0)
			if (ret < 0)
				return ret;
				return ret;
		}
		}
Loading