-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'regulator-v3.11' of git://git.kernel.org/pub/scm/linux/ker…
…nel/git/broonie/regulator Pull regulator updates from Mark Brown: "Very quiet release here, as well as the usual driver specific updates only a couple of new things: - New drivers for TI ABB LDOs and MAX77693 PMICs - Support for enabling bypass mode support via device tree" * tag 'regulator-v3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (23 commits) regulator: max77693: Remove NULL test for rmatch[i].init_data regulator: max77693: Fix trivial typo regulator: ab8500-ext: Staticize local symbols regulator: max77693: Add max77693 regualtor driver. regulator: max8973: fix a typo in documentation regulator: max8973: initial DT support regulators: max8973: fix multiple instance support regulator: of: Added a property to indicate bypass mode support regulator: ti-abb: Convert to use devm_ioremap_resource regulator: tps62360: Fix crash in i2c_driver .probe regulator: ab8500: Provide supply names for the AUX regulators regulator: ab8500-ext: Enable for Device Tree regulator: ab8500-ext: Register as a device in its own right regulator: ab8500-ext: Provide a set_voltage call-back operation regulator: ab8500: Ensure AB8500 external registers are probed first regulator: core: add regulator_get_linear_step() regulator: lp397x: use devm_kzalloc() to make cleanup paths simpler regulator: lp872x: support the device tree feature regulator: Remove unnecessary include of linux/delay.h from regulator drivers regulator: isl6271a: Use NULL instead of 0 ...
- Loading branch information
Showing
41 changed files
with
1,911 additions
and
94 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
Maxim MAX77693 multi-function device | ||
|
||
MAX77693 is a Multifunction device with the following submodules: | ||
- PMIC, | ||
- CHARGER, | ||
- LED, | ||
- MUIC, | ||
- HAPTIC | ||
|
||
It is interfaced to host controller using i2c. | ||
This document describes the bindings for the mfd device. | ||
|
||
Required properties: | ||
- compatible : Must be "maxim,max77693". | ||
- reg : Specifies the i2c slave address of PMIC block. | ||
- interrupts : This i2c device has an IRQ line connected to the main SoC. | ||
- interrupt-parent : The parent interrupt controller. | ||
|
||
Optional properties: | ||
- regulators : The regulators of max77693 have to be instantiated under subnod | ||
named "regulators" using the following format. | ||
|
||
regulators { | ||
regualtor-compatible = ESAFEOUT1/ESAFEOUT2/CHARGER | ||
standard regulator constratints[*]. | ||
}; | ||
|
||
[*] refer Documentation/devicetree/bindings/regulator/regulator.txt | ||
|
||
Example: | ||
max77693@66 { | ||
compatible = "maxim,max77693"; | ||
reg = <0x66>; | ||
interrupt-parent = <&gpx1>; | ||
interrupts = <5 2>; | ||
|
||
regulators { | ||
esafeout@1 { | ||
regulator-compatible = "ESAFEOUT1"; | ||
regulator-name = "ESAFEOUT1"; | ||
regulator-boot-on; | ||
}; | ||
esafeout@2 { | ||
regulator-compatible = "ESAFEOUT2"; | ||
regulator-name = "ESAFEOUT2"; | ||
}; | ||
charger@0 { | ||
regulator-compatible = "CHARGER"; | ||
regulator-name = "CHARGER"; | ||
regulator-min-microamp = <60000>; | ||
regulator-max-microamp = <2580000>; | ||
regulator-boot-on; | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,160 @@ | ||
Binding for TI/National Semiconductor LP872x Driver | ||
|
||
Required properties: | ||
- compatible: "ti,lp8720" or "ti,lp8725" | ||
- reg: I2C slave address. 0x7d = LP8720, 0x7a = LP8725 | ||
|
||
Optional properties: | ||
- ti,general-config: the value of LP872X_GENERAL_CFG register (u8) | ||
(LP8720) | ||
bit[2]: BUCK output voltage control by external DVS pin or register | ||
1 = external pin, 0 = bit7 of register 08h | ||
bit[1]: sleep control by external DVS pin or register | ||
1 = external pin, 0 = bit6 of register 08h | ||
bit[0]: time step unit(usec). 1 = 25, 0 = 50 | ||
|
||
(LP8725) | ||
bit[7:6]: time step unit(usec). 00 = 32, 01 = 64, 10 = 128, 11 = 256 | ||
bit[4]: BUCK2 enable control. 1 = enable, 0 = disable | ||
bit[3]: BUCK2 output voltage register address. 1 = 0Ah, 0 = 0Bh | ||
bit[2]: BUCK1 output voltage control by external DVS pin or register | ||
1 = register 08h, 0 = DVS | ||
bit[1]: LDO sleep control. 1 = sleep mode, 0 = normal | ||
bit[0]: BUCK1 enable control, 1 = enable, 0 = disable | ||
|
||
For more details, please see the datasheet. | ||
|
||
- ti,update-config: define it when LP872X_GENERAL_CFG register should be set | ||
- ti,dvs-gpio: GPIO specifier for external DVS pin control of LP872x devices. | ||
- ti,dvs-vsel: DVS selector. 0 = SEL_V1, 1 = SEL_V2. | ||
- ti,dvs-state: initial DVS pin state. 0 = DVS_LOW, 1 = DVS_HIGH. | ||
|
||
Sub nodes for regulator_init_data | ||
LP8720 has maximum 6 nodes. (child name: ldo1 ~ 5 and buck) | ||
LP8725 has maximum 9 nodes. (child name: ldo1 ~ 5, lilo1,2 and buck1,2) | ||
For more details, please see the following binding document. | ||
(Documentation/devicetree/bindings/regulator/regulator.txt) | ||
|
||
Datasheet | ||
- LP8720: http://www.ti.com/lit/ds/symlink/lp8720.pdf | ||
- LP8725: http://www.ti.com/lit/ds/symlink/lp8725.pdf | ||
|
||
Example 1) LP8720 | ||
|
||
lp8720@7d { | ||
compatible = "ti,lp8720"; | ||
reg = <0x7d>; | ||
|
||
/* external DVS pin used, timestep is 25usec */ | ||
ti,general-config = /bits/ 8 <0x03>; | ||
ti,update-config; | ||
|
||
/* | ||
* The dvs-gpio depends on the processor environment. | ||
* For example, following GPIO specifier means GPIO134 in OMAP4. | ||
*/ | ||
ti,dvs-gpio = <&gpio5 6 0>; | ||
ti,dvs-vsel = /bits/ 8 <1>; /* SEL_V2 */ | ||
ti,dvs-state = /bits/ 8 <1>; /* DVS_HIGH */ | ||
|
||
vaf: ldo1 { | ||
regulator-min-microvolt = <1200000>; | ||
regulator-max-microvolt = <3300000>; | ||
}; | ||
|
||
vmmc: ldo2 { | ||
regulator-min-microvolt = <1200000>; | ||
regulator-max-microvolt = <3300000>; | ||
}; | ||
|
||
vcam_io: ldo3 { | ||
regulator-min-microvolt = <1200000>; | ||
regulator-max-microvolt = <3300000>; | ||
regulator-boot-on; | ||
}; | ||
|
||
vcam_core: ldo4 { | ||
regulator-min-microvolt = <800000>; | ||
regulator-max-microvolt = <2850000>; | ||
regulator-boot-on; | ||
}; | ||
|
||
vcam: ldo5 { | ||
regulator-min-microvolt = <1200000>; | ||
regulator-max-microvolt = <3300000>; | ||
}; | ||
|
||
vcc: buck { | ||
regulator-name = "VBUCK"; | ||
regulator-min-microvolt = <800000>; | ||
regulator-max-microvolt = <2300000>; | ||
}; | ||
}; | ||
|
||
Example 2) LP8725 | ||
|
||
lp8725@7a { | ||
compatible = "ti,lp8725"; | ||
reg = <0x7a>; | ||
|
||
/* Enable BUCK1,2, no DVS, normal LDO mode, timestep is 256usec */ | ||
ti,general-config = /bits/ 8 <0xdd>; | ||
ti,update-config; | ||
|
||
vcam_io: ldo1 { | ||
regulator-min-microvolt = <1200000>; | ||
regulator-max-microvolt = <3300000>; | ||
}; | ||
|
||
vcam_core: ldo2 { | ||
regulator-min-microvolt = <1200000>; | ||
regulator-max-microvolt = <3300000>; | ||
}; | ||
|
||
vcam: ldo3 { | ||
regulator-min-microvolt = <1200000>; | ||
regulator-max-microvolt = <3300000>; | ||
}; | ||
|
||
vcmmb_io: ldo4 { | ||
regulator-min-microvolt = <1200000>; | ||
regulator-max-microvolt = <3300000>; | ||
regulator-boot-on; | ||
}; | ||
|
||
vcmmb_core: ldo5 { | ||
regulator-min-microvolt = <1200000>; | ||
regulator-max-microvolt = <3300000>; | ||
regulator-boot-on; | ||
}; | ||
|
||
vaux1: lilo1 { | ||
regulator-name = "VAUX1"; | ||
regulator-min-microvolt = <800000>; | ||
regulator-max-microvolt = <3300000>; | ||
}; | ||
|
||
vaux2: lilo2 { | ||
regulator-name = "VAUX2"; | ||
regulator-min-microvolt = <800000>; | ||
regulator-max-microvolt = <3300000>; | ||
}; | ||
|
||
vcc1: buck1 { | ||
regulator-name = "VBUCK1"; | ||
regulator-min-microvolt = <800000>; | ||
regulator-max-microvolt = <3000000>; | ||
regulator-min-microamp = <460000>; | ||
regulator-max-microamp = <1370000>; | ||
regulator-boot-on; | ||
}; | ||
|
||
vcc2: buck2 { | ||
regulator-name = "VBUCK2"; | ||
regulator-min-microvolt = <800000>; | ||
regulator-max-microvolt = <3000000>; | ||
regulator-min-microamp = <460000>; | ||
regulator-max-microamp = <1370000>; | ||
regulator-boot-on; | ||
}; | ||
}; |
21 changes: 21 additions & 0 deletions
21
Documentation/devicetree/bindings/regulator/max8973-regulator.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
* Maxim MAX8973 Voltage Regulator | ||
|
||
Required properties: | ||
|
||
- compatible: must be "maxim,max8973" | ||
- reg: the i2c slave address of the regulator. It should be 0x1b. | ||
|
||
Any standard regulator properties can be used to configure the single max8973 | ||
DCDC. | ||
|
||
Example: | ||
|
||
max8973@1b { | ||
compatible = "maxim,max8973"; | ||
reg = <0x1b>; | ||
|
||
regulator-min-microvolt = <935000>; | ||
regulator-max-microvolt = <1200000>; | ||
regulator-boot-on; | ||
regulator-always-on; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
128 changes: 128 additions & 0 deletions
128
Documentation/devicetree/bindings/regulator/ti-abb-regulator.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
Adaptive Body Bias(ABB) SoC internal LDO regulator for Texas Instruments SoCs | ||
|
||
Required Properties: | ||
- compatible: Should be one of: | ||
- "ti,abb-v1" for older SoCs like OMAP3 | ||
- "ti,abb-v2" for newer SoCs like OMAP4, OMAP5 | ||
- reg: Address and length of the register set for the device. It contains | ||
the information of registers in the same order as described by reg-names | ||
- reg-names: Should contain the reg names | ||
- "base-address" - contains base address of ABB module | ||
- "int-address" - contains address of interrupt register for ABB module | ||
(also see Optional properties) | ||
- #address-cell: should be 0 | ||
- #size-cell: should be 0 | ||
- clocks: should point to the clock node used by ABB module | ||
- ti,settling-time: Settling time in uSecs from SoC documentation for ABB module | ||
to settle down(target time for SR2_WTCNT_VALUE). | ||
- ti,clock-cycles: SoC specific data about count of system ti,clock-cycles used for | ||
computing settling time from SoC Documentation for ABB module(clock | ||
cycles for SR2_WTCNT_VALUE). | ||
- ti,tranxdone-status-mask: Mask to the int-register to write-to-clear mask | ||
indicating LDO tranxdone (operation complete). | ||
- ti,abb_info: An array of 6-tuples u32 items providing information about ABB | ||
configuration needed per operational voltage of the device. | ||
Each item consists of the following in the same order: | ||
volt: voltage in uV - Only used to index ABB information. | ||
ABB mode: one of the following: | ||
0-bypass | ||
1-Forward Body Bias(FBB) | ||
3-Reverse Body Bias(RBB) | ||
efuse: (see Optional properties) | ||
RBB enable efuse Mask: (See Optional properties) | ||
FBB enable efuse Mask: (See Optional properties) | ||
Vset value efuse Mask: (See Optional properties) | ||
|
||
NOTE: If more than 1 entry is present, then regulator is setup to change | ||
voltage, allowing for various modes to be selected indexed off | ||
the regulator. Further, ABB LDOs are considered always-on by | ||
default. | ||
|
||
Optional Properties: | ||
- reg-names: In addition to the required properties, the following are optional | ||
- "efuse-address" - Contains efuse base address used to pick up ABB info. | ||
- "ldo-address" - Contains address of ABB LDO overide register address. | ||
"efuse-address" is required for this. | ||
- ti,ldovbb-vset-mask - Required if ldo-address is set, mask for LDO override | ||
register to provide override vset value. | ||
- ti,ldovbb-override-mask - Required if ldo-address is set, mask for LDO | ||
override register to enable override vset value. | ||
- ti,abb_opp_sel: Addendum to the description in required properties | ||
efuse: Mandatory if 'efuse-address' register is defined. Provides offset | ||
from efuse-address to pick up ABB characteristics. Set to 0 if | ||
'efuse-address' is not defined. | ||
RBB enable efuse Mask: Optional if 'efuse-address' register is defined. | ||
'ABB mode' is force set to RBB mode if value at "efuse-address" | ||
+ efuse maps to RBB mask. Set to 0 to ignore this. | ||
FBB enable efuse Mask: Optional if 'efuse-address' register is defined. | ||
'ABB mode' is force set to FBB mode if value at "efuse-address" | ||
+ efuse maps to FBB mask (valid only if RBB mask does not match) | ||
Set to 0 to ignore this. | ||
Vset value efuse Mask: Mandatory if ldo-address is set. Picks up from | ||
efuse the value to set in 'ti,ldovbb-vset-mask' at ldo-address. | ||
|
||
Example #1: Simplest configuration (no efuse data, hard coded ABB table): | ||
abb_x: regulator-abb-x { | ||
compatible = "ti,abb-v1"; | ||
regulator-name = "abb_x"; | ||
#address-cell = <0>; | ||
#size-cells = <0>; | ||
reg = <0x483072f0 0x8>, <0x48306818 0x4>; | ||
reg-names = "base-address", "int-address"; | ||
ti,tranxdone-status-mask = <0x4000000>; | ||
clocks = <&sysclk>; | ||
ti,settling-time = <30>; | ||
ti,clock-cycles = <8>; | ||
ti,abb_info = < | ||
/* uV ABB efuse rbb_m fbb_m vset_m */ | ||
1012500 0 0 0 0 0 /* Bypass */ | ||
1200000 3 0 0 0 0 /* RBB mandatory */ | ||
1320000 1 0 0 0 0 /* FBB mandatory */ | ||
>; | ||
}; | ||
|
||
Example #2: Efuse bits contain ABB mode setting (no LDO override capability) | ||
abb_y: regulator-abb-y { | ||
compatible = "ti,abb-v2"; | ||
regulator-name = "abb_y"; | ||
#address-cell = <0>; | ||
#size-cells = <0>; | ||
reg = <0x4a307bd0 0x8>, <0x4a306014 0x4>, <0x4A002268 0x8>; | ||
reg-names = "base-address", "int-address", "efuse-address"; | ||
ti,tranxdone-status-mask = <0x4000000>; | ||
clocks = <&sysclk>; | ||
ti,settling-time = <50>; | ||
ti,clock-cycles = <16>; | ||
ti,abb_info = < | ||
/* uV ABB efuse rbb_m fbb_m vset_m */ | ||
975000 0 0 0 0 0 /* Bypass */ | ||
1012500 0 0 0x40000 0 0 /* RBB optional */ | ||
1200000 0 0x4 0 0x40000 0 /* FBB optional */ | ||
1320000 1 0 0 0 0 /* FBB mandatory */ | ||
>; | ||
}; | ||
|
||
Example #3: Efuse bits contain ABB mode setting and LDO override capability | ||
abb_z: regulator-abb-z { | ||
compatible = "ti,abb-v2"; | ||
regulator-name = "abb_z"; | ||
#address-cell = <0>; | ||
#size-cells = <0>; | ||
reg = <0x4ae07ce4 0x8>, <0x4ae06010 0x4>, | ||
<0x4a002194 0x8>, <0x4ae0C314 0x4>; | ||
reg-names = "base-address", "int-address", | ||
"efuse-address", "ldo-address"; | ||
ti,tranxdone-status-mask = <0x8000000>; | ||
/* LDOVBBMM_MUX_CTRL */ | ||
ti,ldovbb-override-mask = <0x400>; | ||
/* LDOVBBMM_VSET_OUT */ | ||
ti,ldovbb-vset-mask = <0x1F>; | ||
clocks = <&sysclk>; | ||
ti,settling-time = <50>; | ||
ti,clock-cycles = <16>; | ||
ti,abb_info = < | ||
/* uV ABB efuse rbb_m fbb_m vset_m */ | ||
975000 0 0 0 0 0 /* Bypass */ | ||
1200000 0 0x4 0 0x40000 0x1f00 /* FBB optional, vset */ | ||
>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.