aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-02-26regulator: 88pm8607: Remove unused fields from struct pm8607_regulator_infoAxel Lin1-14/+5
The *i2c and *i2c_8606 are no longer used since this driver was converted to use regmap helpers. The *chip and *regulator are not really required. So remove these unused fields. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-26regulator: 88pm8607: Simplify pm8607_list_voltage implementationAxel Lin1-9/+10
Set volt_table filed then we can use regulator_list_voltage_table. Since we have volt_table setting, now we can remove vol_table from struct pm8607_regulator_info. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-26regulator: cpcap: Constify omap4_regulators and xoom_regulatorsAxel Lin1-2/+2
They should never change, make them const. Signed-off-by: Axel Lin <[email protected]> Acked-by: Tony Lindgren <[email protected]> Reviewed-by: Sebastian Reichel <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-26regulator: cpcap: Remove unused vsel_shift from struct cpcap_regulatorAxel Lin1-52/+50
This driver uses regulator_get/set_voltage_sel_regmap so it does not use vsel_shift. Actually, vsel_shift can be calculated by vsel_mask setting. Signed-off-by: Axel Lin <[email protected]> Tested-by: Tony Lindgren <[email protected]> Reviewed-by: Sebastian Reichel <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-26dt-bindings: regulator: tps65218: rectify units of LS3Christian Hohnstaedt1-2/+2
LS3 has a selectable current limit. Change units to microamp in the example. Signed-off-by: Christian Hohnstaedt <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-26dt-bindings: regulator: add LS2 load switch documentationChristian Hohnstaedt1-0/+5
Document device-tree settings of the load-switch LS2 in the tps65218 device. Signed-off-by: Christian Hohnstaedt <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-26regulator: da9062: Use struct_size() in devm_kzalloc()Gustavo A. R. Silva1-4/+2
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; size = sizeof(struct foo) + count * sizeof(struct boo); instance = alloc(size, GFP_KERNEL) Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: instance = alloc(struct_size(instance, entry, count), GFP_KERNEL) Notice that, in this case, variable size is not necessary, hence it is removed. This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva <[email protected]> Acked-by: Steve Twiss <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-26regulator: mcp16502: Remove module versionAxel Lin1-1/+0
The module version is unlikely to be updated, use kernel version should be enough. Signed-off-by: Axel Lin <[email protected]> Acked-by: Nicolas Ferre <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-26regulator: fan53555: Check pdata->slew_rate settingAxel Lin1-3/+5
Current code does not really avoid array access out of bounds, fix it by add checking for pdata->slew_rate. If pdata->slew_rate is too big, it's a bug in pdata that needs fix. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-26regulator: arizona_ldo1: Simplify arizona_ldo1_hc_set/get_voltage_selAxel Lin1-13/+6
Setup .vsel_reg and .vsel_mask then we can use the standard set/get_voltage_sel_regmap helpers to simplify the code. Signed-off-by: Axel Lin <[email protected]> Acked-by: Charles Keepax <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-22regulator: da9063: Use struct_size() in devm_kzalloc()Gustavo A. R. Silva1-4/+2
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; size = sizeof(struct foo) + count * sizeof(struct boo); instance = alloc(size, GFP_KERNEL) Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: instance = alloc(struct_size(instance, entry, count), GFP_KERNEL) Notice that, in this case, variable size is not necessary, hence it is removed. This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-22regulator: mt6311: Use linear instead of linear range for mt6311_buck_opsAxel Lin1-8/+2
Current code already set .min_uV and .uV_step fields and it actually can use regulator_list_voltage_linear. So remove buck_volt_range and use regulator_list_voltage_linear instead. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-22regulator: max77650: Fix set_current_limit implementationAxel Lin1-4/+2
Current code always return error, fix it. Signed-off-by: Axel Lin <[email protected]> Reviewed-by: Bartosz Golaszewski <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-22regulator: tps65218: Add support for LS2Christian Hohnstaedt2-6/+15
Re-use the "tps65218_pmic_*_current_limit()" functions of LS3 and calculate the different required bit-shift by counting the trailing 0s in "struct regulator_desc.csel_mask" Signed-off-by: Christian Hohnstaedt <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-21regulator: s5m8767: Simplify s5m8767_set_voltage_time_sel implementationAxel Lin1-5/+1
Signed-off-by: Axel Lin <[email protected]> Reviewed-by: Krzysztof Kozlowski <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-21regulator: s5m8767: Constify s5m8767_opmode_regAxel Lin1-1/+1
The s5m8767_opmode_reg should never change, make it const. Signed-off-by: Axel Lin <[email protected]> Reviewed-by: Krzysztof Kozlowski <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-21regulator: core: Log forbidden DRMS operationMarc Gonzalez1-1/+3
When REGULATOR_CHANGE_DRMS is not set, drms_uA_update is a no-op. It used to print a debug message, which was dropped in commit 8a34e979f684 ("regulator: refactor valid_ops_mask checking code") Let's bring the debug message back, because it helps find missing regulator-allow-set-load properties. Signed-off-by: Marc Gonzalez <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-21regulator: lp873x: Constify lp873x_buck_ramp_delay arrayAxel Lin1-1/+1
The lp873x_buck_ramp_delay should never change, make it const. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-21.mailmap: Add Mathieu OthaceheMathieu Othacehe1-0/+1
Some contributions appears as Mathieu Othacehe and other as Mathieu OTHACEHE. Signed-off-by: Mathieu Othacehe <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-21regulator: fan53555: Add support for FAN53526Bjorn Andersson2-11/+93
The FAN53526 differs from the FAN53555 only in that the mode bit in VSEL0/VSEL1 is moved to the CONTROL register, the voltage selector mask is extended by 1 bit and the step is different. So extend the existing fan53555 driver to support FAN53526 as well. Signed-off-by: Bjorn Andersson <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-20regulator: twl6030: Constify regulator_opsAxel Lin1-4/+4
Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-20regulator: twl6030: Use regulator_list_voltage_linear_range for twl6030ldo_opsAxel Lin1-46/+27
Use linear range to replace the twl6030ldo_list_voltage implementation. With this change, the min_mV is not used and can be removed from struct twlreg_info. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-20regulator: max77650: Add missing .owner field in regulator_descAxel Lin1-0/+6
Add missing .owner field in regulator_desc, which is used for refcounting. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-20regulator: max77620: Add missing .owner field in regulator_descAxel Lin1-0/+2
Add missing .owner field in regulator_desc, which is used for refcounting. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-19regulator: axp20x: remove a redundant null check on rdevColin Ian King1-3/+0
Currently rdev is dereferenced when assigning desc before rdev is null checked, this is leading to static analysis warnings. However, rdev can never be null, so the null check is redundant and can be removed. Detected by CoverityScan, CID#1476031 ("Dereference before null check") Fixes: 77e3e3b165db ("regulator: axp20x: add software based soft_start for AXP209 LDO3") Signed-off-by: Colin Ian King <[email protected]> Acked-by: Chen-Yu Tsai <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-19regulator: da9063: Select maximum current in specific range for ↵Axel Lin1-1/+1
set_current_limit Selecting the minimal value is only true for voltage regulators. For current regulators the maximum in the given range should be selected instead. Signed-off-by: Axel Lin <[email protected]> Acked-by: Steve Twiss <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-19regulator: da9062: Select maximum current in specific range for ↵Axel Lin1-1/+1
set_current_limit Selecting the minimal value is only true for voltage regulators. For current regulators the maximum in the given range should be selected instead. Signed-off-by: Axel Lin <[email protected]> Acked-by: Steve Twiss <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-19Merge branch 'regulator-5.0' into regulator-5.1 stpmic1 const/rangeMark Brown13-144/+153
2019-02-19regulator: stpmic1: Change buck1 voltage rangePascal PAILLET-LME1-3/+4
Change buck1 voltage range to be conform with the data-sheet. Signed-off-by: pascal paillet <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-19regulator: stpmic1: Add active discharge supportPascal PAILLET-LME1-13/+55
Add support for active discharge for USB power switches. Signed-off-by: pascal paillet <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-19dt-bindings: regulator: Add active discharge support for stpmic1Pascal PAILLET-LME1-0/+1
Add support for active discharge for USB power switches. Signed-off-by: pascal paillet <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-19regulator: stpmic1: Remove support for regulator pull downPascal PAILLET-LME1-12/+0
Regulator high pull down are enabled by default so remove support in the driver. Signed-off-by: pascal paillet <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-19dt-bindings: regulator: remove regulator pull-down support for stpmic1Pascal PAILLET-LME1-2/+0
Regulator high pull down are enabled by default so remove support in the driver. Signed-off-by: Pascal Paillet <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-19regulator: stpmic1: Simplify regulators registrationPascal PAILLET-LME1-116/+52
Stop using a regulator_init callback. This leads to a more simple regulator registration code. This also permits to spuress struct stpmic1_regulator. Also rename stpmic1_regulators_matches to stpmic1_matches. Signed-off-by: pascal paillet <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-19dt-bindings: regulator: remove interrupt-parent description on stpmic1Pascal PAILLET-LME1-3/+0
The interrupt parent description is not needed as the parent is a parent node with 'interrupt-controller' property. Signed-off-by: pascal paillet <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-19regulator: stpmic1: Use regulator mode definition from bindingsPascal PAILLET-LME1-3/+2
Get the regulator mode definition from the bindings header. Signed-off-by: pascal paillet <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-19regulator: core: Drop lockdep annotation in drms_uA_update()Niklas Cassel1-2/+0
commit e5e21f70bfd3 ("regulator: core: Take lock before applying system load") took the regulator lock before calling drms_uA_update() in order to silence a lockdep warning during regulator_register(). However, we are not supposed to need locks at this point as the regulator is in the process of being registered, so there should be no possibility of concurrent access. Instead, remove the unnecessary locking and simply drop the lockdep annotation, since it is no longer valid. Fixes: e5e21f70bfd3 ("regulator: core: Take lock before applying system load") Signed-off-by: Niklas Cassel <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-18regulator: stpmic1: Remove regul_id and *regmap from struct stpmic1_regulatorAxel Lin1-8/+4
At the context with *rdev available, regulator core provides rdev_get_id()/rdev_get_regmap() APIs to get regulator id and *regmap. So no need to store them in struct stpmic1_regulator. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-18regulator: pv88060: Fix .ops for PV88060_SWAxel Lin1-3/+8
There is no vsel_reg/vsel_mask settings for PV88060_ID_SWx, so don't use pv88060_ldo_ops for PV88060_SW. The PV88060_ID_SWx is fixed voltage, set .fixed_uV instead of .min_uV then regulator core will automatically support get_voltage and list_voltage. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-18regulator: core: remove unused rdev_get_supply()Masahiro Yamada1-8/+0
This is a remnant of commit 70a7fb80e85a ("regulator: core: Fix nested locking of supplies"). Signed-off-by: Masahiro Yamada <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-18regulator: axp20x: fix DCDCB and BLDO2 definitions for AXP806Ondrej Jirman1-2/+2
This fixes another set of errors from the refactoring of literals to mask preproccesor definitions. Found by debugging a broken voltage setup on Orange Pi One Plus. Fixes: db4a555f7c4cf ("regulator: axp20x: use defines for masks") Signed-off-by: Ondrej Jirman <[email protected]> Acked-by: Chen-Yu Tsai <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-15regulator: core: Take lock before applying system loadNiklas Cassel1-0/+2
Take the regulator lock before applying system load. Fixes the following lockdep splat: [ 5.583581] WARNING: CPU: 1 PID: 16 at drivers/regulator/core.c:925 drms_uA_update+0x114/0x360 [ 5.588467] Modules linked in: [ 5.596833] CPU: 1 PID: 16 Comm: kworker/1:0 Not tainted 5.0.0-rc6-next-20190213-00002-g0fce66ab480f #18 [ 5.599933] Hardware name: Qualcomm Technologies, Inc. APQ 8016 SBC (DT) [ 5.609544] Workqueue: events qcom_channel_state_worker [ 5.616209] pstate: 60000005 (nZCv daif -PAN -UAO) [ 5.621152] pc : drms_uA_update+0x114/0x360 [ 5.626006] lr : drms_uA_update+0x110/0x360 [ 5.630084] sp : ffff0000124b3490 [ 5.634242] x29: ffff0000124b3490 x28: ffff800005326e00 [ 5.637735] x27: ffff0000124b35f8 x26: 000000000032bc48 [ 5.643117] x25: ffff800004c7e800 x24: ffff800004c6d500 [ 5.648411] x23: ffff800004c38a80 x22: 00000000000000d1 [ 5.653706] x21: 00000000001ab3f0 x20: ffff800004c7e800 [ 5.659001] x19: ffff0000114c3000 x18: ffffffffffffffff [ 5.664297] x17: 0000000000000000 x16: 0000000000000000 [ 5.669592] x15: ffff0000114c3808 x14: 0720072007200720 [ 5.674888] x13: 00000000199c9b28 x12: ffff80002bcccc40 [ 5.680183] x11: ffff000012286000 x10: ffff0000114c3808 [ 5.685477] x9 : 0720072007200720 x8 : ffff000010e9e808 [ 5.690772] x7 : ffff0000106da568 x6 : 0000000000000000 [ 5.696067] x5 : 0000000000000000 x4 : 0000000000000000 [ 5.701362] x3 : 0000000000000004 x2 : 0000000000000000 [ 5.706658] x1 : 0000000000000000 x0 : 0000000000000000 [ 5.711952] Call trace: [ 5.717223] drms_uA_update+0x114/0x360 [ 5.719405] regulator_register+0xb30/0x1140 [ 5.723230] devm_regulator_register+0x4c/0xa8 [ 5.727745] rpm_reg_probe+0xfc/0x1b0 [ 5.731992] platform_drv_probe+0x50/0xa0 [ 5.735727] really_probe+0x20c/0x2b8 [ 5.739718] driver_probe_device+0x58/0x100 [ 5.743368] __device_attach_driver+0x90/0xd0 [ 5.747363] bus_for_each_drv+0x64/0xc8 [ 5.751870] __device_attach+0xd8/0x138 [ 5.755516] device_initial_probe+0x10/0x18 [ 5.759341] bus_probe_device+0x98/0xa0 [ 5.763502] device_add+0x3d0/0x640 [ 5.767319] of_device_add+0x48/0x58 [ 5.770793] of_platform_device_create_pdata+0xb0/0x128 [ 5.774629] of_platform_bus_create+0x174/0x370 [ 5.779569] of_platform_populate+0x78/0xe0 [ 5.784082] qcom_smd_rpm_probe+0x80/0xa0 [ 5.788245] rpmsg_dev_probe+0x114/0x1a0 [ 5.792411] really_probe+0x20c/0x2b8 [ 5.796401] driver_probe_device+0x58/0x100 [ 5.799964] __device_attach_driver+0x90/0xd0 [ 5.803960] bus_for_each_drv+0x64/0xc8 [ 5.808468] __device_attach+0xd8/0x138 [ 5.812115] device_initial_probe+0x10/0x18 [ 5.815936] bus_probe_device+0x98/0xa0 [ 5.820099] device_add+0x3d0/0x640 [ 5.823916] device_register+0x1c/0x28 [ 5.827391] rpmsg_register_device+0x4c/0x90 [ 5.831216] qcom_channel_state_worker+0x170/0x298 [ 5.835651] process_one_work+0x294/0x6e8 [ 5.840241] worker_thread+0x40/0x450 [ 5.844318] kthread+0x11c/0x120 [ 5.847961] ret_from_fork+0x10/0x18 [ 5.851260] irq event stamp: 9090 [ 5.854820] hardirqs last enabled at (9089): [<ffff000010160798>] console_unlock+0x3e0/0x5b0 [ 5.858086] hardirqs last disabled at (9090): [<ffff0000100817cc>] do_debug_exception+0x104/0x140 [ 5.866596] softirqs last enabled at (9086): [<ffff000010082024>] __do_softirq+0x474/0x574 [ 5.875446] softirqs last disabled at (9079): [<ffff0000100f2254>] irq_exit+0x13c/0x148 [ 5.883598] ---[ end trace 6984ef7f081afa21 ]--- Fixes: fa94e48e13a1 ("regulator: core: Apply system load even if no consumer loads") Signed-off-by: Niklas Cassel <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-15regulator: ltc3676: Fix module descriptionAxel Lin1-1/+1
This driver is for LTC3676 rather than LTC1376. Signed-off-by: Axel Lin <[email protected]> Acked-by: Tim Harvey <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-15regulator: ltc3676: Simplify .readable_reg and .writable_reg callbacksAxel Lin1-58/+5
Use case range for continuous range to make the code shorter. The .readable_reg and .writable_reg implementation are exactly the same, so use a common ltc3676_readable_writeable_reg function instead. Signed-off-by: Axel Lin <[email protected]> Acked-by: Tim Harvey <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-14regulator: bd718x7: Support SNVS low power stateMatti Vaittinen1-25/+176
read ROHM BD71837 / BD71847 specific device tree bindings for controlling the PMIC shutdown/reset states and voltages for different HW states. The PMIC was designed to be used with NXP i.MX8 SoC and it supports SNVS low power state which seems to be typical for NXP i.MX SoCs. However, when SNVS is used we must not allow SW to control enabling/disabling those regulators which are crucial for system to boot as there is a HW limitation which causes SW controlled regulators to be kept shut down after SNVS reset. Allow setting the SNVS to be used as reset target state and allow marking those regulators which are critical for boot. Signed-off-by: Matti Vaittinen <[email protected]> Tested-by: Angus Ainslie <[email protected]> Reviewed-by: Angus Ainslie <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-14regulator: add regulator_desc_list_voltage_linear_rangeMatti Vaittinen2-10/+35
Add regulator_desc_list_voltage_linear_range which can be used by drivers for getting the voltages before regulator is registered. This may be useful for drivers which need to fetch the voltage selectors at device-tree parsing callback. Signed-off-by: Matti Vaittinen <[email protected]> Acked-by: Mark Brown <[email protected]> Tested-by: Angus Ainslie <[email protected]> Reviewed-by: Angus Ainslie <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-14devicetree: bindings: bd718x7: document HW state related ROHM specific ↵Matti Vaittinen2-0/+55
properties Add ROHM BD71837 / BD71847 specific device tree bindings for controlling the PMIC shutdown/reset states and voltages for different HW states. The PMIC was designed to be used with NXP i.MX8 SoC and it supports SNVS low power state which seems to be typical for NXP i.MX SoCs. However, when SNVS is used we must not allow SW to control enabling/disabling those regulators which are crucial for system to boot as there is a HW limitation which causes SW controlled regulators to be kept shut down after SNVS reset. Allow setting the SNVS to be used as reset target state and allow marking those regulators which are critical for boot. Signed-off-by: Matti Vaittinen <[email protected]> Tested-by: Angus Ainslie <[email protected]> Reviewed-by: Angus Ainslie <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-14regulator: bd70528: drop struct bd70528Matti Vaittinen1-2/+2
As a result of exporting the bd70528 specific locking functions we no longer need struct bd70528. Remove references to struct bd70528 from bd70528 regulator. Signed-off-by: Matti Vaittinen <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2019-02-13regulator: s2mpa01: Fix step values for some LDOsStuart Menefy1-5/+5
The step values for some of the LDOs appears to be incorrect, resulting in incorrect voltages (or at least, ones which are different from the Samsung 3.4 vendor kernel). Signed-off-by: Stuart Menefy <[email protected]> Reviewed-by: Krzysztof Kozlowski <[email protected]> Signed-off-by: Mark Brown <[email protected]> Cc: [email protected]
2019-02-12regulator: max77802-regulator: fix indentation in if statementColin Ian King1-3/+3
There are several lines in an if statement that are not indented correctly. Fix these by removing the tabs. Signed-off-by: Colin Ian King <[email protected]> Signed-off-by: Mark Brown <[email protected]>