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

Commit 8b0cab14 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull regulator updates from Mark Brown:
 "A fairly quiet release again, a couple of relatively small new
  features and a bunch of driver specific work including yet more code
  elimination and fixes from Axel Lin.

   - Addidion of linear_min_sel for offsetting linear selectors in the
     helpers.
   - Support for continuous voltage ranges for regulators with extremely
     high resolution.
   - Drivers for AS3711, DA9055, MAX9873, TPS51632, TPS80031 and ARM
     vexpress."

Fix up trivial conflict (due to typo fix) in palmas-regulator.c

* tag 'regulator-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (80 commits)
  regulator: core: Fix logic to determinate if regulator can change voltage
  regulator: s5m8767: Fix to work even if no DVS gpio present
  regulator: s5m8767: Fix to read the first DVS register.
  regulator: s5m8767: Fix to work when platform registers less regulators
  regulator: gpio-regulator: gpio_set_value should use cansleep
  regulator: gpio-regulator: Fix logical error in for() loop
  regulator: anatop: Use regulator_[get|set]_voltage_sel_regmap
  regulator: anatop: Use linear_min_sel with linear mapping
  regulator: max1586: Implement get_voltage_sel callback
  regulator: lp8788-buck: Kill _gpio_request function
  regulator: tps80031: Convert tps80031_ldo_ops to linear_min_sel and list_voltage_linear
  regulator: lp8788-ldo: Remove val array in lp8788_config_ldo_enable_mode
  regulator: gpio-regulator: Add ifdef CONFIG_OF guard for regulator_gpio_of_match
  regulator: palmas: Convert palmas_ops_smps to regulator_[get|set]_voltage_sel_regmap
  regulator: palmas: Return raw register values as the selectors in [get|set]_voltage_sel
  regulators: add regulator_can_change_voltage() function
  regulator: tps51632: Ensure [base|max]_voltage_uV pdata settings are valid
  regulator: wm831x-dcdc: Add MODULE_ALIAS for wm831x-boostp
  regulator: wm831x-dcdc: Ensure selected voltage falls within requested range
  regulator: tps51632: Use linear_min_sel and regulator_[map|list]_voltage_linear
  ...
parents fd62c545 4ffc45c3
Loading
Loading
Loading
Loading
+37 −0
Original line number Diff line number Diff line
GPIO controlled regulators

Required properties:
- compatible		: Must be "regulator-gpio".
- states		: Selection of available voltages and GPIO configs.
                          if there are no states, then use a fixed regulator

Optional properties:
- enable-gpio		: GPIO to use to enable/disable the regulator.
- gpios			: GPIO group used to control voltage.
- startup-delay-us	: Startup time in microseconds.
- enable-active-high	: Polarity of GPIO is active high (default is low).

Any property defined as part of the core regulator binding defined in
regulator.txt can also be used.

Example:

	mmciv: gpio-regulator {
		compatible = "regulator-gpio";

		regulator-name = "mmci-gpio-supply";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <2600000>;
		regulator-boot-on;

		enable-gpio = <&gpio0 23 0x4>;
		gpios = <&gpio0 24 0x4
			 &gpio0 25 0x4>;
		states = <1800000 0x3
			  2200000 0x2
			  2600000 0x1
			  2900000 0x0>;

		startup-delay-us = <100000>;
		enable-active-high;
	};
+40 −0
Original line number Diff line number Diff line
Max8925 Voltage regulators

Required nodes:
-nodes:
  - SDV1 for SDV SDV1
  - SDV2 for SDV SDV2
  - SDV3 for SDV SDV3
  - LDO1 for LDO LDO1
  - LDO2 for LDO LDO2
  - LDO3 for LDO LDO3
  - LDO4 for LDO LDO4
  - LDO5 for LDO LDO5
  - LDO6 for LDO LDO6
  - LDO7 for LDO LDO7
  - LDO8 for LDO LDO8
  - LDO9 for LDO LDO9
  - LDO10 for LDO LDO10
  - LDO11 for LDO LDO11
  - LDO12 for LDO LDO12
  - LDO13 for LDO LDO13
  - LDO14 for LDO LDO14
  - LDO15 for LDO LDO15
  - LDO16 for LDO LDO16
  - LDO17 for LDO LDO17
  - LDO18 for LDO LDO18
  - LDO19 for LDO LDO19
  - LDO20 for LDO LDO20

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

Example:

	SDV1 {
		regulator-min-microvolt = <637500>;
		regulator-max-microvolt = <1425000>;
		regulator-boot-on;
		regulator-always-on;
	};
+146 −0
Original line number Diff line number Diff line
* Maxim MAX8997 Voltage and Current Regulator

The Maxim MAX8997 is a multi-function device which includes volatage and
current regulators, rtc, charger controller and other sub-blocks. It is
interfaced to the host controller using a i2c interface. Each sub-block is
addressed by the host system using different i2c slave address. This document
describes the bindings for 'pmic' sub-block of max8997.

Required properties:
- compatible: Should be "maxim,max8997-pmic".
- reg: Specifies the i2c slave address of the pmic block. It should be 0x66.

- max8997,pmic-buck1-dvs-voltage: A set of 8 voltage values in micro-volt (uV)
  units for buck1 when changing voltage using gpio dvs. Refer to [1] below
  for additional information.

- max8997,pmic-buck2-dvs-voltage: A set of 8 voltage values in micro-volt (uV)
  units for buck2 when changing voltage using gpio dvs. Refer to [1] below
  for additional information.

- max8997,pmic-buck5-dvs-voltage: A set of 8 voltage values in micro-volt (uV)
  units for buck5 when changing voltage using gpio dvs. Refer to [1] below
  for additional information.

[1] If none of the 'max8997,pmic-buck[1/2/5]-uses-gpio-dvs' optional
    property is specified, the 'max8997,pmic-buck[1/2/5]-dvs-voltage'
    property should specify atleast one voltage level (which would be a
    safe operating voltage).

    If either of the 'max8997,pmic-buck[1/2/5]-uses-gpio-dvs' optional
    property is specified, then all the eigth voltage values for the
    'max8997,pmic-buck[1/2/5]-dvs-voltage' should be specified.

Optional properties:
- interrupt-parent: Specifies the phandle of the interrupt controller to which
  the interrupts from max8997 are delivered to.
- interrupts: Interrupt specifiers for two interrupt sources.
  - First interrupt specifier is for 'irq1' interrupt.
  - Second interrupt specifier is for 'alert' interrupt.
- max8997,pmic-buck1-uses-gpio-dvs: 'buck1' can be controlled by gpio dvs.
- max8997,pmic-buck2-uses-gpio-dvs: 'buck2' can be controlled by gpio dvs.
- max8997,pmic-buck5-uses-gpio-dvs: 'buck5' can be controlled by gpio dvs.

Additional properties required if either of the optional properties are used:
- max8997,pmic-ignore-gpiodvs-side-effect: When GPIO-DVS mode is used for
  multiple bucks, changing the voltage value of one of the bucks may affect
  that of another buck, which is the side effect of the change (set_voltage).
  Use this property to ignore such side effects and change the voltage.

- max8997,pmic-buck125-default-dvs-idx: Default voltage setting selected from
  the possible 8 options selectable by the dvs gpios. The value of this
  property should be between 0 and 7. If not specified or if out of range, the
  default value of this property is set to 0.

- max8997,pmic-buck125-dvs-gpios: GPIO specifiers for three host gpio's used
  for dvs. The format of the gpio specifier depends in the gpio controller.

Regulators: The regulators of max8997 that have to be instantiated should be
included in a sub-node named 'regulators'. Regulator nodes included in this
sub-node should be of the format as listed below.

	regulator_name {
		standard regulator bindings here
	};

The following are the names of the regulators that the max8997 pmic block
supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
as per the datasheet of max8997.

	- LDOn
		  - valid values for n are 1 to 18 and 21
		  - Example: LDO0, LD01, LDO2, LDO21
	- BUCKn
		  - valid values for n are 1 to 7.
		  - Example: BUCK1, BUCK2, BUCK3, BUCK7

	- ENVICHG: Battery Charging Current Monitor Output. This is a fixed
		   voltage type regulator

	- ESAFEOUT1: (ldo19)
	- ESAFEOUT2: (ld020)

	- CHARGER_CV: main battery charger voltage control
	- CHARGER: main battery charger current control
	- CHARGER_TOPOFF: end of charge current threshold level

The bindings inside the regulator nodes use the standard regulator bindings
which are documented elsewhere.

Example:

	max8997_pmic@66 {
		compatible = "maxim,max8997-pmic";
		interrupt-parent = <&wakeup_eint>;
		reg = <0x66>;
		interrupts = <4 0>, <3 0>;

		max8997,pmic-buck1-uses-gpio-dvs;
		max8997,pmic-buck2-uses-gpio-dvs;
		max8997,pmic-buck5-uses-gpio-dvs;

		max8997,pmic-ignore-gpiodvs-side-effect;
		max8997,pmic-buck125-default-dvs-idx = <0>;

		max8997,pmic-buck125-dvs-gpios = <&gpx0 0 1 0 0>, /* SET1 */
						 <&gpx0 1 1 0 0>, /* SET2 */
						 <&gpx0 2 1 0 0>; /* SET3 */

		max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
						 <1250000>, <1200000>,
						 <1150000>, <1100000>,
						 <1000000>, <950000>;

		max8997,pmic-buck2-dvs-voltage = <1100000>, <1100000>,
						 <1100000>, <1100000>,
						 <1000000>, <1000000>,
						 <1000000>, <1000000>;

		max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
						 <1200000>, <1200000>,
						 <1200000>, <1200000>,
						 <1200000>, <1200000>;

		regulators {
			ldo1_reg: LDO1 {
				regulator-name = "VDD_ABB_3.3V";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
			};

			ldo2_reg: LDO2 {
				regulator-name = "VDD_ALIVE_1.1V";
				regulator-min-microvolt = <1100000>;
				regulator-max-microvolt = <1100000>;
				regulator-always-on;
			};

			buck1_reg: BUCK1 {
				regulator-name = "VDD_ARM_1.2V";
				regulator-min-microvolt = <950000>;
				regulator-max-microvolt = <1350000>;
				regulator-always-on;
				regulator-boot-on;
			};
		};
	};
+32 −0
Original line number Diff line number Diff line
Versatile Express voltage regulators
------------------------------------

Requires node properties:
- "compatible" value: "arm,vexpress-volt"
- "arm,vexpress-sysreg,func" when controlled via vexpress-sysreg
  (see Documentation/devicetree/bindings/arm/vexpress-sysreg.txt
  for more details)

Required regulator properties:
- "regulator-name"
- "regulator-always-on"

Optional regulator properties:
- "regulator-min-microvolt"
- "regulator-max-microvolt"

See Documentation/devicetree/bindings/regulator/regulator.txt
for more details about the regulator properties.

When no "regulator-[min|max]-microvolt" properties are defined,
the device is treated as fixed (or rather "read-only") regulator.

Example:
	volt@0 {
		compatible = "arm,vexpress-volt";
		arm,vexpress-sysreg,func = <2 0>;
		regulator-name = "Cores";
		regulator-min-microvolt = <800000>;
		regulator-max-microvolt = <1050000>;
		regulator-always-on;
	};
+0 −1
Original line number Diff line number Diff line
@@ -211,7 +211,6 @@ config MFD_TPS6586X
	depends on I2C=y && GENERIC_HARDIRQS
	select MFD_CORE
	select REGMAP_I2C
	depends on REGULATOR
	help
	  If you say yes here you get support for the TPS6586X series of
	  Power Management chips.
Loading