1
0
Fork 0
alistair23-linux/drivers/regulator
Cristina Ciocan 72eceaad82 MLK-13982: 4.9 rebase: EPDC does not work
The Linux kernel regulator core implementation does not accept negative
voltage values; all negative values are treated as errors.

The problem with the EPDC is that the panel uses a negative voltage
regulator which fails to be enabled by the regulator core. This issue has
slipped up until the 4.9 rebase because the voltage range [min, max] was
checked against only when min = max. This has been fixed in 4.9, resulting
in errors in the VCOM regulator driver.

The fix is to use the negative values when communicating with the hardware,
but send only positive values to the regulator core.

This patch sends the absolute value to the regulator core and transforms
the received value (from the regulator core) to negative one before sending
it to hardware.

Fix device tree to deal with negative voltage regulator values by setting
min_value = -real_max_value and vice versa. Boards affected:
- imx6dl-sabresd
- imx6ull-14x14-ddr3-arm2
- imx7d-12x12-lpddr3-arm2
- imx7d-sdb
- imx6sll-evk
- imx6sl-evk
- imx6sll-lpddr3-arm2

Signed-off-by: Cristina Ciocan <cristina-mihaela.ciocan@nxp.com>
[Arul: Fix merge conflicts]
Signed-off-by: Arulpandiyan Vadivel <arulpandiyan_vadivel@mentor.com>

[Robby: split original patch to driver and dts part. this is driver part.]
Signed-off-by: Robby Cai <robby.cai@nxp.com>
2019-11-25 15:46:07 +08:00
..
88pg86x.c regulator: 88pg86x: new i2c dual regulator chip 2018-03-09 13:01:17 +00:00
88pm800-regulator.c Merge branch 'regulator-5.3' into regulator-next 2019-07-04 17:34:32 +01:00
88pm8607.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
Kconfig MLK-11556-1 pmic: max17135: add hwmon, mfd and regulator drivers for this pmic 2019-11-25 15:46:05 +08:00
Makefile MLK-11556-1 pmic: max17135: add hwmon, mfd and regulator drivers for this pmic 2019-11-25 15:46:05 +08:00
aat2870-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
ab3100.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
ab8500-ext.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197 2019-05-30 11:29:22 -07:00
ab8500.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197 2019-05-30 11:29:22 -07:00
act8865-regulator.c regulator: act8865: operating mode and suspend state support 2019-08-15 18:10:40 +01:00
act8945a-regulator.c regulator: act8945a-regulator: fix ldo register addresses in set_mode hook 2019-08-13 12:41:46 +01:00
ad5398.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
anatop-regulator.c regulator: anatop: Remove unneeded fields from struct anatop_regulator 2019-04-10 12:23:04 +01:00
arizona-ldo1.c regulator: arizona-ldo1: Add support for Cirrus Logic Madera codecs 2019-05-21 21:23:24 +01:00
arizona-micsupp.c regulator: arizona-micsupp: Delete unused include 2019-06-03 17:51:20 +01:00
as3711-regulator.c regulator: as3711: Remove struct as3711_regulator_info and as3711_regulator 2019-03-18 12:10:45 +00:00
as3722-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
axp20x-regulator.c regulator: axp20x: fix DCDC5 and DCDC6 for AXP803 2019-07-16 19:14:14 +01:00
bcm590xx-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
bd718x7-regulator.c - Core Frameworks 2019-07-15 20:18:40 -07:00
bd9571mwv-regulator.c regulator: bd9571mwv: Constify regulator_ops 2019-01-24 17:53:12 +00:00
bd70528-regulator.c regulator: bd70528: Drop unused include 2019-06-03 17:52:02 +01:00
core.c regulator: core: make regulator_register() EPROBE_DEFER aware 2019-09-17 16:59:38 +01:00
cpcap-regulator.c regulator: cpcap: Spelling s/configuraion/configuration/ 2019-06-07 13:14:37 +01:00
da903x.c regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
da9052-regulator.c regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
da9055-regulator.c regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
da9062-regulator.c regulator: da9062: fix suspend_enable/disable preparation 2019-09-23 14:21:05 -07:00
da9063-regulator.c regulator: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:13:23 +01:00
da9210-regulator.c regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
da9210-regulator.h regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
da9211-regulator.c regulator: da9211: fix obtaining "enable" GPIO 2019-09-11 11:17:07 +01:00
da9211-regulator.h regulator: da9xxx: Switch to SPDX identifier 2019-05-03 15:07:39 +09:00
db8500-prcmu.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197 2019-05-30 11:29:22 -07:00
dbx500-prcmu.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197 2019-05-30 11:29:22 -07:00
dbx500-prcmu.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197 2019-05-30 11:29:22 -07:00
devres.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dummy.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dummy.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
fan53555.c regulator: fan53555: Switch to SPDX identifier 2019-04-26 10:38:22 +01:00
fixed-helper.c regulator: fixed: Convert to use GPIO descriptor only 2018-09-17 14:32:22 -07:00
fixed.c regulator: fixed: Prevent NULL pointer dereference when !CONFIG_OF 2019-09-23 14:19:52 -07:00
gpio-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
helpers.c regulator: provide regulator_bulk_set_supply_names() 2019-09-02 12:49:42 +01:00
hi655x-regulator.c regulator: hi6xxx: Switch to SPDX identifier 2019-05-02 11:16:40 +09:00
hi6421-regulator.c regulator: hi6xxx: Switch to SPDX identifier 2019-05-02 11:16:40 +09:00
hi6421v530-regulator.c regulator: hi6xxx: Switch to SPDX identifier 2019-05-02 11:16:40 +09:00
internal.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
isl6271a-regulator.c regulator: isl6271a: Constify isl_core_ops and isl_fixed_ops 2019-01-28 15:30:58 +00:00
isl9305.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
lm363x-regulator.c regulator: lm363x: Fix n_voltages setting for lm36274 2019-07-22 13:18:13 +01:00
lochnagar-regulator.c regulator: lochnagar: Add on_off_delay for VDDCORE 2019-10-01 17:46:01 +01:00
lp872x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp873x-regulator.c regulator: lp873x: Convert to use regulator_set/get_current_limit_regmap 2019-03-03 23:47:06 +00:00
lp3971.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp3972.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp8755.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp8788-buck.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp8788-ldo.c regulator: lp8788-ldo: make array en_mask static const, makes object smaller 2019-09-09 10:53:48 +01:00
lp87565-regulator.c regulator: lp87565: Simplify lp87565_buck_set_ramp_delay 2019-09-09 13:22:49 +01:00
ltc3589.c regulator: ltc3589: Switch to SPDX identifier 2019-04-26 10:38:20 +01:00
ltc3676.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
max1586.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
max8649.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
max8660.c regulator: max8660: remove redundant assignment of variable ret 2019-08-15 15:09:21 +01:00
max8907-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
max8925-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
max8952.c Linux 5.2-rc4 2019-06-18 19:12:47 +01:00
max8973-regulator.c regulator: max8973: Let core handle GPIO descriptor 2018-12-11 01:04:31 +00:00
max8997-regulator.c regulator: Use of_node_name_eq for node name comparisons 2018-12-06 19:56:51 +00:00
max8998.c regulator: max8998: Factor out struct voltage_map_desc 2019-04-15 09:45:15 +01:00
max14577-regulator.c regulator: max14577: Get rid of match_init_data/match_of_node functions 2019-03-13 15:12:47 +00:00
max17135-regulator.c MLK-13982: 4.9 rebase: EPDC does not work 2019-11-25 15:46:07 +08:00
max77620-regulator.c regulator: max77620: remove redundant assignment to variable ret 2019-07-03 13:02:38 +01:00
max77650-regulator.c regulator: max77650: use vsel_step 2019-07-04 17:31:37 +01:00
max77686-regulator.c regulator: max77686: fix obtaining "maxim,ena" GPIO 2019-09-11 11:16:51 +01:00
max77693-regulator.c regulator: maxim: Add SPDX license identifiers 2018-08-08 10:52:50 +01:00
max77802-regulator.c regulator: max77802: Drop unused includes 2019-06-10 15:40:58 +01:00
mc13xxx-regulator-core.c regulator: mc13xxx: Constify regulator_ops variables 2019-03-04 00:01:08 +00:00
mc13xxx.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mc13783-regulator.c regulator: mc13xxx: Constify regulator_ops variables 2019-03-04 00:01:08 +00:00
mc13892-regulator.c regulator: mc13xxx: Constify regulator_ops variables 2019-03-04 00:01:08 +00:00
mcp16502.c regulator: mcp16502: Remove setup_regulators function 2019-04-11 12:17:32 +01:00
mt6311-regulator.c regulator: mt63xx: Switch to SPDX identifier 2019-04-26 10:38:23 +01:00
mt6311-regulator.h regulator: mt63xx: Switch to SPDX identifier 2019-04-26 10:38:23 +01:00
mt6323-regulator.c regulator: mt63xx: Switch to SPDX identifier 2019-04-26 10:38:23 +01:00
mt6358-regulator.c regulator: mt6358: Add support for MT6358 regulator 2019-08-28 11:51:27 +01:00
mt6380-regulator.c regulator: mt63xx: Switch to SPDX identifier 2019-04-26 10:38:23 +01:00
mt6397-regulator.c regulator: mt63xx: Switch to SPDX identifier 2019-04-26 10:38:23 +01:00
of_regulator.c regulator: Fixes for v5.4 2019-10-23 15:31:17 -04:00
palmas-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
pbias-regulator.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
pcap-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
pcf50633-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
pf1550-regulator-rpmsg.c regulator: pf1550-regulator-rpmsg: check rpmsg channel is ready 2019-11-25 15:46:05 +08:00
pfuze100-regulator.c regulator: pfuze100-regulator: Variable "val" in pfuze100_regulator_probe() could be uninitialized 2019-10-01 18:36:42 +01:00
pv88060-regulator.c regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pv88060-regulator.h regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pv88080-regulator.c regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pv88080-regulator.h regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pv88090-regulator.c regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pv88090-regulator.h regulator: pv880x0: Switch to SPDX identifier 2019-05-03 15:05:52 +09:00
pwm-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
qcom-rpmh-regulator.c regulator: qcom-rpmh: Fix PMIC5 BoB min voltage 2019-10-04 18:44:37 +01:00
qcom_rpm-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
qcom_smd-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
qcom_spmi-regulator.c regulator: qcom_spmi: Do NULL check for lvs 2019-06-24 17:26:15 +01:00
rc5t583-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
rk808-regulator.c regulator: rk808: Return REGULATOR_MODE_INVALID for invalid mode 2019-07-22 13:18:33 +01:00
rn5t618-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 446 2019-06-05 17:37:18 +02:00
rt5033-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 450 2019-06-05 17:37:18 +02:00
s2mpa01.c regulator: s2mpa01: Remove unused define for S2MPA01_REGULATOR_CNT 2019-04-10 12:22:50 +01:00
s2mps11.c regulator: s2mps11: Consistently use local variable 2019-09-10 11:03:30 +01:00
s5m8767.c gpio: Fix return value mismatch of function gpiod_get_from_of_node() 2019-06-25 15:26:24 +01:00
sc2731-regulator.c regulator: sc2731: Constify regulators 2019-03-26 13:25:35 +00:00
sky81452-regulator.c regulator: sky81452: Switch to SPDX identifier 2019-04-26 10:38:27 +01:00
slg51000-regulator.c regulator: slg51000: use devm_gpiod_get_optional() in probe 2019-09-09 10:58:15 +01:00
slg51000-regulator.h regulator: slg51000: add slg51000 regulator driver 2019-05-13 11:07:43 +01:00
stm32-booster.c regulator: stm32-booster: Remove .min_uV and .list_voltage for fixed regulator 2019-07-23 12:28:01 +01:00
stm32-pwr.c regulator: stm32-pwr: Remove unneeded .min_uV and .list_volage 2019-05-03 15:07:15 +09:00
stm32-vrefbuf.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
stpmic1_regulator.c Merge branch 'regulator-5.0' into regulator-5.1 stpmic1 const/range 2019-02-19 11:06:41 +00:00
stw481x-vmmc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
sy8106a-regulator.c regulator: sy8106a: Get rid of struct sy8106a 2019-04-26 10:38:25 +01:00
sy8824x.c regulator: sy8824x: add prefixes to BUCK_EN and MODE macros 2019-08-30 12:39:47 +01:00
ti-abb-regulator.c regulator: ti-abb: Fix timeout in ti_abb_wait_txdone/ti_abb_clear_all_txdone 2019-10-01 12:21:02 +01:00
tps6105x-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
tps6507x-regulator.c regulator: tps6507x: Fix boot regression due to testing wrong init_data pointer 2019-05-16 17:11:47 +01:00
tps6524x-regulator.c regulator: tps6524x: Remove *rdev[N_REGULATORS] from struct tps6524x 2019-04-15 09:44:41 +01:00
tps6586x-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
tps51632-regulator.c regulator: tps51632: Fix setting ramp delay 2016-05-31 16:38:01 +01:00
tps62360-regulator.c regulator: drivers: Drop owner assignment from i2c_driver 2015-07-14 18:53:01 +01:00
tps65023-regulator.c regulator: tps65023: Fix inverted core enable logic. 2017-04-18 18:55:05 +01:00
tps65086-regulator.c regulator: tps65086: Fix tps65086_ldoa1_ranges for selector 0xB 2019-03-21 15:00:07 +00:00
tps65090-regulator.c gpio: Fix return value mismatch of function gpiod_get_from_of_node() 2019-06-25 15:26:24 +01:00
tps65132-regulator.c regulator: tps65132: Stop parsing DT when gpio is not found 2019-09-05 19:07:30 +01:00
tps65217-regulator.c Merge branch 'regulator-5.2' into regulator-next 2019-05-06 22:52:14 +09:00
tps65218-regulator.c regulator: tps65218: Convert to use regulator_get_current_limit_regmap 2019-04-15 09:44:09 +01:00
tps65910-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
tps65912-regulator.c headers: separate linux/mod_devicetable.h from linux/platform_device.h 2018-07-07 17:52:26 +02:00
tps80031-regulator.c regulator: tps80031: Switch to SPDX identifier 2019-04-16 17:30:56 +01:00
twl-regulator.c regulator: twl: voltage lists for vdd1/2 on twl4030 2019-08-15 15:08:41 +01:00
twl6030-regulator.c regulator: twl6030: workaround the VMMC reset behavior 2019-08-09 18:04:22 +01:00
uniphier-regulator.c regulator: uniphier: Add Pro5 USB3 VBUS support 2019-09-10 11:04:12 +01:00
userspace-consumer.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
vctrl-regulator.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
vexpress-regulator.c regulator: vexpress: Switch to SPDX identifier 2019-05-02 11:16:18 +09:00
virtual.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
wm831x-dcdc.c regulator: wm831x: Convert to use GPIO descriptors 2019-06-12 13:59:11 +01:00
wm831x-isink.c regulator: wm831x: Switch to SPDX identifier 2019-04-17 17:40:29 +01:00
wm831x-ldo.c regulator: wm831x: Switch to SPDX identifier 2019-04-17 17:40:29 +01:00
wm8350-regulator.c regulator: wm8350: Switch to SPDX identifier 2019-04-17 17:40:44 +01:00
wm8400-regulator.c regulator: wm8400: Switch to SPDX identifier 2019-04-17 17:41:00 +01:00
wm8994-regulator.c regulator: wm8994: Switch to SPDX identifier 2019-04-17 17:39:58 +01:00