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

Commit f94784bd authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull regulator updates from Mark Brown:
 "The main thing this time around is support for suspend mode
  configuration from DT which will enable some very useful power savings
  on systems where we can't rely on the bootloader configuration.  We
  still don't really support dynamic configuration of this at runtime,
  that may come later if there is any demand.

  Summary:
   - Support for specifying the target regulation mode and voltage
     during system suspend via DT, enabling power savings in that mode.
   - Reduce the default verbosity of the logging on boot, improving boot
     times especially for systems with very large numbers of regulators.
   - Lots of cleanups and fixes for Maxim PMIC drivers.
   - New driver for Richtek RT5033"

* tag 'regulator-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (62 commits)
  regulator: core: Fix regualtor_ena_gpio_free not to access pin after freeing
  regulator: sky81452: Modify Device Tree structure
  regulator: sky81452: Modify Device Tree structure
  dt-bindings: Update documentation for "system-power-controller" and fix misspellings
  of: Rename "poweroff-source" property to "system-power-controller"
  regulator: max77686: Remove support for board files
  regulator: max77802: Remove support for board files
  regulator: max77802: Fill regulator modes translation callback
  regulator: max77802: Document binding for regulator operating modes
  regulator: of: Add support for parsing initial and suspend modes
  regulator: of: Pass the regulator description in the match table
  regulator: of: Add regulator desc param to of_get_regulator_init_data()
  regulator: Add mode mapping function to struct regulator_desc
  regulator: Document binding for initial and suspend modes
  regulator: core: Add PRE_DISABLE notification
  regulator: gpio: fix parsing of gpio list
  regulator: rpm: add support for RPM-controller SMB208
  regulator: da9063: Do not transform local IRQ to virtual
  regulator: sky81452: Modify dependent Kconfig symbol
  regulator: rt5033: Add RT5033 Regulator device driver
  ...
parents de740386 176488fb
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
* Generic system power control capability

Power-management integrated circuits or miscellaneous hardware components are
sometimes able to control the system power. The device driver associated with these
components might need to define this capability, which tells the kernel that
it can be used to switch off the system. The corresponding device must have the
standard property "system-power-controller" in its device node. This property
marks the device as able to control the system power. In order to test if this
property is found programmatically, use the helper function
"of_device_is_system_power_controller" from of.h .

Example:

act8846: act8846@5 {
	 compatible = "active-semi,act8846";
	 status = "okay";
	 system-power-controller;
}
+4 −0
Original line number Diff line number Diff line
@@ -5,6 +5,10 @@ Required properties:
- compatible: "active-semi,act8846" or "active-semi,act8865"
- reg: I2C slave address

Optional properties:
- system-power-controller: Telling whether or not this pmic is controlling
  the system power. See Documentation/devicetree/bindings/power/power-controller.txt .

Any standard regulator properties can be used to configure the single regulator.

The valid names for regulators are:
+35 −0
Original line number Diff line number Diff line
@@ -25,6 +25,29 @@ with their hardware counterparts as follow. The valid names are:
			example: LDO1, LDO2, LDO35.
	-BUCKn 	:	for BUCKs, where n can lie in range 1 to 10.
			example: BUCK1, BUCK5, BUCK10.

The max77802 regulator supports two different operating modes: Normal and Low
Power Mode. Some regulators support the modes to be changed at startup or by
the consumers during normal operation while others only support to change the
mode during system suspend. The standard regulator suspend states binding can
be used to configure the regulator operating mode.

The regulators that support the standard "regulator-initial-mode" property,
changing their mode during normal operation are: LDOs 1, 3, 20 and 21.

The possible values for "regulator-initial-mode" and "regulator-mode" are:
	1: Normal regulator voltage output mode.
	3: Low Power which reduces the quiescent current down to only 1uA

The list of valid modes are defined in the dt-bindings/clock/maxim,max77802.h
header and can be included by device tree source files.

The standard "regulator-mode" property can only be used for regulators that
support changing their mode to Low Power Mode during suspend. These regulators
are: BUCKs 2-4 and LDOs 1-35. Also, it only takes effect if the regulator has
been enabled for the given suspend state using "regulator-on-in-suspend" and
has not been disabled for that state using "regulator-off-in-suspend".

Example:

	max77802@09 {
@@ -36,11 +59,23 @@ Example:
		#size-cells = <0>;

		regulators {
			ldo1_reg: LDO1 {
				regulator-name = "vdd_1v0";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;
				regulator-initial-mode = <MAX77802_OPMODE_LP>;
			};

			ldo11_reg: LDO11 {
				regulator-name = "vdd_ldo11";
				regulator-min-microvolt = <1900000>;
				regulator-max-microvolt = <1900000>;
				regulator-always-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-mode = <MAX77802_OPMODE_LP>;
				};
			};

			buck1_reg: BUCK1 {
+22 −0
Original line number Diff line number Diff line
@@ -19,6 +19,24 @@ Optional properties:
  design requires. This property describes the total system ramp time
  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.
- 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:
- regulator-compatible: If a regulator chip contains multiple
@@ -34,6 +52,10 @@ Example:
		regulator-max-microvolt = <2500000>;
		regulator-always-on;
		vin-supply = <&vin>;

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

Regulator Consumers:
+6 −4
Original line number Diff line number Diff line
SKY81452 voltage regulator

Required properties:
- regulator node named lout.
- any required generic properties defined in regulator.txt

Optional properties:
@@ -9,8 +10,9 @@ Optional properties:
Example:

	regulator {
		/* generic regulator properties */
		regulator-name = "touch_en";
		lout {
			regulator-name = "sky81452-lout";
			regulator-min-microvolt = <4500000>;
			regulator-max-microvolt = <8000000>;
		};
	};
Loading