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

Commit 4b43ea2a authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull regulator updates from Mark Brown:
 "Aside from a fix for a spurious warning (which caused more problems
  than it fixed in the fixing really) this is all driver updates,
  including new drivers for Dialog PV88060/90 and TI LM363x and TPS65086
  devices.  The qcom_smd driver has had PM8916 and PMA8084 support
  added"

* tag 'regulator-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (36 commits)
  regulator: core: remove some dead code
  regulator: core: use dev_to_rdev
  regulator: lp872x: Get rid of duplicate reference to DVS GPIO
  regulator: lp872x: Add missing of_match in regulators descriptions
  regulator: axp20x: Fix GPIO LDO enable value for AXP22x
  regulator: lp8788: constify regulator_ops structures
  regulator: wm8*: constify regulator_ops structures
  regulator: da9*: constify regulator_ops structures
  regulator: mt6311: Use REGCACHE_RBTREE
  regulator: tps65917/palmas: Add bypass ops for LDOs with bypass capability
  regulator: qcom-smd: Add support for PMA8084
  regulator: qcom-smd: Add PM8916 support
  soc: qcom: documentation: Update SMD/RPM Docs
  regulator: pv88090: logical vs bitwise AND typo
  regulator: pv88090: Fix irq leak
  regulator: pv88090: new regulator driver
  regulator: wm831x-ldo: Use platform_register/unregister_drivers()
  regulator: wm831x-dcdc: Use platform_register/unregister_drivers()
  regulator: lp8788-ldo: Use platform_register/unregister_drivers()
  regulator: core: Fix nested locking of supplies
  ...
parents 7aca74e7 d3bd4e0a
Loading
Loading
Loading
Loading
+34 −0
Original line number Original line Diff line number Diff line
TI LMU LM363x regulator device tree bindings

LM363x regulator driver supports LM3631 and LM3632.
LM3631 has five regulators and LM3632 supports three regulators.

Required property:
  - compatible: "ti,lm363x-regulator"

Optional properties:
  LM3632 has external enable pins for two LDOs.
  - ti,lcm-en1-gpio: A GPIO specifier for Vpos control pin.
  - ti,lcm-en2-gpio: A GPIO specifier for Vneg control pin.

Child nodes:
  LM3631
  - vboost
  - vcont
  - voref
  - vpos
  - vneg

  LM3632
  - vboost
  - vpos
  - vneg

  Optional properties of a child node:
  Each sub-node should contain the constraints and initialization.
  Please refer to [1].

Examples: Please refer to ti-lmu dt-bindings [2].

[1] ../regulator/regulator.txt
[2] ../mfd/ti-lmu.txt
+124 −0
Original line number Original line Diff line number Diff line
* Powerventure Semiconductor PV88060 Voltage Regulator

Required properties:
- compatible: "pvs,pv88060".
- 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, LDO1, LDO2, LDO3, LDO4, LDO5, LDO6, LDO7, SW1, SW2, SW3, SW4,
  SW5, and SW6.

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

Example

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

		regulators {
			BUCK1 {
				regulator-name = "buck1";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <4387500>;
				regulator-min-microamp 	= <1496000>;
				regulator-max-microamp 	= <4189000>;
				regulator-boot-on;
			};

			LDO1 {
				regulator-name = "ldo1";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3350000>;
				regulator-boot-on;
			};

			LDO2 {
				regulator-name = "ldo2";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3350000>;
				regulator-boot-on;
			};

			LDO3 {
				regulator-name = "ldo3";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3350000>;
				regulator-boot-on;
			};

			LDO4 {
				regulator-name = "ldo4";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3350000>;
				regulator-boot-on;
			};

			LDO5 {
				regulator-name = "ldo5";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3350000>;
				regulator-boot-on;
			};

			LDO6 {
				regulator-name = "ldo6";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3350000>;
				regulator-boot-on;
			};

			LDO7 {
				regulator-name = "ldo7";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3350000>;
				regulator-boot-on;
			};

			SW1 {
				regulator-name = "sw1";
				regulator-min-microvolt = <5000000>;
				regulator-max-microvolt = <5000000>;
			};

			SW2 {
				regulator-name = "sw2";
				regulator-min-microvolt = <5000000>;
				regulator-max-microvolt = <5000000>;
				regulator-boot-on;
			};

			SW3 {
				regulator-name = "sw3";
				regulator-min-microvolt = <5000000>;
				regulator-max-microvolt = <5000000>;
				regulator-boot-on;
			};

			SW4 {
				regulator-name = "sw4";
				regulator-min-microvolt = <5000000>;
				regulator-max-microvolt = <5000000>;
				regulator-boot-on;
			};

			SW5 {
				regulator-name = "sw5";
				regulator-min-microvolt = <5000000>;
				regulator-max-microvolt = <5000000>;
				regulator-boot-on;
			};

			SW6 {
				regulator-name = "sw6";
				regulator-min-microvolt = <5000000>;
				regulator-max-microvolt = <5000000>;
			};
		};
	};
 No newline at end of file
+65 −0
Original line number Original line Diff line number Diff line
* Powerventure Semiconductor PV88090 Voltage Regulator

Required properties:
- compatible: "pvs,pv88090".
- reg: I2C slave address, usually 0x48.
- 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, BUCK3, LDO1, and LDO2.

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

Example

	pmic: pv88090@48 {
		compatible = "pvs,pv88090";
		reg = <0x48>;
		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>;
				regulator-boot-on;
			};

			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 = <600000>;
				regulator-max-microvolt = <1393750>;
				regulator-min-microamp 	= <1496000>;
				regulator-max-microamp 	= <4189000>;
				regulator-boot-on;
			};

			LDO1 {
				regulator-name = "ldo1";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <4350000>;
				regulator-boot-on;
			};

			LDO2 {
				regulator-name = "ldo2";
				regulator-min-microvolt = < 650000>;
				regulator-max-microvolt = <2225000>;
				regulator-boot-on;
			};
		};
	};
+63 −21
Original line number Original line Diff line number Diff line
Qualcomm Resource Power Manager (RPM) over SMD
QCOM SMD RPM REGULATOR


This driver is used to interface with the Resource Power Manager (RPM) found in
The Qualcomm RPM over SMD regulator is modelled as a subdevice of the RPM.
various Qualcomm platforms. The RPM allows each component in the system to vote
Because SMD is used as the communication transport mechanism, the RPM resides as
for state of the system resources, such as clocks, regulators and bus
a subnode of the SMD.  As such, the SMD-RPM regulator requires that the SMD and
frequencies.
RPM nodes be present.


- compatible:
Please refer to Documentation/devicetree/bindings/soc/qcom/qcom,smd.txt for
	Usage: required
information pertaining to the SMD node.
	Value type: <string>
	Definition: must be one of:
		    "qcom,rpm-msm8974"


- qcom,smd-channels:
Please refer to Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt for
	Usage: required
information regarding the RPM node.
	Value type: <stringlist>
	Definition: Shared Memory channel used for communication with the RPM


= SUBDEVICES
== Regulator

The RPM exposes resources to its subnodes. The below bindings specify the set
of valid subnodes that can operate on these resources.

== Regulators


Regulator nodes are identified by their compatible:
Regulator nodes are identified by their compatible:


@@ -30,7 +20,9 @@ Regulator nodes are identified by their compatible:
	Value type: <string>
	Value type: <string>
	Definition: must be one of:
	Definition: must be one of:
		    "qcom,rpm-pm8841-regulators"
		    "qcom,rpm-pm8841-regulators"
		    "qcom,rpm-pm8916-regulators"
		    "qcom,rpm-pm8941-regulators"
		    "qcom,rpm-pm8941-regulators"
		    "qcom,rpm-pma8084-regulators"


- vdd_s1-supply:
- vdd_s1-supply:
- vdd_s2-supply:
- vdd_s2-supply:
@@ -45,6 +37,19 @@ Regulator nodes are identified by their compatible:
	Definition: reference to regulator supplying the input pin, as
	Definition: reference to regulator supplying the input pin, as
		    described in the data sheet
		    described in the data sheet


- vdd_s1-supply:
- vdd_s2-supply:
- vdd_s3-supply:
- vdd_s4-supply:
- vdd_l1_l2_l3-supply:
- vdd_l4_l5_l6-supply:
- vdd_l7-supply:
- vdd_l8_l9_l10_l11_l12_l13_l14_l15_l16_l17_l18-supply:
	Usage: optional (pm8916 only)
	Value type: <phandle>
	Definition: reference to regulator supplying the input pin, as
		    described in the data sheet

- vdd_s1-supply:
- vdd_s1-supply:
- vdd_s2-supply:
- vdd_s2-supply:
- vdd_s3-supply:
- vdd_s3-supply:
@@ -63,6 +68,35 @@ Regulator nodes are identified by their compatible:
	Definition: reference to regulator supplying the input pin, as
	Definition: reference to regulator supplying the input pin, as
		    described in the data sheet
		    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_l11-supply:
- vdd_l2_l3_l4_l27-supply:
- vdd_l5_l7-supply:
- vdd_l6_l12_l14_l15_l26-supply:
- vdd_l8-supply:
- vdd_l9_l10_l13_l20_l23_l24-supply:
- vdd_l16_l25-supply:
- vdd_l17-supply:
- vdd_l18-supply:
- vdd_l19-supply:
- vdd_l21-supply:
- vdd_l22-supply:
	Usage: optional (pma8084 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
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
sub-node is identified using the node's name, with valid values listed for each
of the pmics below.
of the pmics below.
@@ -70,11 +104,20 @@ of the pmics below.
pm8841:
pm8841:
	s1, s2, s3, s4, s5, s6, s7, s8
	s1, s2, s3, s4, s5, s6, s7, s8


pm8916:
	s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13,
	l14, l15, l16, l17, l18

pm8941:
pm8941:
	s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13,
	s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13,
	l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, lvs1, lvs2,
	l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, lvs1, lvs2,
	lvs3, 5vs1, 5vs2
	lvs3, 5vs1, 5vs2


pma8084:
	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, lvs1, lvs2, lvs3, lvs4, 5vs1

The content of each sub-node is defined by the standard binding for regulators -
The content of each sub-node is defined by the standard binding for regulators -
see regulator.txt.
see regulator.txt.


@@ -114,4 +157,3 @@ see regulator.txt.
			};
			};
		};
		};
	};
	};
+58 −0
Original line number Original line Diff line number Diff line
Qualcomm Resource Power Manager (RPM) over SMD

This driver is used to interface with the Resource Power Manager (RPM) found in
various Qualcomm platforms. The RPM allows each component in the system to vote
for state of the system resources, such as clocks, regulators and bus
frequencies.

The SMD information for the RPM edge should be filled out.  See qcom,smd.txt for
the required edge properties.  All SMD related properties will reside within the
RPM node itself.

= SUBDEVICES

The RPM exposes resources to its subnodes.  The rpm_requests node must be
present and this subnode may contain children that designate regulator
resources.

- compatible:
	Usage: required
	Value type: <string>
	Definition: must be one of:
		    "qcom,rpm-apq8084"
		    "qcom,rpm-msm8916"
		    "qcom,rpm-msm8974"

- qcom,smd-channels:
	Usage: required
	Value type: <string>
	Definition: must be "rpm_requests"

Refer to Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.txt
for information on the regulator subnodes that can exist under the rpm_requests.

Example:

	soc {
		apcs: syscon@f9011000 {
			compatible = "syscon";
			reg = <0xf9011000 0x1000>;
		};
	};

	smd {
		compatible = "qcom,smd";

		rpm {
			interrupts = <0 168 1>;
			qcom,ipc = <&apcs 8 0>;
			qcom,smd-edge = <15>;

			rpm_requests {
				compatible = "qcom,rpm-msm8974";
				qcom,smd-channels = "rpm_requests";

				...
			};
		};
	};
Loading