mfd: s2mps11: Add device tree support
This patch adds DT compatible string for s2mps11 and binding documentation. Reviewed-by: Mark Brown <broonie@linaro.org> Signed-off-by: Yadwinder Singh Brar <yadi.brar@samsung.com> Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
Родитель
23e51e8e89
Коммит
aa32acadcf
|
@ -0,0 +1,89 @@
|
||||||
|
|
||||||
|
* Samsung S2MPS11 Voltage and Current Regulator
|
||||||
|
|
||||||
|
The Samsung S2MP211 is a multi-function device which includes voltage 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.
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible: Should be "samsung,s2mps11-pmic".
|
||||||
|
- 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 s2mps11 are delivered to.
|
||||||
|
- interrupts: Interrupt specifiers for interrupt sources.
|
||||||
|
|
||||||
|
Optional nodes:
|
||||||
|
- regulators: The regulators of s2mps11 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 constraints....];
|
||||||
|
};
|
||||||
|
|
||||||
|
regulator-ramp-delay for BUCKs = [6250/12500/25000(default)/50000] uV/us
|
||||||
|
|
||||||
|
BUCK[2/3/4/6] supports disabling ramp delay on hardware, so explictly
|
||||||
|
regulator-ramp-delay = <0> can be used for them to disable ramp delay.
|
||||||
|
In absence of regulator-ramp-delay property, default ramp delay will be used.
|
||||||
|
|
||||||
|
NOTE: Some BUCKs share the ramp rate setting i.e. same ramp value will be set
|
||||||
|
for a particular group of BUCKs. So provide same regulator-ramp-delay<value>.
|
||||||
|
Grouping of BUCKs sharing ramp rate setting is as follow : BUCK[1, 6],
|
||||||
|
BUCK[3, 4], and BUCK[7, 8, 10]
|
||||||
|
|
||||||
|
The regulator constraints inside the regulator nodes use the standard regulator
|
||||||
|
bindings which are documented elsewhere.
|
||||||
|
|
||||||
|
The following are the names of the regulators that the s2mps11 pmic block
|
||||||
|
supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
|
||||||
|
as per the datasheet of s2mps11.
|
||||||
|
|
||||||
|
- LDOn
|
||||||
|
- valid values for n are 1 to 28
|
||||||
|
- Example: LDO0, LD01, LDO28
|
||||||
|
- BUCKn
|
||||||
|
- valid values for n are 1 to 9.
|
||||||
|
- Example: BUCK1, BUCK2, BUCK9
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
s2mps11_pmic@66 {
|
||||||
|
compatible = "samsung,s2mps11-pmic";
|
||||||
|
reg = <0x66>;
|
||||||
|
|
||||||
|
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_mif";
|
||||||
|
regulator-min-microvolt = <950000>;
|
||||||
|
regulator-max-microvolt = <1350000>;
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-boot-on;
|
||||||
|
};
|
||||||
|
|
||||||
|
buck2_reg: BUCK2 {
|
||||||
|
regulator-name = "vdd_arm";
|
||||||
|
regulator-min-microvolt = <950000>;
|
||||||
|
regulator-max-microvolt = <1350000>;
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-boot-on;
|
||||||
|
regulator-ramp-delay = <50000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
|
@ -69,6 +69,9 @@ static struct of_device_id sec_dt_match[] = {
|
||||||
{ .compatible = "samsung,s5m8767-pmic",
|
{ .compatible = "samsung,s5m8767-pmic",
|
||||||
.data = (void *)S5M8767X,
|
.data = (void *)S5M8767X,
|
||||||
},
|
},
|
||||||
|
{ .compatible = "samsung,s2mps11-pmic",
|
||||||
|
.data = (void *)S2MPS11X,
|
||||||
|
},
|
||||||
{},
|
{},
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
Загрузка…
Ссылка в новой задаче