[go: nahoru, domu]

History log of /drivers/regulator/tps6586x-regulator.c
Revision Date Author Comments
2628b10070c5a934a977f20831d97778034b39af 04-Jun-2014 Axel Lin <axel.lin@ingics.com> regulator: tps6586x: Use regulator_list_voltage_linear for dvm/ldo4/sw2

The voltage tables for dvm/ldo4/sw2 are actually linear mapping.
Thus convert dvm/ldo4/sw2 to use regulator_list_voltage_linear.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
ae8b70c9d8ff3c2120651c880a148596061dcbb2 27-May-2014 Axel Lin <axel.lin@ingics.com> regulator: tps6586x: Remove unused to_tps6586x_dev() function

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
6c46ccc8bb0660c1805f6662d4646eb5405dcb2d 20-May-2014 Alban Bedel <alban.bedel@avionic-design.de> regulator: tps6586x: Add support for the TPS658640

The TPS658640 has a different set of output voltage for most LDO and
the RTC LDO isn't settable. This chip also report 2 different version
ID, as the datasheet doesn't list the possible values the second ID
has simply been named TPS658640v2.

Signed-off-by: Alban Bedel <alban.bedel@avionic-design.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
ad0b40fee4081490676b26ec4fb2205607116eaf 20-May-2014 Alban Bedel <alban.bedel@avionic-design.de> regulator: tps6586x: Prepare supporting fixed regulators

Add the required definitions and macros to allow easily adding fixed
regulators. This required for the TPS658640 that doesn't allow setting
the LDO_RTC output voltage.

Signed-off-by: Alban Bedel <alban.bedel@avionic-design.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
d6fe2c7251e47d2aa4006e73da4f518f4f6f9e74 08-Mar-2014 Axel Lin <axel.lin@ingics.com> regulator: tps6586x: Remove unnecessary rdev[] array

Now we are using devm_regulator_register(), so we don't need the rdev[] array
to store return value of devm_regulator_register. Use a *rdev variable is
enough for checking return status.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
02e905845fb722be50d605bdcb277bad6a6bfe66 20-Feb-2014 Sachin Kamat <sachin.kamat@linaro.org> regulator: tps6586x: Remove redundant error message

kzalloc prints its own OOM message upon failure.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
844a4f0d8a5ae075e06b6a673bbc0596510046df 06-Dec-2013 Stefan Agner <stefan@agner.ch> regulator: tps6586x: Add and use correct voltage table

Depending on the regulator version, the voltage table might be
different. Use version specific regulator tables in order to select
correct voltage table. For the following regulator versions different
voltage tables are now used:

* TPS658623: Use correct voltage table for SM2
* TPS658643: New voltage table for SM2

Both versions are in use on the Colibri T20 module. Make use of the
correct tables by requesting the correct SM2 voltage of 1.8V.

This change is not backward compatible since an old driver is not able
to correctly set that value. The value 1.8V is out of range for the old
driver and will refuse to probe the device. The regulator starts with
default settings and the driver shows appropriate error messages.

On Colibri T20, the old value used to work with TPS658623 since the
driver applied a wrong voltage table too. However, the TPS658643 used
on V1.2 devices uses yet another voltage table and those broke that
pseudo-compatibility. The regulator driver now has the correct voltage
table for both regulator versions and those the correct voltage can be
used in the device tree.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Reviewed-by: Thierry Reding <treding@nvidia.com>
Acked-by: Mark Brown <broonie@linaro.org>
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
712c967fec612f572d9eea5d031278512f642cf8 08-Oct-2013 Laxman Dewangan <ldewangan@nvidia.com> regulator: tps6586x: get regulators node from parent node only

As per the devicetree binding document of TPS6586x, the "regulators"
subnode should be under the parent node, not outside of parent node.
Hence to get the regulator node, the correct call is
of_get_child_by_name() rather than of_find_node_by_name() which searches
the "regulators" node from the parent node to end of DTS file.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
884ea5570f1eda8a1e0f5235cba4f00bafed450e 04-Sep-2013 Sachin Kamat <sachin.kamat@linaro.org> regulator: tps6586x: Use devm_regulator_register

devm_* simplifies the code.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
ec8da805c43a6cc0252dad0ff6e348c731e0b138 10-Jun-2013 Marc Dietrich <marvin24@gmx.de> mfd: tps6586x: correct device name of the regulator cell

Change the device name of the regulator function to the one chosen for
MODULE_ALIAS. This fixes kernel auto-module loading for the regulator function.

Signed-off-by: Marc Dietrich <marvin24@gmx.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
4d673bbc582331e47af92f6008b0e54752e1a6ea 20-Apr-2013 Axel Lin <axel.lin@ingics.com> regulator: tps6586x: Convert to use regulator_map_voltage_ascend

All regulators have ascendant voltage list in this driver.
Thus use regulator_map_voltage_ascend is more efficient than the default
regulator_map_voltage_iterate.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
6673d66e5a772763f0e1b3b229474f261be37506 20-Feb-2013 Axel Lin <axel.lin@ingics.com> regulator: tps6586x: Use dev_err rather than dev_warn for error message

tps6586x_regulator_set_slew_rate() returns -EINVAL when having slew rate
settings for other than SM0/1, thus use dev_err rather than dev_warn.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
0a4cccaa314de37e6130a31e2092778e87c793ae 25-Feb-2013 Guennadi Liakhovetski <g.liakhovetski@gmx.de> regulator: tps6586x: (cosmetic) simplify a conditional

of_node_put() is called on either branch of a conditional, simplify the
code by only calling it once.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
d645d591588c18f0ad61e292939ee743e43067f2 18-Dec-2012 Axel Lin <axel.lin@ingics.com> regulator: tps6586x: Use apply_[reg|bit] with regmap based voltage_sel operations

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
10835600cf8f3459cb4420fc2a6b9f57bad15307 27-Nov-2012 Laxman Dewangan <ldewangan@nvidia.com> regulator: tps6586x: fix build warning in debug build

When building the driver in debug mode, it generates
warning as

drivers/regulator/tps6586x-regulator.c: In function 'tps6586x_regulator_probe':
drivers/regulator/tps6586x-regulator.c:392:9: warning: 'id' is used uninitialized in this function [-Wuninitialized]

Fix this warning.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reported-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
8dc995f56ef7aedb41873fdeaa1971f3aa166ebd 19-Nov-2012 Bill Pemberton <wfp5p@virginia.edu> regulator: remove use of __devexit

CONFIG_HOTPLUG is going away as an option so __devexit is no
longer needed.

Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
a5023574d120ca3b9337cedd4e27de90cae9aff7 19-Nov-2012 Bill Pemberton <wfp5p@virginia.edu> regulator: remove use of __devinit

CONFIG_HOTPLUG is going away as an option so __devinit is no longer
needed.

Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
5eb9f2b96381ac3fa4a5910c37213c1cb62e9c65 19-Nov-2012 Bill Pemberton <wfp5p@virginia.edu> regulator: remove use of __devexit_p

CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer
needed.

Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
64e481603ab46bcd1466fdaffca50f25bf123f83 18-Oct-2012 Laxman Dewangan <ldewangan@nvidia.com> mfd: tps6586x: move regulator dt parsing to regulator driver

Moving regulator node parsing to regulator driver in place
of parsing it on mfd driver.
The motivation for this change are:
- MFD core driver should not depends on regulator and able
to instantiate device without regulator.
- The API for matching regulators are in regulator core and
it is good that regulator driver only calls this API.
- Regulator specific support should be in regulator driver only
to ease any enhancement/modification for regulators.
- The regulator driver is now registered as mfd sub device and
all regulator registration is done from single probe call.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
9394b80c35760d13492a3a895add2891bc64bf86 04-Sep-2012 Laxman Dewangan <ldewangan@nvidia.com> regulator: tps6586x: add support for SYS rail

Device have SYS rail which is always ON. It is system power bus. LDO5
and LDO_RTC get powered through this rail internally. Add support for
this rail and make the LDO5/LDO_RTC supply by it. Update document
accordingly.

[swarren: Instantiate the sys regulator from board-harmony-power.c to
avoid regression.]

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
7c7475c009260d02d56f940816bb7c86fce1542e 25-Jul-2012 Axel Lin <axel.lin@gmail.com> regulator: tps6586x: Convert to regulator_[enable|disable|is_enabled|get_voltage_sel]_regmap

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
7f852e0584f67654060f7814149744a1b7250480 24-Jul-2012 Laxman Dewangan <ldewangan@nvidia.com> regulator: tps6586x: correct vin pin for sm0/sm1/sm2

As per datasheet, the vin pin for the regulator is named
as vin_sm0, vin_sm1, vin_sm2 for sm0, sm1 and sm2 respectively.

Correcting the names in driver and documentation to match with
datasheet.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reported-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
7c7fac30581b2fe2e0783d9b6f53ca333cc2296c 13-Jul-2012 Laxman Dewangan <ldewangan@nvidia.com> regulator: tps6586x: add support for input supply

There is multiple voltage input pins on device which
takes the voltage input for different voltage regulator.
Support to configure the voltage input supplied by
different regulator for each regulators.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
f46470379342033bdd9f740ce483c96f5c20eab2 05-Jun-2012 Axel Lin <axel.lin@gmail.com> regulator: tps6586x: Convert to regulator_list_voltage_table

Also adds tps6586x_ldo0_voltages mapping table for LDO0, so we can remove the
hack in tps6586x_list_voltage() and convert it to regulator_list_voltage_table.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
62f6b0879304e2169d6bf6221612e8111e342ee7 26-Apr-2012 Thierry Reding <thierry.reding@avionic-design.de> tps6586x: Add device tree support

This commit adds device tree support for the TPS6586x regulator.

Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
c172708d38a401b2f3f841dfcd862b469fa0b670 04-Apr-2012 Mark Brown <broonie@opensource.wolfsonmicro.com> regulator: core: Use a struct to pass in regulator runtime configuration

Rather than adding new arguments to regulator_register() every time we
want to add a new bit of dynamic information at runtime change the function
to take these via a struct. By doing this we avoid needing to do further
changes like the recent addition of device tree support which required each
regulator driver to be updated to take an additional parameter.

The regulator_desc which should (mostly) be static data is still passed
separately as most drivers are able to configure this statically at build
time.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
e18162353afbb1b58622add7ea0f7a78c11ee44a 24-Mar-2012 Axel Lin <axel.lin@gmail.com> regulator: Merge tps6586x_regulator_ldo_ops and tps6586x_regulator_dvm_ops

Now all the callback implementation are the same for both ldo and dvm
regulator_ops, merge them to tps6586x_regulator_ops.

Also rename tps6586x_ldo_list_voltage to tps6586x_list_voltage.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
eed06517e1dade847d6abd8ddea5442bbfe082cc 24-Mar-2012 Axel Lin <axel.lin@gmail.com> regulator: Convert tps6586x to set_voltage_sel

Convert both tps6586x_[ldo|dvm]_set_voltage to one set_voltage_sel callback.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
44a7cdabf792028f88de5ecc2baf0c1a8207aa27 24-Mar-2012 Axel Lin <axel.lin@gmail.com> regulator: Convert tps6586x to get_voltage_sel

This also fixes a bug, LDO0 has minimal voltage 1.2V rather than 1.25V.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
51579137c500362018b5341f5dca47807ed558aa 24-Mar-2012 Axel Lin <axel.lin@gmail.com> regulator: tps6586x: Fix list minimal voltage setting for LDO0

According to the datasheet, LDO0 has minimal voltage 1.2V rather than 1.25V.

Table 3-39. VLDO0[2:0] Settings
VLDOx[2:0] VOUT (V) VLDOx[2:0] VOUT (V)
000 1.20 100 2.70
001 1.50 101 2.85
010 1.80 110 3.10
011 2.50 111 3.30

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
394ee3d5bea96b6dd29ec42a797d1ee4c2af5f1d 08-Mar-2012 Thierry Reding <thierry.reding@avionic-design.de> regulator: tps6586x: fix typo in debug message

Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2c043bcbf287dc69848054d5c02c55c20f7a7bc5 18-Nov-2011 Rajendra Nayak <rnayak@ti.com> regulator: pass additional of_node to regulator_register()

With device tree support for regulators, its needed that the
regulator_dev->dev device has the right of_node attached.
To be able to do this add an additional parameter to the
regulator_register() api, wherein the dt-adapted driver can
then pass this additional info onto the regulator core.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
65602c32ee9b5500e3cb617ccec2154ee2191898 17-Jul-2011 Paul Gortmaker <paul.gortmaker@windriver.com> regulator: Add module.h to drivers/regulator users as required

Another group of drivers that are taking advantage of the implicit
presence of module.h -- and will break when we pull the carpet out
from under them during a cleanup. Fix 'em now.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
500c524aad173864a58e128d0be9713fa5846471 09-Aug-2011 Xin Xie <xxie@nvidia.com> regulator: tps6586x: add SMx slew rate setting

Add output vlotage slew rate setting for SM0/SM1

Signed-off-by: Xin Xie <xxie@nvidia.com>
Signed-off-by: Danny Huang <dahuang@nvidia.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
3a93f2a9f4d8f73d74c0e552feb68a10f778a219 10-Nov-2010 Mark Brown <broonie@opensource.wolfsonmicro.com> regulator: Report actual configured voltage to set_voltage()

Change the interface used by set_voltage() to report the selected value
to the regulator core in terms of a selector used by list_voltage().
This allows the regulator core to know the voltage that was chosen
without having to do an explict get_voltage(), which would be much more
expensive as it will generally access hardware.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
1b39ed0cf51193f3ba03044369ab4d144712a9b8 01-Dec-2010 Danny Huang <dahuang@nvidia.com> regulator: tps6586x: correct register table

Correct the register table for SM2, LDO8, RTC

Change-Id: I45348cec5ffbb7da9bd7523764fb611b537236b8
Signed-off-by: Danny Huang <dahuang@nvidia.com>
Signed-off-by: Olof Johansson <olofj@chromium.org>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
1dbcf35cb5b775e564a793a338c7c3eb65fc6980 01-Dec-2010 Danny Huang <dahuang@nvidia.com> regulator: tps6586x: Handle both enable reg/bits being the same

Change-Id: I40400bb65eab496bb1becd26b37a9653b99d4f41
Signed-off-by: Danny Huang <dahuang@nvidia.com>
Signed-off-by: Olof Johansson <olofj@chromium.org>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
(Split into separate patches)
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
64db657b5a45f1676d421e2bdfb7d4910dce87d3 01-Dec-2010 Danny Huang <dahuang@nvidia.com> regulator: tps6586x: Fix TPS6586X_DVM to store goreg/bit

Change-Id: Idacf5e1e51dbbbcd5ea93f310a4e907977e7359e
Signed-off-by: Danny Huang <dahuang@nvidia.com>
Signed-off-by: Olof Johansson <olofj@chromium.org>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
(Split into separate patches)
(Minor formatting fixes)
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
4f58670709af7b890eceab325e9e470f209459ca 01-Dec-2010 Danny Huang <dahuang@nvidia.com> regulator: tps6586x: Add missing bit mask generation

Change-Id: I76eaceb31b56264f6978af15db1e6fc7e2e01b5a
Signed-off-by: Danny Huang <dahuang@nvidia.com>
Signed-off-by: Olof Johansson <olofj@chromium.org>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
(Split into separate patches)
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
938b45927c240cf75a01ce29af3f173762e762f8 22-Aug-2010 Axel Lin <axel.lin@gmail.com> regulator: tps6586x-regulator - fix bit_mask parameter for tps6586x_set_bits()

The third parameter of tps6586x_set_bits() is the bit_mask,
thus we should use (1 << ri->go_bit) instead of ri->go_bit.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
327531bada36e5786b13bb6918ad8afc545adfa2 22-Aug-2010 Axel Lin <axel.lin@gmail.com> regulator: tps6586x-regulator - fix value range checking for val

val is used as array index of ri->voltages.
Thus the valid value range should be 0 .. ri->desc.n_voltages - 1.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
120be663285f80e3501e36ccbb92e7143585fd93 10-Aug-2010 Mark Brown <broonie@opensource.wolfsonmicro.com> regulator: Remove default DEBUG define from TPS6586x

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Mike Rapoport <mike@compulab.co.il>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
e7973c3cb352e09751afabcb0c0f9fd3032965b6 09-Aug-2010 Axel Lin <axel.lin@gmail.com> regulator: tps6586x - add regulator_unregister() in tps6586x_regulator_remove()

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Mike Rapoport <mike@compulab.co.il>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
4cc2e3934bd74afbdff595ad2183e8aa25d0a0f2 30-Jul-2010 Gary King <gking@nvidia.com> regulator: tps6586x: fix millivolt return values and SM2 table

Hi Liam,
Below are bugfixes for the tps6586x spotted by Gary King.
Please add this patch to your regulator tree.

Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
49610235d58ac44617b4878eb731f65ec4e87aa2 27-Jul-2010 Mike Rapoport <mike@compulab.co.il> regulator: add TPS6586X regulator driver

Signed-off-by: Mike Rapoport <mike@compulab.co.il>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>