-
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.
mfd: max8998: Add support for Device Tree
This patch adds Device Tree support to max8998 driver. Signed-off-by: Tomasz Figa <t.figa@samsung.com> Acked-by: Mark Brown <broonie@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
- Loading branch information
Tomasz Figa
authored and
Samuel Ortiz
committed
Jun 30, 2013
1 parent
4280e0b
commit ee999fb
Showing
6 changed files
with
316 additions
and
7 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,119 @@ | ||
* Maxim MAX8998, National/TI LP3974 multi-function device | ||
|
||
The Maxim MAX8998 is a multi-function device which includes voltage/current | ||
regulators, real time clock, battery charging controller and several | ||
other sub-blocks. It is interfaced using an I2C interface. Each sub-block | ||
is addressed by the host system using different i2c slave address. | ||
|
||
PMIC sub-block | ||
-------------- | ||
|
||
The PMIC sub-block contains a number of voltage and current regulators, | ||
with controllable parameters and dynamic voltage scaling capability. | ||
In addition, it includes a real time clock and battery charging controller | ||
as well. It is accessible at I2C address 0x66. | ||
|
||
Required properties: | ||
- compatible: Should be one of the following: | ||
- "maxim,max8998" for Maxim MAX8998 | ||
- "national,lp3974" or "ti,lp3974" for National/TI LP3974. | ||
- reg: Specifies the i2c slave address of the pmic block. It should be 0x66. | ||
|
||
Optional properties: | ||
- interrupt-parent: Specifies the phandle of the interrupt controller to which | ||
the interrupts from MAX8998 are routed to. | ||
- interrupts: Interrupt specifiers for two interrupt sources. | ||
- First interrupt specifier is for main interrupt. | ||
- Second interrupt specifier is for power-on/-off interrupt. | ||
- max8998,pmic-buck1-dvs-gpios: GPIO specifiers for two host gpios used | ||
for buck 1 dvs. The format of the gpio specifier depends on the gpio | ||
controller. | ||
- max8998,pmic-buck2-dvs-gpio: GPIO specifier for host gpio used | ||
for buck 2 dvs. The format of the gpio specifier depends on the gpio | ||
controller. | ||
- max8998,pmic-buck1-default-dvs-idx: Default voltage setting selected from | ||
the possible 4 options selectable by the dvs gpios. The value of this | ||
property should be 0, 1, 2 or 3. If not specified or out of range, | ||
a default value of 0 is taken. | ||
- max8998,pmic-buck2-default-dvs-idx: Default voltage setting selected from | ||
the possible 2 options selectable by the dvs gpios. The value of this | ||
property should be 0 or 1. If not specified or out of range, a default | ||
value of 0 is taken. | ||
- max8998,pmic-buck-voltage-lock: If present, disallows changing of | ||
preprogrammed buck dvfs voltages. | ||
|
||
Additional properties required if max8998,pmic-buck1-dvs-gpios is defined: | ||
- max8998,pmic-buck1-dvs-voltage: An array of 4 voltage values in microvolts | ||
for buck1 regulator that can be selected using dvs gpio. | ||
|
||
Additional properties required if max8998,pmic-buck2-dvs-gpio is defined: | ||
- max8998,pmic-buck2-dvs-voltage: An array of 2 voltage values in microvolts | ||
for buck2 regulator that can be selected using dvs gpio. | ||
|
||
Regulators: All the regulators of MAX8998 to be instantiated shall be | ||
listed in a child node named 'regulators'. Each regulator is represented | ||
by a child node of the 'regulators' node. | ||
|
||
regulator-name { | ||
/* standard regulator bindings here */ | ||
}; | ||
|
||
Following regulators of the MAX8998 PMIC block are supported. Note that | ||
the 'n' in regulator name, as in LDOn or BUCKn, represents the LDO or BUCK | ||
number as described in MAX8998 datasheet. | ||
|
||
- LDOn | ||
- valid values for n are 2 to 17 | ||
- Example: LDO2, LDO10, LDO17 | ||
- BUCKn | ||
- valid values for n are 1 to 4. | ||
- Example: BUCK1, BUCK2, BUCK3, BUCK4 | ||
|
||
- ENVICHG: Battery Charging Current Monitor Output. This is a fixed | ||
voltage type regulator | ||
|
||
- ESAFEOUT1: (ldo19) | ||
- ESAFEOUT2: (ld020) | ||
|
||
Standard regulator bindings are used inside regulator subnodes. Check | ||
Documentation/devicetree/bindings/regulator/regulator.txt | ||
for more details. | ||
|
||
Example: | ||
|
||
pmic@66 { | ||
compatible = "maxim,max8998-pmic"; | ||
reg = <0x66>; | ||
interrupt-parent = <&wakeup_eint>; | ||
interrupts = <4 0>, <3 0>; | ||
|
||
/* Buck 1 DVS settings */ | ||
max8998,pmic-buck1-default-dvs-idx = <0>; | ||
max8998,pmic-buck1-dvs-gpios = <&gpx0 0 1 0 0>, /* SET1 */ | ||
<&gpx0 1 1 0 0>; /* SET2 */ | ||
max8998,pmic-buck1-dvs-voltage = <1350000>, <1300000>, | ||
<1000000>, <950000>; | ||
|
||
/* Buck 2 DVS settings */ | ||
max8998,pmic-buck2-default-dvs-idx = <0>; | ||
max8998,pmic-buck2-dvs-gpio = <&gpx0 0 3 0 0>; /* SET3 */ | ||
max8998,pmic-buck2-dvs-voltage = <1350000>, <1300000>; | ||
|
||
/* Regulators to instantiate */ | ||
regulators { | ||
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; | ||
}; | ||
}; | ||
}; |
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.