[go: nahoru, domu]

History log of /drivers/regulator/ab8500-ext.c
Revision Date Author Comments
a4a6b9de5c859ff953ce1b854cbfa112718a3f43 30-Sep-2013 Jingoo Han <jg1.han@samsung.com> regulator: ab8500-ext: use devm_regulator_register()

Use devm_regulator_register() to make cleanup paths simpler,
and remove unnecessary remove().

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
08d49f4372ebee2b06d6988ecca37612fdc5b897 26-Jun-2013 Sachin Kamat <sachin.kamat@linaro.org> regulator: ab8500-ext: Staticize local symbols

Local symbols used only in this file are made static.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
30aa4b26c00f5c5ae6081f85e7adca47dcb24e29 07-Jun-2013 Lee Jones <lee.jones@linaro.org> regulator: ab8500-ext: Enable for Device Tree

Here we use the OF regulator match facility to collect and populate
initialisation data from Device Tree if we're booting with it enabled.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonielinaro.org>
5a49b4a527e5b72ae3a4f64f078759f83fbd98b5 07-Jun-2013 Lee Jones <lee.jones@linaro.org> regulator: ab8500-ext: Register as a device in its own right

Some platforms don't support the AB8500 external regulators, so instead
of having a list of is_<platform>() calls prior to calling
ab8500_ext_regulator_init() from ab8500_regulator_probe(), we can only
register as a platform device on platforms which require them. It means
we also have more control over them when booting with Device Tree.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonielinaro.org>
33fb880249b1f2f349461c64d19bdfe2e969c1ba 07-Jun-2013 Lee Jones <lee.jones@linaro.org> regulator: ab8500-ext: Provide a set_voltage call-back operation

When registering regulators which have a single voltage through Device
Tree, the framework insists that the specified voltage is actually set.
Well in order to do that we need to provide this call-back, where we
check that the value is sane and return without error. Not that the
selector isn't populated, but in our case list_voltage doesn't actually
use it, so we're good.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
7384744d2de1638b5aa9cbe9f743e9067cb6a44a 16-Apr-2013 Axel Lin <axel.lin@ingics.com> regulator: ab8500-ext: Remove enable() and disable() functions

Both enable() and disable() functions have only one caller, thus remove them.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
66511fa4a7902fb9ffdffc8c153f1758817fb8a4 16-Apr-2013 Axel Lin <axel.lin@ingics.com> regulator: ab8500-ext: Don't update info->update_val if set_mode() fails

This ensures info->update_val status is still correct if set_mode() call fails.
Otherwise, get_mode() may return wrong status if a set_mode() call fails.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
3480c0cab6e1a25fdeb63147b0b643b7825a36fb 10-Apr-2013 Axel Lin <axel.lin@ingics.com> regulator: ab8500-ext: Make the return type of ab8500_ext_regulator_exit() void

ab8500_ext_regulator_exit() never fails.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
e343ab08bddeb0ed83f0a85f06739569d3081e3a 07-Apr-2013 Axel Lin <axel.lin@ingics.com> regulator: ab8500-ext: Remove get_voltage to avoid duplicate implementation

The implementation of ab8500_ext_fixed_get_voltage is identical to
ab8500_ext_list_voltage. We can avoid the duplicate implementation by just
remove get_voltage. For fixed regulator, regulator core will call
list_voltage(rdev, 0) to get voltage if both get_voltage get_voltage_sel are
not implemented.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
bcbba9de0f66d30621a489dc8af07350f8d477fd 07-Apr-2013 Axel Lin <axel.lin@ingics.com> regulator: ab8500-ext: Remove unnecessary checking for ab9540 and ab8540

This code was added by commit 0fe17e20a6
"regulator: ab8500-ext: Add support for AB9540 regulators"
and commit bd44e2cb "regulator: ab8500: Also check for AB8505 based platforms"

The original patch[1] is to set info->desc.ops = &ab9540_ext_regulator_ops.

However, ab9540_ext_regulator_ops is identical to ab8500_ext_regulator_ops[2].
Thus we can complete remove the unnecessary checking for ab9540 and ab8540.

[1] https://lkml.org/lkml/2013/3/28/333
[2] https://lkml.org/lkml/2013/4/1/178

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
9ab51a0eb46a1cd894b1bc784e7775f7c29918c0 07-Apr-2013 Axel Lin <axel.lin@ingics.com> regulator: ab8500-ext: Get rid of is_enabled from struct ab8500_ext_regulator_info

The intention of this patch is to simplify the code.

Maintain the is_enabled flag is not trivial, it not only needs to set/clear the
flag in disable()/enable() but also needs to set the flag in is_enable() to get
initial status. The only benefit of keeping is_enabled flag is just save a
register read when set_mode(). Remove is_enabled flag makes the code simpler.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
37daa8aed1af2e09abfdb66e8da9074eb9b9e1a1 02-Apr-2013 Axel Lin <axel.lin@ingics.com> regulator: ab8500-ext: Don't update info->is_enabled if write to register fails

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
bd44e2cb4a21d9297b84efbb2e26961f6ece0423 02-Apr-2013 Lee Jones <lee.jones@linaro.org> regulator: ab8500: Also check for AB8505 based platforms

Ensure we initialise AB8505 external supply regulators.

Signed-off-by: Alexandre Torgue <alexandre.torgue@stericsson.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Reviewed-by: Philippe LANGLAIS <philippe.langlais@stericsson.com>
Tested-by: Xiao Mei ZHANG <xiaomei.zhang@stericsson.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
0fe17e20a6af5cbe4d0a7739300f7b818c79620f 02-Apr-2013 Lee Jones <lee.jones@linaro.org> regulator: ab8500-ext: Add support for AB9540 regulators

Add the support for ab9540 external regulators.

Signed-off-by: Michel JAOUEN <michel.jaouen@stericsson.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
a6324709ab4e8a06cb61aa4f7aa3374679d5f426 28-Mar-2013 Bengt Jonsson <bengt.g.jonsson@stericsson.com> regulator: ab8500-ext: Add support for AB8505/AB9540

The external regulator driver checks for old AB8500 HW
to apply a fix. This patch adds a check to see that
it is a AB8500 (not AB8505/AB9540).

Signed-off-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
18bc2b39307b45527efc6c84836953c7a8f2181e 28-Mar-2013 Bengt Jonsson <bengt.g.jonsson@stericsson.com> regulator: ab8500-ext: Add HW request support

Support for HW request is added in the external regulator
driver. A flag in the board configuration can be set to
let HW control the regulator when there is no SW request.
This means that the regulator will be put in high power
mode when there is a SW request and in HW-request mode
otherwise.

Signed-off-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Reviewed-by: Mattias NILSSON <mattias.i.nilsson@stericsson.com>
Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
d1a820011b2fbc11d5af80d1a961fe66c613fa4b 28-Mar-2013 Lee Jones <lee.jones@linaro.org> regulator: ab8500-ext: New driver to control external regulators

The ABx500 is capable of controlling three external regulator supplies.
Most commonly on and off are supported, but if an external regulator
chipset or power supply supports high-power and low-power mode settings,
we can control those too.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>