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

Commit dc38787a authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull regulator updates from Mark Brown:
 "This is a quiet release in terms of code volume but a fairly big one
  in terms of framework changes - we've got one long awaited feature in
  the form of runtime configuration of suspend and the start of coupled
  regulator support too:

   - Support for modifying the voltage and enable configuration devices
     will have in suspend, contributed by Chunyan Zhang.

   - Support for the Spreadtrum SC2731, contributed by Erick Chen.

   - The start of changes to support coupled regulators from Maciej
     Purski, the rest of the series should arrive for v4.17"

* tag 'regulator-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
  regulator: Fix build error
  regulator: core: Refactor regulator_list_voltage()
  regulator: core: Move of_find_regulator_by_node() to of_regulator.c
  regulator: add PM suspend and resume hooks
  regulator: empty the old suspend functions
  regulator: leave one item to record whether regulator is enabled
  regulator: make regulator voltage be an array to support more states
  regulator: added support for suspend states
  regulator: qcom_spmi: Use regmap helpers for enable/disable/is_enabled callback
  regulator: sc2731: Fix defines for SC2731_WR_UNLOCK and SC2731_PWR_WR_PROT_VALUE
  regulator: fix incorrect indentation of two assignment statements
  regulator: sc2731: Add regulator driver to support Spreadtrum SC2731 PMIC
  regulator: Add Spreadtrum SC2731 regulator documentation
  regulator: Update code examples in documentation
  MAINTAINERS: regulator: Add Documentation/power/regulator/
  regulator: tps65218: Add NULL test for devm_kzalloc call
  regulator: tps65218: Remove unused enum tps65218_regulators
parents 8e326471 4e79f3f1
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -42,8 +42,16 @@ Optional properties:
- 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-suspend-min-microvolt: minimum voltage may be set in
	  suspend state.
	- regulator-suspend-max-microvolt: maximum voltage may be set in
	  suspend state.
	- regulator-suspend-microvolt: the default voltage which regulator
	  would be set in suspend. This property is now deprecated, instead
	  setting voltage for suspend mode via the API which regulator
	  driver provides is recommended.
	- regulator-changeable-in-suspend: whether the default voltage and
	  the regulator on/off in suspend can be changed in runtime.
	- 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
+43 −0
Original line number Diff line number Diff line
Spreadtrum SC2731 Voltage regulators

The SC2731 integrates low-voltage and low quiescent current DCDC/LDO.
14 LDO and 3 DCDCs are designed for external use. All DCDCs/LDOs have
their own bypass (power-down) control signals. External tantalum or MLCC
ceramic capacitors are recommended to use with these LDOs.

Required properties:
 - compatible: should be "sprd,sc27xx-regulator".

List of regulators provided by this controller. It is named according to
its regulator type, BUCK_<name> and LDO_<name>. The definition for each
of these nodes is defined using the standard binding for regulators at
Documentation/devicetree/bindings/regulator/regulator.txt.

The valid names for regulators are:
BUCK:
	BUCK_CPU0, BUCK_CPU1, BUCK_RF
LDO:
	LDO_CAMA0, LDO_CAMA1, LDO_CAMMOT, LDO_VLDO, LDO_EMMCCORE, LDO_SDCORE,
	LDO_SDIO, LDO_WIFIPA, LDO_USB33, LDO_CAMD0, LDO_CAMD1, LDO_CON,
	LDO_CAMIO, LDO_SRAM

Example:
	regulators {
		compatible = "sprd,sc27xx-regulator";

		vddarm0: BUCK_CPU0 {
			regulator-name = "vddarm0";
			regulator-min-microvolt = <400000>;
			regulator-max-microvolt = <1996875>;
			regulator-ramp-delay = <25000>;
			regulator-always-on;
		};

		vddcama0: LDO_CAMA0 {
			regulator-name = "vddcama0";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <3750000>;
			regulator-enable-ramp-delay = <100>;
		};
		...
	};
+16 −20
Original line number Diff line number Diff line
@@ -23,16 +23,12 @@ struct regulator_consumer_supply {
e.g. for the machine above

static struct regulator_consumer_supply regulator1_consumers[] = {
{
	.dev_name	= "dev_name(consumer B)",
	.supply		= "Vcc",
},};
	REGULATOR_SUPPLY("Vcc", "consumer B"),
};

static struct regulator_consumer_supply regulator2_consumers[] = {
{
	.dev	= "dev_name(consumer A"),
	.supply	= "Vcc",
},};
	REGULATOR_SUPPLY("Vcc", "consumer A"),
};

This maps Regulator-1 to the 'Vcc' supply for Consumer B and maps Regulator-2
to the 'Vcc' supply for Consumer A.
+1 −0
Original line number Diff line number Diff line
@@ -14670,6 +14670,7 @@ W: http://www.slimlogic.co.uk/?p=48
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git
S:	Supported
F:	Documentation/devicetree/bindings/regulator/
F:	Documentation/power/regulator/
F:	drivers/regulator/
F:	include/dt-bindings/regulator/
F:	include/linux/regulator/
+7 −0
Original line number Diff line number Diff line
@@ -744,6 +744,13 @@ config REGULATOR_S5M8767
	 via I2C bus. S5M8767A have 9 Bucks and 28 LDOs output and
	 supports DVS mode with 8bits of output voltage control.

config REGULATOR_SC2731
	tristate "Spreadtrum SC2731 power regulator driver"
	depends on MFD_SC27XX_PMIC || COMPILE_TEST
	help
	  This driver provides support for the voltage regulators on the
	  SC2731 PMIC.

config REGULATOR_SKY81452
	tristate "Skyworks Solutions SKY81452 voltage regulator"
	depends on MFD_SKY81452
Loading