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

Commit d9dce51c authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull regulator updates from Mark Brown:
 "A few core enhancements to deal with some of the slightly more
  complicated edge cases that have started cropping up in systems, both
  new ones and old ones that people started worrying about upstream, but
  otherwise a quiet release for the regulator API:

   - When applying constraints at system image if we have a voltage
     range specified and the regulator is currently configured outside
     the bounds of that range bring the regulator to the nearest end of
     the range.

   - When regulators are in non-regulating bypass modes make sure that
     we always use the voltage from the parent regulator.

   - Support for LP873x, PV88080, PM8894 and FAN53555 chips"

* tag 'regulator-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (71 commits)
  regulator: rk808: Migrate to regulator core's simplified DT parsing code
  regulator: lp873x: Add support for lp873x PMIC regulators
  regulator: tps65917/palmas: Simplify multiple dereference of match->of_node
  regulator: tps65917/palmas: Handle possible memory allocation failure
  regulator: tps65917/palmas: Simplify multiple dereference of pdata->reg_init[idx]
  regulator: tps65917/palmas: Simplify multiple dereference of ddata->palmas_matches[idx]
  regulator: pwm: Use pwm_get_args() where appropriate
  pwm: Introduce the pwm_args concept
  regulator: max77686: Configure enable time to properly handle regulator enable
  regulator: rk808: Add rk808_reg_ops_ranges for LDO3
  regulator: core: Add early supply resolution for regulators
  regulator: axp20x: Fix axp22x ldo_io voltage ranges
  regulator: tps65917/palmas: Add bypass "On" value
  regulator: rk808: remove unused rk808_reg_ops_ranges
  regulator: refactor valid_ops_mask checking code
  regulator: rk808: remove linear range definitions with a single range
  regulator: max77620: Add support for device specific ramp rate setting
  regulator: max77620: Add details of device specific ramp rate setting
  regulator: helpers: Ensure bypass register field matches ON value
  regulator: core: Move registration of regulator device
  ...
parents e2ca5425 4f38c566
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -32,6 +32,13 @@ Optional properties:

Enhanced transient response (ETR) will affect the configuration of CKADV.

-junction-warn-millicelsius: u32, junction warning temperature threshold
		in millicelsius. If die temperature crosses this level then
		device generates the warning interrupts.

Please note that thermal functionality is only supported on MAX77621. The
supported threshold warning temperature for MAX77621 are 120 degC and 140 degC.

Example:

	max8973@1b {
+49 −0
Original line number Diff line number Diff line
* Powerventure Semiconductor PV88080 Voltage Regulator

Required properties:
- compatible: "pvs,pv88080".
- reg: I2C slave address, usually 0x49.
- interrupts: the interrupt outputs of the controller
- regulators: A node that houses a sub-node for each regulator within the
  device. Each sub-node is identified using the node's name, with valid
  values listed below. The content of each sub-node is defined by the
  standard binding for regulators; see regulator.txt.
  BUCK1, BUCK2, and BUCK3.

Optional properties:
- Any optional property defined in regulator.txt

Example

	pmic: pv88080@49 {
		compatible = "pvs,pv88080";
		reg = <0x49>;
		interrupt-parent = <&gpio>;
		interrupts = <24 24>;

		regulators {
			BUCK1 {
				regulator-name = "buck1";
				regulator-min-microvolt = < 600000>;
				regulator-max-microvolt = <1393750>;
				regulator-min-microamp 	= < 220000>;
				regulator-max-microamp 	= <7040000>;
			};

			BUCK2 {
				regulator-name = "buck2";
				regulator-min-microvolt = < 600000>;
				regulator-max-microvolt = <1393750>;
				regulator-min-microamp 	= <1496000>;
				regulator-max-microamp 	= <4189000>;
			};

			BUCK3 {
				regulator-name = "buck3";
				regulator-min-microvolt = <1400000>;
				regulator-max-microvolt = <2193750>;
				regulator-min-microamp 	= <1496000>;
				regulator-max-microamp 	= <4189000>;
			};
		};
	};
+37 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ Qualcomm SPMI Regulators
			"qcom,pm8841-regulators"
			"qcom,pm8916-regulators"
			"qcom,pm8941-regulators"
			"qcom,pm8994-regulators"

- interrupts:
	Usage: optional
@@ -68,6 +69,37 @@ Qualcomm SPMI Regulators
	Definition: Reference to regulator supplying the input pin, as
		    described in the data sheet.

- vdd_s1-supply:
- vdd_s2-supply:
- vdd_s3-supply:
- vdd_s4-supply:
- vdd_s5-supply:
- vdd_s6-supply:
- vdd_s7-supply:
- vdd_s8-supply:
- vdd_s9-supply:
- vdd_s10-supply:
- vdd_s11-supply:
- vdd_s12-supply:
- vdd_l1-supply:
- vdd_l2_l26_l28-supply:
- vdd_l3_l11-supply:
- vdd_l4_l27_l31-supply:
- vdd_l5_l7-supply:
- vdd_l6_l12_l32-supply:
- vdd_l8_l16_l30-supply:
- vdd_l9_l10_l18_l22-supply:
- vdd_l13_l19_l23_l24-supply:
- vdd_l14_l15-supply:
- vdd_l17_l29-supply:
- vdd_l20_l21-supply:
- vdd_l25-supply:
- vdd_lvs_1_2-supply:
	Usage: optional (pm8994 only)
	Value type: <phandle>
	Definition: Reference to regulator supplying the input pin, as
		    described in the data sheet.


The regulator node houses sub-nodes for each regulator within the device. Each
sub-node is identified using the node's name, with valid values listed for each
@@ -85,6 +117,11 @@ pm8941:
	l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, lvs1, lvs2, lvs3,
	mvs1, mvs2

pm8994:
	s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, l1, l2, l3, l4, l5,
	l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20,
	l21, l22, l23, l24, l25, l26, l27, l28, l29, l30, l31, l32, lvs1, lvs2

The content of each sub-node is defined by the standard binding for regulators -
see regulator.txt - with additional custom properties described below:

+22 −0
Original line number Diff line number Diff line
@@ -94,6 +94,28 @@ Following are additional properties:
					This is applicable if suspend state
					FPS source is selected as FPS0, FPS1 or
					FPS2.
- maxim,ramp-rate-setting:		integer, ramp rate(uV/us) setting to be
					configured to the device.
					The platform may have different ramp
					rate than advertised ramp rate if it has
					design variation from Maxim's
					recommended. On this case, platform
					specific ramp rate is used for ramp time
					calculation and this property is used
					for device register configurations.
					The measured ramp rate of platform is
					provided by the regulator-ramp-delay
					as described in <devicetree/bindings/
					regulator/regulator.txt>.
					Maxim Max77620 supports following ramp
					delay:
					  SD: 13.75mV/us, 27.5mV/us, 55mV/us
					  LDOs: 5mV/us, 100mV/us

Note: If the measured ramp delay is same as advertised ramp delay then it is not
required to provide the ramp delay with property "maxim,ramp-rate-setting". The
ramp rate can be provided by the regulator-ramp-delay which will be used for
ramp time calculation for voltage change as well as for device configuration.

Example:
--------
+5 −5
Original line number Diff line number Diff line
@@ -14,8 +14,8 @@ Required Properties:
  - "setup-address"	- contains setup register address of ABB module (ti,abb-v3)
  - "int-address"	- contains address of interrupt register for ABB module
  (also see Optional properties)
- #address-cell: should be 0
- #size-cell: should be 0
- #address-cells: should be 0
- #size-cells: should be 0
- clocks: should point to the clock node used by ABB module
- ti,settling-time: Settling time in uSecs from SoC documentation for ABB module
	to settle down(target time for SR2_WTCNT_VALUE).
@@ -69,7 +69,7 @@ Example #1: Simplest configuration (no efuse data, hard coded ABB table):
abb_x: regulator-abb-x {
	compatible = "ti,abb-v1";
	regulator-name = "abb_x";
	#address-cell = <0>;
	#address-cells = <0>;
	#size-cells = <0>;
	reg = <0x483072f0 0x8>, <0x48306818 0x4>;
	reg-names = "base-address", "int-address";
@@ -89,7 +89,7 @@ Example #2: Efuse bits contain ABB mode setting (no LDO override capability)
abb_y: regulator-abb-y {
	compatible = "ti,abb-v2";
	regulator-name = "abb_y";
	#address-cell = <0>;
	#address-cells = <0>;
	#size-cells = <0>;
	reg = <0x4a307bd0 0x8>, <0x4a306014 0x4>, <0x4A002268 0x8>;
	reg-names = "base-address", "int-address", "efuse-address";
@@ -110,7 +110,7 @@ Example #3: Efuse bits contain ABB mode setting and LDO override capability
abb_z: regulator-abb-z {
	compatible = "ti,abb-v2";
	regulator-name = "abb_z";
	#address-cell = <0>;
	#address-cells = <0>;
	#size-cells = <0>;
	reg = <0x4ae07ce4 0x8>, <0x4ae06010 0x4>,
	      <0x4a002194 0x8>, <0x4ae0C314 0x4>;
Loading