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

Commit 92d07a8f authored by Mark Brown's avatar Mark Brown
Browse files

Merge remote-tracking branches 'regulator/topic/max77686',...

Merge remote-tracking branches 'regulator/topic/max77686', 'regulator/topic/max77693', 'regulator/topic/max77802', 'regulator/topic/power-off' and 'regulator/topic/rk808' into regulator-next
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:
+2 −1
Original line number 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) {
		if (!of_node_cmp(np->name, info->desc.name)) {
			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;
			break;
		}
Loading