summaryrefslogtreecommitdiff
path: root/drivers/regulator
AgeCommit message (Collapse)AuthorFilesLines
2013-03-04regulator: tps6586x: Use dev_err rather than dev_warn for error messageAxel Lin1-1/+1
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>
2013-03-04regulator: tps6586x: (cosmetic) simplify a conditionalGuennadi Liakhovetski1-3/+1
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>
2013-03-04regulator: s5m8767: adjust duplicate testJulia Lawall1-1/+1
Delete successive tests to the same location. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @s exists@ local idexpression y; expression x,e; @@ *if ( \(x == NULL\|IS_ERR(x)\|y != 0\) ) { ... when forall return ...; } ... when != \(y = e\|y += e\|y -= e\|y |= e\|y &= e\|y++\|y--\|&y\) *if ( \(x == NULL\|IS_ERR(x)\|y != 0\) ) { ... when forall return ...; } // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-04regulator: palmas: Change the DT node property names to follow the conventionJ Keerthy1-4/+4
DT node properties should not have "_". Replacing them by "-". Signed-off-by: J Keerthy <j-keerthy@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-04regulators: max8998.c: use dev_err() instead of printk()Thiago Farina1-3/+6
Fixes the following checkpatch warning: WARNING: Prefer netdev_err(netdev, ... then dev_err(dev, ... then pr_err(... to printk(KERN_ERR ... Signed-off-by: Thiago Farina <tfarina@chromium.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-04regulator: max8925: Remove unused parameter from max8925_regulator_dt_initAxel Lin1-3/+2
The info parameter is not used at all, remove it. Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-04regulator: lp8788-ldo: use ena_pin of regulator-core for external controlKim, Milo1-81/+17
Regulator core driver provides enable GPIO control for enabling/disabling a regulator. Now, enable GPIO is shared among regulators. Use this internal working, so unnecessary code are removed. GPIO enable pin configurations are added in digital LDO and analog LDO drivers. Signed-off-by: Milo(Woogyom) Kim <milo.kim@ti.com> Reviewed-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-04regulator: core: use regulator_ena_pin memberKim, Milo1-3/+3
The regulator_dev has regulator_enable_gpio structure. 'ena_gpio' and 'ena_gpio_invert' were moved to in regulator_enable_gpio. regulator_dev ---> regulator_enable_gpio .ena_gpio .gpio .ena_gpio_invert .ena_gpio_invert Pointer, 'ena_pin' is used for checking valid enable GPIO pin. Signed-off-by: Milo(Woogyom) Kim <milo.kim@ti.com> Reviewed-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-04regulator: core: manage enable GPIO listKim, Milo1-6/+44
To support shared enable GPIO pin, replace GPIO code with new static functions Reference count: 'enable_count' Balance the reference count of each GPIO and actual pin control. The count is incremented with enabling GPIO. On the other hand, it is decremented on disabling GPIO. Actual GPIO pin is enabled at the initial use.(enable_count = 0) The pin is disabled if it is not used(shared) any more. (enable_count <=1) Regardless of the enable count, update GPIO state of the regulator. Signed-off-by: Milo(Woogyom) Kim <milo.kim@ti.com> Reviewed-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-04regulator: core: support shared enable GPIO conceptKim, Milo1-10/+76
A Regulator can be enabled by external GPIO pin. This is configurable in the regulator_config. At this moment, the GPIO can be owned by only one regulator device. In some devices, multiple regulators are enabled by shared one GPIO pin. This patch extends this limitation, enabling shared enable GPIO of regulators. New list for enable GPIO: 'regulator_ena_gpio_list' This manages enable GPIO list. New structure for supporting shared enable GPIO: 'regulator_enable_gpio' The enable count is used for balancing GPIO control count. This count is incremented when GPIO is enabled. On the other hand, it's decremented when GPIO is disabled. Reference count: 'request_count' The reference count, 'request_count' is incremented/decremented on requesting/freeing the GPIO. This count makes sure only free the GPIO when it has no users. How it works If the GPIO is already used, skip requesting new GPIO usage. The GPIO is new one, request GPIO function and add it to the list of enable GPIO. This list is used for balancing enable GPIO count and pin control. Updating a GPIO and invert code moved 'ena_gpio' and 'ena_gpio_invert' of the regulator_config were moved to new function, regulator_ena_gpio_request(). Use regulator_enable_pin structure rather than regulator_dev. Signed-off-by: Milo(Woogyom) Kim <milo.kim@ti.com> Reviewed-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-01regulator: fixed regulator_bulk_enable unwinding codeAndrzej Hajda1-3/+7
Unwinding code disables all successfully enabled regulators. Error is logged for every failed regulator. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-01regulator: twl: Remove TWL6030_FIXED_RESOURCEAxel Lin1-13/+0
TWL6030_FIXED_RESOURCE is not used now, remove it. TWL6030_FIXED_RESOURCE is not used since commit e76ab829cc "regulator: twl: Remove references to the twl4030 regulator" twl6030_fixed_resource is removed by commit 029dd3cef "regulator: twl: Remove another unused variable warning". Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-01regulator: twl: Remove VDD1_VSEL_table and VDD2_VSEL_tableAxel Lin1-6/+0
Since commit ba305e31 "regulator: twl: fix twl4030 support for smps regulators", VDD1_VSEL_table and VDD2_VSEL_table are not used any more. Remove them. Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-01regulator: twl: Convert twl4030ldo_ops to get_voltage_selAxel Lin1-5/+4
This fixes an inconsistent behavior between list_voltage() and get_voltage() because current implementation of get_voltage() does not check the case IS_UNSUP() is true. Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-01regulator: twl: Convert twl[6030|4030]fixed_ops to regulator_list_voltage_linearAxel Lin1-12/+3
Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-01regulator: palmas: fix number of SMPS voltagesGraeme Gregory1-1/+2
Number of voltages for SMPS regulators was off by one. Signed-off-by: Graeme Gregory <gg@slimlogic.co.uk> Signed-off-by: Ian Lartey <ian@slimlogic.co.uk> Acked-by: Laxman Dewangan <ldewangan@nvidia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-01regulator: core: fix documentation error in regulator_allow_bypassNishanth Menon1-1/+1
commit f59c8f9f (regulator: core: Support bypass mode) has a short documentation error around the regulator_allow_bypass parameter 'enable' which is documented as 'allow'. This generates kernel-doc warning as follows: ./scripts/kernel-doc drivers/regulator/core.c >/dev/null Warning(drivers/regulator/core.c:2841): No description found for parameter 'enable' Warning(drivers/regulator/core.c:2841): Excess function parameter 'allow' description in 'regulator_allow_bypass' Cc: Liam Girdwood <lgirdwood@gmail.com> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: linux-kernel@vger.kernel.org Signed-off-by: Nishanth Menon <nm@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-01regulator: db8500-prcmu - remove incorrect __exit markupDmitry Torokhov1-2/+2
Even if bus is not hot-pluggable, the devices can be unbound from the driver via sysfs, so we should not be using __exit annotations on remove() methods. The only exception is drivers registered with platform_driver_probe() which specifically disables sysfs bind/unbind attributes. Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-02-19Merge remote-tracking branch 'regulator/topic/tps65090' into regulator-nextMark Brown1-5/+101
2013-02-19Merge remote-tracking branch 'regulator/topic/tps6507x' into regulator-nextMark Brown1-0/+92
2013-02-19Merge remote-tracking branch 'regulator/topic/tps51632' into regulator-nextMark Brown1-49/+103
2013-02-19Merge remote-tracking branch 'regulator/topic/s5m8767' into regulator-nextMark Brown1-62/+206
2013-02-19Merge remote-tracking branch 'regulator/topic/palmas' into regulator-nextMark Brown1-5/+0
2013-02-19Merge remote-tracking branch 'regulator/topic/of' into regulator-nextMark Brown8-19/+30
2013-02-19Merge remote-tracking branch 'regulator/topic/mc13892' into regulator-nextMark Brown3-22/+103
2013-02-19Merge remote-tracking branch 'regulator/topic/max8998' into regulator-nextMark Brown1-13/+1
2013-02-19Merge remote-tracking branch 'regulator/topic/max8997' into regulator-nextMark Brown1-61/+20
2013-02-19Merge remote-tracking branch 'regulator/topic/max77686' into regulator-nextMark Brown1-6/+8
2013-02-19Merge remote-tracking branch 'regulator/topic/lp8788' into regulator-nextMark Brown2-128/+46
2013-02-19Merge remote-tracking branch 'regulator/topic/lp8755' into regulator-nextMark Brown3-0/+576
2013-02-19Merge remote-tracking branch 'regulator/topic/lp872x' into regulator-nextMark Brown1-29/+7
2013-02-19Merge remote-tracking branch 'regulator/topic/lp3972' into regulator-nextMark Brown1-16/+6
2013-02-19Merge remote-tracking branch 'regulator/topic/lp3971' into regulator-nextMark Brown1-16/+6
2013-02-19Merge remote-tracking branch 'regulator/topic/gpio' into regulator-nextMark Brown2-6/+3
2013-02-19Merge remote-tracking branch 'regulator/topic/da9055' into regulator-nextMark Brown1-3/+0
2013-02-19Merge remote-tracking branch 'regulator/topic/core' into regulator-nextMark Brown1-7/+22
2013-02-19Merge remote-tracking branch 'regulator/topic/as3711' into regulator-nextMark Brown1-1/+1
2013-02-19Merge remote-tracking branch 'regulator/topic/arizona' into regulator-nextMark Brown2-4/+75
2013-02-19Merge remote-tracking branch 'regulator/topic/apply' into regulator-nextMark Brown4-111/+33
2013-02-19Merge remote-tracking branch 'regulator/topic/anatop' into regulator-nextMark Brown1-0/+41
2013-02-14regulator: Fix memory garbage dev_err printout.Russ Dill1-2/+2
commit dd8004af: 'regulator: core: Log when a device causes a voltage constraint fail', tried to print out some information about the check consumer min/max uV fixup, however, it uses a garbage pointer left over from list_for_each_entry leading to boot messages in the form: '[ 2.079890] <RANDOM ASCII>: Restricting voltage, 3735899821-4294967295uV' Because it references regulator->dev, it could potentially read memory from anywhere causing a panic. This patch instead uses rdev and the updated min/max uV values. Signed-off-by: Russ Dill <Russ.Dill@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-02-14Merge tag 'v3.8-rc7' into regulator-coreMark Brown67-714/+4290
Linux 3.8-rc7
2013-02-14regulator: max77686: Reuse rdev_get_id() function.Thiago Farina1-6/+8
Signed-off-by: Thiago Farina <tfarina@chromium.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-02-13regulator: tps51632: Use regulator_[get|set]_voltage_sel_regmapAxel Lin1-44/+8
Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-by: Laxman Dewangan <ldewangan@nvidia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-02-13regulator: as3711: Fix checking if no platform initialization dataAxel Lin1-1/+1
To skip registering regulator if no platform initialization data, we should check reg_data rather than ri->desc.name. Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-02-13regulator: s5m8767: Prevent possible NULL pointer dereferenceAxel Lin1-5/+5
s5m8767_pmic_dt_parse_pdata dereferenes pdata, thus check pdata earlier to avoid NULL pointer dereference. Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-02-13regulator: s5m8767: Fix dev argument for devm_kzalloc and ↵Axel Lin1-6/+7
of_get_regulator_init_data Use &pdev->dev rather than iodev->dev for devm_kzalloc() and of_get_regulator_init_data(), this fixes memory leak. Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-02-08regulator: core: Optimize _regulator_do_set_voltage if voltage does not changeAxel Lin1-3/+6
Optimize _regulator_do_set_voltage() for the case selector is equal to old_selector. Since the voltage does not change, we don't need to call set_voltage_sel() and set_voltage_time_sel() in this case. Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-02-08regulator: max8998: Let regulator core handle the case selector == old_selectorAxel Lin1-13/+1
Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-02-08regulator: s5m8767: Use of_get_child_count()Axel Lin1-3/+1
Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>