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

Commit ac180657 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull regulator updates from Mark Brown:
 "The major thing here is the addition of some helpers to factor code
  out of drivers, making a fair proportion of regulators much more just
  data rather than code which is nice.

  - Helpers in the core for regulators using regmap, providing generic
    implementations of the enable and voltage selection operations which
    just need data to describe them in the drivers.
  - Split out voltage mapping and voltage setting, allowing many more
    drivers to take advantage of the infrastructure for selectors.
  - Loads and loads of cleanups from Axel Lin once again, including many
    changes to take advantage of the above new framework features
  - New drivers for Ricoh RC5T583, TI TPS62362, TI TPS62363, TI
    TPS65913, TI TWL6035 and TI TWL6037.

  Some of the registration changes to support the core refactoring
  caused so many conflicts that eventually topic branches we...
parents ae82a828 84df8c12
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -8,6 +8,8 @@ Optional properties:
- startup-delay-us: startup time in microseconds
- enable-active-high: Polarity of GPIO is Active high
If this property is missing, the default assumed is Active low.
- gpio-open-drain: GPIO is open drain type.
  If this property is missing then default assumption is false.

Any property defined as part of the core regulator
binding, defined in regulator.txt, can also be used.
@@ -25,5 +27,6 @@ Example:
		gpio = <&gpio1 16 0>;
		startup-delay-us = <70000>;
		enable-active-high;
		regulator-boot-on
		regulator-boot-on;
		gpio-open-drain;
	};
+44 −0
Original line number Diff line number Diff line
TPS62360 Voltage regulators

Required properties:
- compatible: Must be one of the following.
	"ti,tps62360"
	"ti,tps62361",
	"ti,tps62362",
	"ti,tps62363",
- reg: I2C slave address

Optional properties:
- ti,enable-vout-discharge: Enable output discharge. This is boolean value.
- ti,enable-pull-down: Enable pull down. This is boolean value.
- ti,vsel0-gpio: GPIO for controlling VSEL0 line.
  If this property is missing, then assume that there is no GPIO
  for vsel0 control.
- ti,vsel1-gpio: Gpio for controlling VSEL1 line.
  If this property is missing, then assume that there is no GPIO
  for vsel1 control.
- ti,vsel0-state-high: Inital state of vsel0 input is high.
  If this property is missing, then assume the state as low (0).
- ti,vsel1-state-high: Inital state of vsel1 input is high.
  If this property is missing, then assume the state as low (0).

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

Example:

	abc: tps62360 {
		compatible = "ti,tps62361";
		reg =  <0x60>;
		regulator-name = "tps62361-vout";
		regulator-min-microvolt = <500000>;
		regulator-max-microvolt = <1500000>;
		regulator-boot-on
		ti,vsel0-gpio = <&gpio1 16 0>;
		ti,vsel1-gpio = <&gpio1 17 0>;
		ti,vsel0-state-high;
		ti,vsel1-state-high;
		ti,enable-pull-down;
		ti,enable-force-pwm;
		ti,enable-vout-discharge;
	};
+97 −0
Original line number Diff line number Diff line
TPS6586x family of regulators

Required properties:
- compatible: "ti,tps6586x"
- reg: I2C slave address
- interrupts: the interrupt outputs of the controller
- #gpio-cells: number of cells to describe a GPIO
- gpio-controller: mark the device as a GPIO controller
- regulators: list of regulators provided by this controller, must be named
  after their hardware counterparts: sm[0-2], ldo[0-9] and ldo_rtc

Each regulator is defined using the standard binding for regulators.

Example:

	pmu: tps6586x@34 {
		compatible = "ti,tps6586x";
		reg = <0x34>;
		interrupts = <0 88 0x4>;

		#gpio-cells = <2>;
		gpio-controller;

		regulators {
			sm0_reg: sm0 {
				regulator-min-microvolt = < 725000>;
				regulator-max-microvolt = <1500000>;
				regulator-boot-on;
				regulator-always-on;
			};

			sm1_reg: sm1 {
				regulator-min-microvolt = < 725000>;
				regulator-max-microvolt = <1500000>;
				regulator-boot-on;
				regulator-always-on;
			};

			sm2_reg: sm2 {
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <4550000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo0_reg: ldo0 {
				regulator-name = "PCIE CLK";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
			};

			ldo1_reg: ldo1 {
				regulator-min-microvolt = < 725000>;
				regulator-max-microvolt = <1500000>;
			};

			ldo2_reg: ldo2 {
				regulator-min-microvolt = < 725000>;
				regulator-max-microvolt = <1500000>;
			};

			ldo3_reg: ldo3 {
				regulator-min-microvolt = <1250000>;
				regulator-max-microvolt = <3300000>;
			};

			ldo4_reg: ldo4 {
				regulator-min-microvolt = <1700000>;
				regulator-max-microvolt = <2475000>;
			};

			ldo5_reg: ldo5 {
				regulator-min-microvolt = <1250000>;
				regulator-max-microvolt = <3300000>;
			};

			ldo6_reg: ldo6 {
				regulator-min-microvolt = <1250000>;
				regulator-max-microvolt = <3300000>;
			};

			ldo7_reg: ldo7 {
				regulator-min-microvolt = <1250000>;
				regulator-max-microvolt = <3300000>;
			};

			ldo8_reg: ldo8 {
				regulator-min-microvolt = <1250000>;
				regulator-max-microvolt = <3300000>;
			};

			ldo9_reg: ldo9 {
				regulator-min-microvolt = <1250000>;
				regulator-max-microvolt = <3300000>;
			};
		};
	};
+1 −2
Original line number Diff line number Diff line
@@ -11,8 +11,7 @@ Registration
Drivers can register a regulator by calling :-

struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc,
	struct device *dev, struct regulator_init_data *init_data,
	void *driver_data, struct device_node *of_node);
					 const struct regulator_config *config);

This will register the regulators capabilities and operations to the regulator
core.
+1 −0
Original line number Diff line number Diff line
@@ -162,6 +162,7 @@ config MFD_TPS6586X
	bool "TPS6586x Power Management chips"
	depends on I2C=y && GPIOLIB && GENERIC_HARDIRQS
	select MFD_CORE
	depends on REGULATOR
	help
	  If you say yes here you get support for the TPS6586X series of
	  Power Management chips.
Loading