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

Commit a90f0e9e authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull regulator updates from Mark Brown:
 "Quite a lot going on with the regulator API for this release, much
  more in the core than in the drivers for a change:

   - Fixes for voltage change propagation through dumb power switches.

   - A notification when regulators are enabled.

   - A new settling time property for regulators where the time taken to
     move to a new voltage is not related to the size of the change.

   - Some reorganization of the Arizona drivers in preparation for
     sharing the code with the next generation devices they've been
     integrated with.

   - Support for newer Freescale chips in the Anatop regulator.

   - A new driver for voltage controlled regulators to cope with some
     exciting ChromeOS hardware designs.

   - Support for Rohm BD9571MWV-M and TI TPS65132"

* tag 'regulator-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (51 commits)
  regulator: Add ROHM BD9571MWV-M PMIC regulator driver
  regulator: arizona-ldo1: Factor out generic initialization
  regulator: arizona-ldo1: Make arizona_ldo1 independent of struct arizona
  regulator: arizona-ldo1: Move pdata into a separate structure
  regulator: arizona-micsupp: Factor out generic initialization
  regulator: arizona-micsupp: Make arizona_micsupp independent of struct arizona
  regulator: arizona-micsupp: Move pdata into a separate structure
  regulator: arizona: Split KConfig options for LDO1 and MICSUPP regulators
  regulator: anatop: make regulator name property required
  regulator: tps65023: Fix inverted core enable logic.
  regulator: anatop: make sure regulator name is properly defined
  regulator: core: Allow dummy regulators for supplies
  regulator: core: Only propagate voltage changes to if it can change voltages
  regulator: vctrl: Fix out of bounds array access for vctrl->vtable
  regulator: tps65132: fix platform_no_drv_owner.cocci warnings
  regulator: tps65132: Fix off-by-one for .max_register setting
  regulator: anatop: set default voltage selector for pcie
  regulator: tps65132: add device-tree binding
  regulator: tps65132: add regulator driver for TI TPS65132
  regulator: anatop: remove unneeded name field of struct anatop_regulator
  ...
parents 14b73072 ae53b5db
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ Anatop Voltage regulators

Required properties:
- compatible: Must be "fsl,anatop-regulator"
- regulator-name: A string used as a descriptive name for regulator outputs
- anatop-reg-offset: Anatop MFD register offset
- anatop-vol-bit-shift: Bit shift for the register
- anatop-vol-bit-width: Number of bits used in the register
+76 −2
Original line number Diff line number Diff line
@@ -8,8 +8,8 @@ Required property:

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.
  - enable-gpios: Two GPIO specifiers for Vpos and Vneg control pins.
                  The first entry is Vpos, the second is Vneg enable pin.

Child nodes:
  LM3631
@@ -30,5 +30,79 @@ Child nodes:

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

lm3631@29 {
	compatible = "ti,lm3631";
	reg = <0x29>;

	regulators {
		compatible = "ti,lm363x-regulator";

		vboost {
			regulator-name = "lcd_boost";
			regulator-min-microvolt = <4500000>;
			regulator-max-microvolt = <6350000>;
			regulator-always-on;
		};

		vcont {
			regulator-name = "lcd_vcont";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <3300000>;
		};

		voref {
			regulator-name = "lcd_voref";
			regulator-min-microvolt = <4000000>;
			regulator-max-microvolt = <6000000>;
		};

		vpos {
			regulator-name = "lcd_vpos";
			regulator-min-microvolt = <4000000>;
			regulator-max-microvolt = <6000000>;
			regulator-boot-on;
		};

		vneg {
			regulator-name = "lcd_vneg";
			regulator-min-microvolt = <4000000>;
			regulator-max-microvolt = <6000000>;
			regulator-boot-on;
		};
	};
};

lm3632@11 {
	compatible = "ti,lm3632";
	reg = <0x11>;

	regulators {
		compatible = "ti,lm363x-regulator";

		/* GPIO1_16 for Vpos, GPIO1_28 is for Vneg */
		enable-gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>,
				<&gpio1 28 GPIO_ACTIVE_HIGH>;

		vboost {
			regulator-name = "lcd_boost";
			regulator-min-microvolt = <4500000>;
			regulator-max-microvolt = <6400000>;
			regulator-always-on;
		};

		vpos {
			regulator-name = "lcd_vpos";
			regulator-min-microvolt = <4000000>;
			regulator-max-microvolt = <6000000>;
		};

		vneg {
			regulator-name = "lcd_vneg";
			regulator-min-microvolt = <4000000>;
			regulator-max-microvolt = <6000000>;
		};
	};
};

[1] ../regulator/regulator.txt
[2] ../mfd/ti-lmu.txt
+7 −1
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ Required child node:
  --PFUZE100
  sw1ab,sw1c,sw2,sw3a,sw3b,sw4,swbst,vsnvs,vrefddr,vgen1~vgen6
  --PFUZE200
  sw1ab,sw2,sw3a,sw3b,swbst,vsnvs,vrefddr,vgen1~vgen6
  sw1ab,sw2,sw3a,sw3b,swbst,vsnvs,vrefddr,vgen1~vgen6,coin
  --PFUZE3000
  sw1a,sw1b,sw2,sw3,swbst,vsnvs,vrefddr,vldo1,vldo2,vccsd,v33,vldo3,vldo4

@@ -205,6 +205,12 @@ Example 2: PFUZE200
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			coin_reg: coin {
				regulator-min-microvolt = <2500000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};
		};
	};

+3 −0
Original line number Diff line number Diff line
@@ -21,6 +21,9 @@ 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-settling-time-us: Settling time, in microseconds, for voltage
  change if regulator have the constant time for any level voltage change.
  This is useful when regulator have exponential voltage change.
- regulator-soft-start: Enable soft start so that voltage ramps slowly
- 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,
+46 −0
Original line number Diff line number Diff line
TPS65132 regulators

Required properties:
- compatible: "ti,tps65132"
- reg: I2C slave address

Optional Subnode:
Device supports two regulators OUTP and OUTN. A sub node within the
   device node describe the properties of these regulators. The sub-node
   names must be as follows:
	-For regulator outp, the sub node name should be "outp".
	-For regulator outn, the sub node name should be "outn".

-enable-gpios:(active high, output) Regulators are controlled by the input pins.
   If it is connected to GPIO through host system then provide the
   gpio number as per gpio.txt.
-active-discharge-gpios: (active high, output) Some configurations use delay mechanisms
  on the enable pin, to keep the regulator enabled for some time after
  the enable signal goes low. This GPIO is used to actively discharge
  the delay mechanism. Requires specification of ti,active-discharge-time-us
-ti,active-discharge-time-us: how long the active discharge gpio should be
  asserted for during active discharge, in microseconds.

Each regulator is defined using the standard binding for regulators.

Example:

	tps65132@3e {
		compatible = "ti,tps65132";
		reg = <0x3e>;

		outp {
			regulator-name = "outp";
			regulator-boot-on;
			regulator-always-on;
			enable-gpios = <&gpio 23 0>;
		};

		outn {
			regulator-name = "outn";
			regulator-boot-on;
			regulator-always-on;
			regulator-active-discharge = <0>;
			enable-gpios = <&gpio 40 0>;
		};
	};
Loading