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

Commit 555f8160 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull regulator updates from Mark Brown:
 "This has been an extremely quiet release for the regulator API, aside
  from bugfixes and small enhancements the only thing that really stands
  out are the new drivers for Action Semiconductors ACT8945A, HiSilicon
  HI665x, and the Maxim MAX20024 and MAX77620"

* tag 'regulator-v4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (46 commits)
  regulator: pwm: Add support to have multiple instance of pwm regulator
  regulator: pwm: Fix calculation of voltage-to-duty cycle
  regulator: of: Use of_property_read_u32() for reading min/max
  regulator: pv88060: fix incorrect clear of event register
  regulator: pv88090: fix incorrect clear of event register
  regulator: max77620: Add support to configure active-discharge
  regulator: core: Add support for active-discharge configuration
  regulator: helper: Add helper to configure active-discharge using regmap
  regulator: core: Add support for active-discharge configuration
  regulator: DT: Add DT property for active-discharge configuration
  regulator: act8865: Specify fixed voltage of 3.3V for ACT8600's REG9
  regulator: act8865: Rename platform_data field to init_data
  regulator: act8865: Remove "static" from local variable
  ASoC: cs4271: add regulator consumer support
  regulator: max77620: Remove duplicate module alias
  regulator: max77620: Eliminate duplicate code
  regulator: max77620: Remove unused fields
  regulator: core: fix crash in error path of regulator_register
  regulator: core: Request GPIO before creating sysfs entries
  regulator: gpio: don't print error on EPROBE_DEFER
  ...
parents b7aae4a9 768e6668
Loading
Loading
Loading
Loading
+80 −0
Original line number Diff line number Diff line
Device-Tree bindings for regulators of Active-semi ACT8945A Multi-Function Device

Required properties:
 - compatible: "active-semi,act8945a", please refer to ../mfd/act8945a.txt.

Optional properties:
- active-semi,vsel-high: Indicates if the VSEL pin is set to logic-high.
  If this property is missing, assume the VSEL pin is set to logic-low.

Optional input supply properties:
  - vp1-supply: The input supply for REG_DCDC1
  - vp2-supply: The input supply for REG_DCDC2
  - vp3-supply: The input supply for REG_DCDC3
  - inl45-supply: The input supply for REG_LDO1 and REG_LDO2
  - inl67-supply: The input supply for REG_LDO3 and REG_LDO4

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

The valid names for regulators are:
	REG_DCDC1, REG_DCDC2, REG_DCDC3, REG_LDO1, REG_LDO2, REG_LDO3, REG_LDO4.

Example:
	pmic@5b {
		compatible = "active-semi,act8945a";
		reg = <0x5b>;
		status = "okay";

		active-semi,vsel-high;

		regulators {
			vdd_1v35_reg: REG_DCDC1 {
				regulator-name = "VDD_1V35";
				regulator-min-microvolt = <1350000>;
				regulator-max-microvolt = <1350000>;
				regulator-always-on;
			};

			vdd_1v2_reg: REG_DCDC2 {
				regulator-name = "VDD_1V2";
				regulator-min-microvolt = <1100000>;
				regulator-max-microvolt = <1300000>;
				regulator-always-on;
			};

			vdd_3v3_reg: REG_DCDC3 {
				regulator-name = "VDD_3V3";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			vdd_fuse_reg: REG_LDO1 {
				regulator-name = "VDD_FUSE";
				regulator-min-microvolt = <2500000>;
				regulator-max-microvolt = <2500000>;
				regulator-always-on;
			};

			vdd_3v3_lp_reg: REG_LDO2 {
				regulator-name = "VDD_3V3_LP";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			vdd_led_reg: REG_LDO3 {
				regulator-name = "VDD_LED";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			vdd_sdhc_1v8_reg: REG_LDO4 {
				regulator-name = "VDD_SDHC_1V8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
			};
		};
	};
+29 −0
Original line number Diff line number Diff line
Hisilicon Hi655x Voltage regulators

Note:
The Hi655x regulator control is managed by Hi655x PMIC.
So the node of this regulator must be child node of Hi655x
PMIC node.

The driver uses the regulator core framework, so please also
take the bindings of regulator.txt for reference.

The valid names for regulators are:

LDO2_2V8 LDO7_SDIO LDO10_2V85 LDO13_1V8 LDO14_2V8
LDO15_1V8 LDO17_2V5 LDO19_3V0 LDO21_1V8 LDO22_1V2

Example:
        pmic: pmic@f8000000 {
                compatible = "hisilicon,hi655x-pmic";
		...
		regulators {
			ldo2: LDO2@a21 {
				regulator-name = "LDO2_2V8";
				regulator-min-microvolt = <2500000>;
				regulator-max-microvolt = <3200000>;
				regulator-enable-ramp-delay = <120>;
			};
			...
		}
	}
+1 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ Optional properties:
  - ti,dvs-gpio: GPIO specifier for external DVS pin control of LP872x devices.
  - ti,dvs-vsel: DVS selector. 0 = SEL_V1, 1 = SEL_V2.
  - ti,dvs-state: initial DVS pin state. 0 = DVS_LOW, 1 = DVS_HIGH.
  - enable-gpios: GPIO specifier for EN pin control of LP872x devices.

  Sub nodes for regulator_init_data
    LP8720 has maximum 6 nodes. (child name: ldo1 ~ 5 and buck)
+1 −1
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ 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
The valid modes list is defined in the dt-bindings/regulator/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
+200 −0
Original line number Diff line number Diff line
Regulator DT binding for MAX77620 Power management IC from Maxim Semiconductor.

Device has multiple DCDC(sd[0-3] and LDOs(ldo[0-8]). The input supply
of these regulators are defined under parent device node.
Details of regulator properties are defined as child node under
sub-node "regulators" which is child node of device node.

Please refer file <Documentation/devicetree/bindings/regulator/regulator.txt>
for common regulator bindings used by client.

Following are properties of parent node related to regulators.

Optional properties:
-------------------
The input supply of regulators are the optional properties on the
parent device node. The input supply of these regulators are provided
through following properties:
in-sd0-supply:		Input supply for SD0, INA-SD0 or INB-SD0 pins.
in-sd1-supply:		Input supply for SD1.
in-sd2-supply:		Input supply for SD2.
in-sd3-supply:		Input supply for SD3.
in-ldo0-1-supply:	Input supply for LDO0 and LDO1.
in-ldo2-supply:		Input supply for LDO2.
in-ldo3-5-supply:	Input supply for LDO3 and LDO5
in-ldo4-6-supply:	Input supply for LDO4 and LDO6.
in-ldo7-8-supply:	Input supply for LDO7 and LDO8.

Optional sub nodes for regulators under "regulators" subnode:
------------------------------------------------------------
The subnodes name is the name of regulator and it must be one of:
	sd[0-3], ldo[0-8]

Each sub-node should contain the constraints and initialization
information for that regulator. The definition for each of these
nodes is defined using the standard binding for regulators found at
<Documentation/devicetree/bindings/regulator/regulator.txt>.

Theres are also additional properties for SD/LDOs. These additional properties
are required to configure FPS configuration parameters for SDs and LDOs.
Please refer <devicetree/bindings/mfd/max77620.txt> for more detail of Flexible
Power Sequence (FPS).
Following are additional properties:

- maxim,active-fps-source:		FPS source for the regulators to get
					enabled/disabled when system is in
					active state.  Valid values are:
					- MAX77620_FPS_SRC_0,
						FPS source is FPS0.
					- MAX77620_FPS_SRC_1,
						FPS source is FPS1
					- MAX77620_FPS_SRC_2 and
						FPS source is FPS2
					- MAX77620_FPS_SRC_NONE.
						Regulator is not controlled
						by FPS events and it gets
						enabled/disabled by register
						access.
					Absence of this property will leave
					the FPS configuration register for that
					regulator to default configuration.

- maxim,active-fps-power-up-slot:	Sequencing event slot number on which
					the regulator get enabled when
					master FPS input event set to HIGH.
					Valid values are 0 to 7.
					This is applicable if FPS source is
					selected as FPS0, FPS1 or FPS2.
			
- maxim,active-fps-power-down-slot:	Sequencing event slot number on which
					the regulator get disabled when master
					FPS input event set to LOW.
					Valid values are 0 to 7.
					This is applicable if FPS source is
					selected as FPS0, FPS1 or FPS2.
			
- maxim,suspend-fps-source:		This is same as property
					"maxim,active-fps-source" but value
					get configured when system enters in
					to suspend state.

- maxim,suspend-fps-power-up-slot:	This is same as property
					"maxim,active-fps-power-up-slot" but
					this value get configured into FPS
					configuration register when system
					enters into suspend.
					This is applicable if suspend state
					FPS source is selected as FPS0, FPS1 or

- maxim,suspend-fps-power-down-slot:	This is same as property
					"maxim,active-fps-power-down-slot" but
					this value get configured into FPS
					configuration register when system
					enters into suspend.
					This is applicable if suspend state
					FPS source is selected as FPS0, FPS1 or
					FPS2.

Example:
--------
#include <dt-bindings/mfd/max77620.h>
...
max77620@3c {
	in-ldo0-1-supply = <&max77620_sd2>;
	in-ldo7-8-supply = <&max77620_sd2>;
	regulators {
		sd0 {
			regulator-name = "vdd-core";
			regulator-min-microvolt = <600000>;
			regulator-max-microvolt = <1400000>;
			regulator-boot-on;
			regulator-always-on;
			maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
		};

		sd1 {
			regulator-name = "vddio-ddr";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-always-on;
			regulator-boot-on;
			maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
		};

		sd2 {
			regulator-name = "vdd-pre-reg";
			regulator-min-microvolt = <1350000>;
			regulator-max-microvolt = <1350000>;
		};

		sd3 {
			regulator-name = "vdd-1v8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-always-on;
			regulator-boot-on;
		};

		ldo0 {
			regulator-name = "avdd-sys";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-always-on;
			regulator-boot-on;
		};

		ldo1 {
			regulator-name = "vdd-pex";
			regulator-min-microvolt = <1050000>;
			regulator-max-microvolt = <1050000>;
		};

		ldo2 {
			regulator-name = "vddio-sdmmc3";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <3300000>;
		};

		ldo3 {
			regulator-name = "vdd-cam-hv";
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <2800000>;
		};

		ldo4 {
			regulator-name = "vdd-rtc";
			regulator-min-microvolt = <1250000>;
			regulator-max-microvolt = <1250000>;
			regulator-always-on;
			regulator-boot-on;
		};

		ldo5 {
			regulator-name = "avdd-ts-hv";
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3000000>;
		};

		ldo6 {
			regulator-name = "vdd-ts";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-always-on;
			regulator-boot-on;
		};

		ldo7 {
			regulator-name = "vdd-gen-pll-edp";
			regulator-min-microvolt = <1050000>;
			regulator-max-microvolt = <1050000>;
			regulator-always-on;
			regulator-boot-on;
		};

		ldo8 {
			regulator-name = "vdd-hdmi-dp";
			regulator-min-microvolt = <1050000>;
			regulator-max-microvolt = <1050000>;
		};
	};
};
Loading