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

Commit ec1882a9 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull regulator updates from Mark Brown:
 "Not much exciting going on with the regulator API this time around,
  lots of driver fixes and enhancements - the main thing is the addition
  of a new API to help make the stubbing code do the right thing for
  missing regulator mappings.

  Highlights:

   - A new regulator_get_optional() API call for regulators that can be
     absent in normal operation.  This currently does nothing but will
     be used to improve the stubbing code for unspecified regulators,
     helping avoid some of the issues we've seen with adding new
     regulator support.
   - Helpers for devices with multiple linear ranges of voltages in the
     same regulator.
   - Moved the helpers into a separate file since core.c is getting
     rather large.
   - New drivers for Dialog DA9210 and DA9063, Freescale pfuze100 and
     Marvell 88pm800"

* tag 'regulator-v3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (70 commits)
  regulator: da9063: Statize da9063_ldo_lim_event
  regulator: lp872x: Make REGULATOR_LP872X depend on I2C rather than I2C=y
  regulator: tps65217: Convert to use linear ranges
  regulator: da9063: Use IS_ERR to check return value of regulator_register()
  regulator: da9063: Optimize da9063_set_current_limit implementation
  regulator: build: Allow most regulators to be built as modules
  regulator: Add devm_regulator_get_exclusive()
  regulator: da9063: Add Dialog DA9063 voltage regulators support.
  regulator: ti-abb: simplify platform_get_resource_byname/devm_ioremap_resource
  hwmon: (sht15) Use devm_regulator_get_optional()
  regulator: core: Use bool for exclusivitity flag
  regulator: 88pm800: forever loop in pm800_regulator_probe()
  cpufreq: cpufreq-cpu0: Use devm_regulator_get_optional()
  regulator: da9210: Remove redundant MODULE_ALIAS
  regulator: 88pm800: Fix checking whether num_regulator is valid
  regulator: s2mps11: Fix setting ramp_delay
  regulator: s2mps11: Fix wrong arguments for regmap_update_bits() call
  regulator: palmas: Update the DT binding doc for smps10 out1 and out2
  regulator: palmas: model SMPS10 as two regulators
  regulator: core: Move list_voltage_{linear,linear_range,table} to helpers.c
  ...
parents 5d3fed70 a5848622
Loading
Loading
Loading
Loading
+38 −0
Original line number Diff line number Diff line
Marvell 88PM800 regulator

Required properties:
- compatible: "marvell,88pm800"
- reg: I2C slave address
- regulators: A node that houses a sub-node for each regulator within the
  device. Each sub-node is identified using the node's name (or the deprecated
  regulator-compatible property if present), with valid values listed below.
  The content of each sub-node is defined by the standard binding for
  regulators; see regulator.txt.

The valid names for regulators are:

  buck1, buck2, buck3, buck4, buck5, ldo1, ldo2, ldo3, ldo4, ldo5, ldo6, ldo7,
  ldo8, ldo9, ldo10, ldo11, ldo12, ldo13, ldo14, ldo15, ldo16, ldo17, ldo18, ldo19

Example:

	pmic: 88pm800@31 {
		compatible = "marvell,88pm800";
		reg = <0x31>;

		regulators {
			buck1 {
			        regulator-min-microvolt = <600000>;
			        regulator-max-microvolt = <3950000>;
			        regulator-boot-on;
			        regulator-always-on;
			};
			ldo1 {
			        regulator-min-microvolt = <600000>;
			        regulator-max-microvolt = <15000000>;
			        regulator-boot-on;
			        regulator-always-on;
			};
...
		};
	};
+47 −0
Original line number Diff line number Diff line
Maxim MAX8660 voltage regulator

Required properties:
- compatible: must be one of "maxim,max8660", "maxim,max8661"
- reg: I2C slave address, usually 0x34
- any required generic properties defined in regulator.txt

Example:

	i2c_master {
		max8660@34 {
			compatible = "maxim,max8660";
			reg = <0x34>;

			regulators {
				regulator@0 {
					regulator-compatible= "V3(DCDC)";
					regulator-min-microvolt = <725000>;
					regulator-max-microvolt = <1800000>;
				};

				regulator@1 {
					regulator-compatible= "V4(DCDC)";
					regulator-min-microvolt = <725000>;
					regulator-max-microvolt = <1800000>;
				};

				regulator@2 {
					regulator-compatible= "V5(LDO)";
					regulator-min-microvolt = <1700000>;
					regulator-max-microvolt = <2000000>;
				};

				regulator@3 {
					regulator-compatible= "V6(LDO)";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <3300000>;
				};

				regulator@4 {
					regulator-compatible= "V7(LDO)";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <3300000>;
				};
			};
		};
	};
+2 −2
Original line number Diff line number Diff line
@@ -25,8 +25,8 @@ Optional nodes:
	       Additional custom properties  are listed below.

	       For ti,palmas-pmic - smps12, smps123, smps3 depending on OTP,
	       smps45, smps457, smps7 depending on variant, smps6, smps[8-10],
	       ldo[1-9], ldoln, ldousb.
	       smps45, smps457, smps7 depending on variant, smps6, smps[8-9],
	       smps10_out2, smps10_out1, do[1-9], ldoln, ldousb.

	       Optional sub-node properties:
	       ti,warm-reset - maintain voltage during warm reset(boolean)
+115 −0
Original line number Diff line number Diff line
PFUZE100 family of regulators

Required properties:
- compatible: "fsl,pfuze100"
- reg: I2C slave address

Required child node:
- regulators: This is the list of child nodes that specify the regulator
  initialization data for defined regulators. Please refer to below doc
  Documentation/devicetree/bindings/regulator/regulator.txt.

  The valid names for regulators are:
  sw1ab,sw1c,sw2,sw3a,sw3b,sw4,swbst,vsnvs,vrefddr,vgen1~vgen6

Each regulator is defined using the standard binding for regulators.

Example:

	pmic: pfuze100@08 {
		compatible = "fsl,pfuze100";
		reg = <0x08>;

		regulators {
			sw1a_reg: sw1ab {
				regulator-min-microvolt = <300000>;
				regulator-max-microvolt = <1875000>;
				regulator-boot-on;
				regulator-always-on;
				regulator-ramp-delay = <6250>;
			};

			sw1c_reg: sw1c {
				regulator-min-microvolt = <300000>;
				regulator-max-microvolt = <1875000>;
				regulator-boot-on;
				regulator-always-on;
			};

			sw2_reg: sw2 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
			};

			sw3a_reg: sw3a {
				regulator-min-microvolt = <400000>;
				regulator-max-microvolt = <1975000>;
				regulator-boot-on;
				regulator-always-on;
			};

			sw3b_reg: sw3b {
				regulator-min-microvolt = <400000>;
				regulator-max-microvolt = <1975000>;
				regulator-boot-on;
				regulator-always-on;
			};

			sw4_reg: sw4 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3300000>;
			};

			swbst_reg: swbst {
				regulator-min-microvolt = <5000000>;
				regulator-max-microvolt = <5150000>;
			};

			snvs_reg: vsnvs {
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <3000000>;
				regulator-boot-on;
				regulator-always-on;
			};

			vref_reg: vrefddr {
				regulator-boot-on;
				regulator-always-on;
			};

			vgen1_reg: vgen1 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1550000>;
			};

			vgen2_reg: vgen2 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1550000>;
			};

			vgen3_reg: vgen3 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
			};

			vgen4_reg: vgen4 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			vgen5_reg: vgen5 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			vgen6_reg: vgen6 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};
		};
	};
+2 −0
Original line number Diff line number Diff line
@@ -12,6 +12,8 @@ Optional properties:
- regulator-allow-bypass: allow the regulator to go into bypass mode
- <name>-supply: phandle to the parent supply/regulator node
- regulator-ramp-delay: ramp delay for regulator(in uV/uS)
  For hardwares which support disabling ramp rate, it should be explicitly
  intialised to zero (regulator-ramp-delay = <0>) for disabling ramp delay.

Deprecated properties:
- regulator-compatible: If a regulator chip contains multiple
Loading