summaryrefslogtreecommitdiff
path: root/include/linux/regulator (unfollow)
Commit message (Collapse)Author
2020-01-23regulator: ab8500: Remove SYSCLKREQ from enum ab8505_regulator_idStephan Gerhold
commit 458ea3ad033fc86e291712ce50cbe60c3428cf30 upstream. Those regulators are not actually supported by the AB8500 regulator driver. There is no ab8500_regulator_info for them and no entry in ab8505_regulator_match. As such, they cannot be registered successfully, and looking them up in ab8505_regulator_match causes an out-of-bounds array read. Fixes: 547f384f33db ("regulator: ab8500: add support for ab8505") Cc: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Stephan Gerhold <stephan@gerhold.net> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20191106173125.14496-2-stephan@gerhold.net Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-12-21regulator: Fix return value of _set_load() stubMark Brown
[ Upstream commit f1abf67217de91f5cd3c757ae857632ca565099a ] The stub implementation of _set_load() returns a mode value which is within the bounds of valid return codes for success (the documentation just says that failures are negative error codes) but not sensible or what the actual implementation does. Fix it to just return 0. Reported-by: Cheng-Yi Chiang <cychiang@chromium.org> Signed-off-by: Mark Brown <broonie@kernel.org> Reviewed-by: Douglas Anderson <dianders@chromium.org> Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
2017-05-03drivers: regulator: Add snapshot of OnSemi NCP6335D regulatorAnirudh Ghayal
This is snapshot of the OnSemi NCP6335D driver as of msm-3.10 'commit 156ba1726643 ("regulator: onsemi-ncp6335d: Add i2c retry logic")'. Change-Id: I4cf0acd272fcf498462d4397385cd62f144eadf8 Signed-off-by: Kiran Gunda <kgunda@codeaurora.org>
2017-04-19regulator: qpnp-labibb: Handle LAB short circuit(SC) detectionKiran Gunda
On certain PMICs, there is no short circuit (SC) detection available in LAB module. Add support to detect it manually and disable LAB/IBB module upon SC detection. In addition, notify it to OLEDB driver to disable OLEDB module. Change-Id: I2a9dc5b1ae8ece45c85b3992026c7f389fd4d135 Signed-off-by: Kiran Gunda <kgunda@codeaurora.org>
2017-02-22regulator: qpnp-labibb: Add support for notifier callbackKiran Gunda
Some drivers (e.g. OLEDB) would need to know about LAB_VREG_OK status from the LABIBB module. Hence, add support for the notifier callback so that required drivers can be notified about LAB_VREG_OK status. Change-Id: Ib60c94c7557ee6ffb7595dee5bd268bb76faaf6e Signed-off-by: Kiran Gunda <kgunda@codeaurora.org>
2017-02-03regulator: qpnp-regulator: correct various coding style issuesDavid Collins
Correct warnings flagged by checkpatch. In particular, modify the following: - Use octal file permissions instead of symbolic. - Add 'const' to type of struct of_device_id variables. - Remove unnecessary out-of-memory error messages. - Change variables of type 'unsigned' to 'unsigned int'. - Restructure conditionals to avoid else after return/break. - Remove 'return' from the end of void functions. - Join strings that are wrapped across two lines. - Remove ';' from the end of a macro definition. - Update the REGULATOR_QPNP Kconfig entry and the device tree documentation to use the name: 'Qualcomm Technologies, Inc.' Change-Id: I9f2cde58929ae57667366bb886e65154d36dfd3d Signed-off-by: David Collins <collinsd@codeaurora.org>
2016-12-12regulator: cpr3: support LDO handling for different LDO typesTirupathi Reddy
An LDO300 regulator is used by the GPU rail on msmfalcon. This LDO is CPR managed and uses a different configuration/control scheme compared to Kryo LDO. Add support for this LDO in the CPR3 framework. CRs-Fixed: 1068294 Change-Id: Ia45152fe211f2ece1028c5cb978beebda86faba3 Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
2016-03-23regulator: msm: Add snapshot of the stub regulator driverDevesh Jhunjhunwala
This is a snapshot of the Documentation and header file for the stub regulator driver as of msm-3.18 kernel commit: 2642c0adc79c06c0f3225da0177e910a1cea8cb5 ("Merge "ARM: dts: msm: Add support for truly 720p command mode panel on msmgold"") Signed-off-by: Devesh Jhunjhunwala <deveshj@codeaurora.org>
2016-03-01regulator: core: put debugfs consumer handle when unregistering a regulatorDavid Collins
Ensure that regulator_put() is called on the core debugfs consumer pointer for a given regulator when the debugfs interface is no longer needed. This includes inside of the regulator_unregister() function as well as in the error return path of rdev_init_debugfs(). Change-Id: I10563ae1716f31bdc5840d22633fdbfe278330f1 Signed-off-by: David Collins <collinsd@codeaurora.org>
2016-03-01regulator: core: add regulator_list_corner_voltage functionDavid Collins
Introduce a regulator_list_corner_voltage function for consumers that need to know the maximum absolute voltage that may be physically configured when a regulator is operating at a given voltage corner. Change-Id: Ide7a0b502796774fcad01f5cb5679f0938c72f96 Signed-off-by: David Collins <collinsd@codeaurora.org> [adharmap: fixed merge conflicts] Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org> Conflicts: include/linux/regulator/consumer.h
2016-03-01regulator: core: fix regulator bypass logicOsvaldo Banuelos
Since the regulator debugfs consumer does not call regulator_allow_bypass() on its regulator handles, regulators will not be placed on bypass mode even if all other consumers request for this. Fix this by introducing an open offset count that can be used to selectively disregard the debugfs consumer. Also, introduce a debugfs file to allow or disallow bypass mode on each regulator by leveraging on the new open offset count. Change-Id: If12534dac5e6b1c82acac9b5250137b4f816b922 Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
2016-03-01regulator: Call proxy-consumer functions for each regulator registeredDavid Collins
Add a call to regulator_proxy_consumer_register() at the end of regulator_register() and a call to regulator_proxy_consumer_unregister() at the beginning of regulator_unregister(). These calls ensure that proxy consumer features may be used by any type of regulator regardless of the driver supporting it. Change-Id: Ia70da1df47042fa673c42f389136557f868d19a3 Signed-off-by: David Collins <collinsd@codeaurora.org> [abhimany: resolve trivial merge conflicts] Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org> [adharmap: resolve trivial merge conflicts] Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2016-03-01regulator: Add regulator_bulk_set_voltageJustin Paupore
Add a convenience API to set the voltage on multiple consumers stored in a struct regulator_bulk_data[] in one API call. Change-Id: Iaeb5ba8c357a66f1401fb1e142bb03904e8e9c7c Signed-off-by: Justin Paupore <jpaupore@codeaurora.org>
2016-03-01regulator: add notifier event for regulator enableDavid Collins
Add a notifier event which is triggered when a regulator is enabled. This can be used by a driver which must configure the hardware state whenever a given supply is enabled even if some other consumer was responsible for enabling the supply. Change-Id: Ic8363308b64953451dd01756e1bfdc2a64527096 Signed-off-by: David Collins <collinsd@codeaurora.org> Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org> [osvaldob: resolve trivial merge conflicts] Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org> [adharmap: 0x100 was taken by PRE_VOLTAGE_CHANGE use 0x1000 for ENABLE]
2016-03-01qpnp: Add snapshot of some qpnp, regulator and charger driversAbhijeet Dharmapurikar
This snapshot is taken as of msm-3.18 commit 9da4ddc (Merge "clk: msm: clock-gcc: Associate gfx rail voting with gfx3d branch") Change-Id: Idd2f467f1f1863a156d1757589dfe78158f0e43f Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2015-10-16regulator: introduce min_dropout_uVSascha Hauer
Many voltage Regulators need a input voltage that is higher than the output voltage. Allow to specify a minimum dropout voltage which will be used later to find the best input voltage for regulators. [Changed uv to uV for consistency and legibility -- broonie] Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-08-17regulator: core: Define regulator_set_voltage_triplet()Viresh Kumar
Voltage tolerance isn't necessarily same on both sides of the target voltage and regulator_set_voltage_tol() wouldn't be suitable in such cases. Add another routine regulator_set_voltage_triplet(), which accepts target, min and max voltages as arguments. This first tries to set the voltage between the target voltage and the upper limit, then fall back on the full range. The idea behind this is to set regulator's voltage as close to the target voltage, as possible. Based on regulator_set_voltage_tol(). Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-07-24regulator: Add over current protection (OCP) supportStephen Boyd
Some regulators can automatically shut down when they detect an over current event. Add an op (set_over_current_protection) and a DT property + constraint to support this capability. Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-07-24regulator: mt6311: Add support for mt6311 regulatorHenry Chen
Add regulator support for mt6311. It has 2 regulaotrs - Buck and LDO, provide the related buck/ldo voltage data to the driver, and creates the regulator_desc table. Supported operations for Buck are enabled/disabled and voltage change, only enabled/disabled for LDO. Signed-off-by: Henry Chen <henryc.chen@mediatek.com> Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-07-13regulator: da9211: support da9215James Ban
This is a patch for supporting da9215 buck converter. Signed-off-by: James Ban <james.ban.opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-07-10regulator: Add missing dummy definition for regulator_list_voltageSuzuki K. Poulose
Fixes a build break when CONFIG_REGULATOR is not selected. e.g, on linux-next - 07102015: drivers/clk/tegra/clk-dfll.c: In function ‘find_lut_index_for_rate’: drivers/clk/tegra/clk-dfll.c:691:3: error: implicit declaration of function ‘regulator_list_voltage’ [-Werror=implicit-function-declaration] if (regulator_list_voltage(td->vdd_reg, td->i2c_lut[i]) == uv) ^ CC drivers/clocksource/mmio.o CC fs/proc/softirqs.o cc1: some warnings being treated as errors make[3]: *** [drivers/clk/tegra/clk-dfll.o] Error 1 make[2]: *** [drivers/clk/tegra] Error 2 make[1]: *** [drivers/clk] Error 2 make[1]: *** Waiting for unfinished jobs.... This should be pushed to 4.2 as we have the issue in 4.2-rc1, just that nobody uses it without the REGULATOR(yet). Signed-off-by: Suzuki K. Poulose <suzuki.poulose@arm.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-15regulator: Add docbook for soft startStephen Boyd
The docbook for these members is missing. Add them. Warning(include/linux/regulator/machine.h:147): No description found for parameter 'soft_start' Warning(include/linux/regulator/driver.h:197): No description found for parameter 'set_soft_start' Reported-by: kbuild test robot <fengguang.wu@intel.com> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-12regulator: Add input current limit supportStephen Boyd
Some regulators can limit their input current (typically annotated as ilim). Add an op (set_input_current_limit) and a DT property + constraint to support this. Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-12regulator: Add soft start supportStephen Boyd
Some regulators support a "soft start" feature where the voltage ramps up slowly when the regulator is enabled. Add an op (set_soft_start) and a DT property + constraint to support this. Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-12regulator: Add pull down supportStephen Boyd
Some regulators need to be configured to pull down a resistor when the regulator is disabled. Add an op (set_pull_down) and a DT property + constraint to support this. Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-06-12regulator: Add system_load constraintStephen Boyd
Some regulators have a fixed load that isn't captured by consumers that the kernel knows about. Add a constraint to support this. Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-05-22regulator: max8973: add mechanism to enable/disable through GPIOLaxman Dewangan
MAX8973 supports the voltage output enable/disable through its EN pin. This EN pin can be connected through GPIO from host processor. Add support to provide GPIO number from platform/DT and if it is valid GPIO then enable external control default. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-04-01regulator: Defer lookup of supply to regulator_getBjorn Andersson
Instead of resolving regulator supplies during registration move this to the time of a consumer retrieving a handle. The benefit is that it's possible for one driver to register regulators with internal dependencies out of order. Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-03-18regulator: Fix documentation for regmap in the configAxel Lin
dev_get_regulator() does not exist, fix the typo. Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-03-09regulator: Drop temporary regulator_set_optimum_mode wrapperBjorn Andersson
Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-03-09regulator: Rename regulator_set_optimum_modeBjorn Andersson
Rename the regulator_set_optimum_mode() function regulator_set_load() to better represent what's going on. Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-03-06regulator: act8865: Add act8600 supportZubair Lutfullah Kakakhel
This patch adds act8600 support to the act8865 driver. VBUS and USB charger supported by this chip can be added later Tested on MIPS Creator CI20 Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-03-05regulator: core: Add devres versions of notifier registrationCharles Keepax
Add devm_regulator_register_notifier, this adds the resource against the device for the consumer supply we are registering the notifier for. There seem to be few use-cases where this wouldn't be the users intention and this ensures the notifiers will always be removed at the correct time. Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-02-24regulator: core: Fix space before TABGeert Uytterhoeven
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-02-23regulator: core: Introduce set_load opBjorn Andersson
Expose the requested load directly to the regulator implementation for hardware that does not support the normal enum based set_mode(). Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-02-04regulator: Fix build breakage on !REGULATORKrzysztof Kozlowski
Add missing stubs for regulator_suspend_prepare() and regulator_suspend_finish() to fix exynos_defconfig build without REGULATOR: arch/arm/mach-exynos/built-in.o: In function `exynos_suspend_finish': arch/arm/mach-exynos/suspend.c:537: undefined reference to `regulator_suspend_finish' arch/arm/mach-exynos/built-in.o: In function `exynos_suspend_prepare': arch/arm/mach-exynos/suspend.c:520: undefined reference to `regulator_suspend_prepare' make: *** [vmlinux] Error 1 Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Reported-by: Joerg Roedel <joro@8bytes.org> Reported-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-01-28regulator: da9211: Add gpio control for enable/disable of buckJames Ban
This is a patch for adding gpio control about enable/disable of buck. Signed-off-by: James Ban <james.ban.opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-01-16regulator: da9211: fix unmatched of_nodeJames Ban
This is a patch for fixing unmatched of_node. Signed-off-by: James Ban <james.ban.opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-01-09regulator: pfuze100-regulator: add pfuze3000 supportRobin Gong
Add pfuze3000 chip support. Signed-off-by: Robin Gong <b38343@freescale.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2015-01-08regulator: Allow parsing custom properties when using simplified DT parsingKrzysztof Kozlowski
When drivers use simplified DT parsing method (they provide 'regulator_desc.of_match') they still may want to parse custom properties for some of the regulators. For example some of the regulators support GPIO enable control. Add a driver-supplied callback for such case. This way the regulator core parses common bindings offloading a lot of code from drivers and still custom properties may be used. The callback, called for each parsed regulator, may modify the 'regulator_config' initially passed to regulator_register(). Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2014-12-24regulator: mt6397: Add support for MT6397 regulatorFlora Fu
Add MT6397 regulator driver. Signed-off-by: Flora Fu <flora.fu@mediatek.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2014-11-26regulator: of: Pass the regulator description in the match tableJavier Martinez Canillas
Drivers can use the of_regulator_match() function to parse the regulator init_data from DT. A match table is used to specify the name of the node containing the regulators, the device node and to return the init_data to the caller. But also the static regulator descriptor is needed to correctly extract some DT properties like the regulator initial and suspend modes. Use the match table to pass that information. Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> Signed-off-by: Mark Brown <broonie@kernel.org>
2014-11-26regulator: of: Add regulator desc param to of_get_regulator_init_data()Javier Martinez Canillas
The of_get_regulator_init_data() function is used to extract the regulator init_data but information on how to extract certain data is defined in the static regulator descriptor (e.g: how to map the hardware operating modes). Add a const struct regulator_desc * parameter to the function signature so the parsing logic could use the information in the struct regulator_desc. of_get_regulator_init_data() relies on of_get_regulation_constraints() to actually extract the init_data so it has to pass the struct regulator_desc but that is modified on a later patch. Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> Signed-off-by: Mark Brown <broonie@kernel.org>
2014-11-26regulator: Add mode mapping function to struct regulator_descJavier Martinez Canillas
The "regulator-initial-mode" and "regulator-mode" DT properties allows to configure the regulator operating modes at startup or when a system enters into a susend state. But these properties use as valid values the operating modes supported by each device while the core deals with the standard operating modes. So a mapping function is needed to translate from the hardware specific modes to the standard ones. This mapping is a non-varying configuration for each regulator, so add a function pointer to struct regulator_desc that will allow drivers to define their callback to do the modes translation. Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> Signed-off-by: Mark Brown <broonie@kernel.org>
2014-11-24regulator: core: Add PRE_DISABLE notificationRichard Fitzgerald
Add a PRE_DISABLE notification so that consumers can use a notifier to run any steps required to prepare for the regulator being switched off. Since the regulator disable can fail an abort notification is also added. Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-24regulator: Return an error from stubbed regulator_get_exclusive()Mark Brown
The user hasn't got a regulator and shouldn't be mislead into thinking they have one; really we should probably remove this stub entirely (and may well before the next merge window). Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-20regulator: Add ena_gpio_initialized to regulator_configMarkus Pargmann
Most drivers do not set the ena_gpio field of struct regulator_config before passing it to the regulator core. This is fine as long as the gpio identifier that is passed is a positive integer. But the gpio identifier 0 is also valid. So we are not able to decide wether we got a real gpio identifier or not based on a 0 in ena_gpio. To be able to decide if it is a valid gpio that got passed, this patch adds a ena_gpio_initialized field that should be set if was initialized with a correct value, either a gpio >= 0 or a negative error number. The core then checks if ena_gpio or ena_gpio_initialized before handling it as a gpio. This way we maintain backwards compatibility and fix the behaviour for gpio number 0. Signed-off-by: Markus Pargmann <mpa@pengutronix.de> Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-13regulator: Include err.h from consumer.h to fix build failureGuenter Roeck
sh:sh2007_defconfig fails to build with the following error: In file included from include/linux/regulator/machine.h:18:0, from arch/sh/boards/board-sh2007.c:10: include/linux/regulator/consumer.h: In function 'regulator_get_optional': include/linux/regulator/consumer.h:271:2: error: implicit declaration of function 'ERR_PTR' include/linux/err.h: At top level: include/linux/err.h:23:35: error: conflicting types for 'ERR_PTR' include/linux/regulator/consumer.h:271:9: note: previous implicit declaration of 'ERR_PTR' was here Since consumer.h uses ERR_PTR, it should include err.h. Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-10regulator: of: Provide simplified DT parsing methodMark Brown
Currently regulator drivers which support DT all repeat very similar code to supply a list of known regulator identifiers to be matched with DT, convert that to platform data which is then matched up with the regulators as they are registered. This is both fiddly to get right and for devices which can use the standard helpers to provide their operations is the main source of code in the driver. Since this code is essentially identical for most drivers we can factor it out into the core, moving the identifiers in the match table into the regulator descriptors and also allowing drivers to pass in the name of the subnode to search. When a driver provides an of_match string for the regulator the core will attempt to use that to obtain init_data, allowing the driver to remove all explicit code for DT parsing and simply provide data instead. The current code leaks the phandles for the child nodes, this will be addressed incrementally and makes no practical difference for FDT anyway as the DT data structures are never freed. Signed-off-by: Mark Brown <broonie@linaro.org>
2014-09-01regulator: max1586: add device-tree supportRobert Jarzmik
Add device-tree support to max1586. The driver can still be used with the legacy platform data, or the new device-tree way. This work is heavily inspired by the device-tree support of its cousin max8660 driver. Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Signed-off-by: Mark Brown <broonie@kernel.org>