summaryrefslogtreecommitdiff
path: root/arch/arm/boot/dts/imx6sll-lpddr3-arm2.dts
diff options
context:
space:
mode:
authorCristina Ciocan <cristina-mihaela.ciocan@nxp.com>2017-02-27 12:04:17 +0200
committerLeonard Crestez <leonard.crestez@nxp.com>2018-08-24 12:41:33 +0300
commit35585ed5a6c14e61325cd77066ee3850b39032b3 (patch)
tree5824342058931d8643186365c4408e1eaeeb806e /arch/arm/boot/dts/imx6sll-lpddr3-arm2.dts
parent60d943cd9af4880ca22bd8b480c98845c16c6e28 (diff)
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>
Diffstat (limited to 'arch/arm/boot/dts/imx6sll-lpddr3-arm2.dts')
-rw-r--r--arch/arm/boot/dts/imx6sll-lpddr3-arm2.dts8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/arm/boot/dts/imx6sll-lpddr3-arm2.dts b/arch/arm/boot/dts/imx6sll-lpddr3-arm2.dts
index 17381f78a7d5..d2eaaba34c1b 100644
--- a/arch/arm/boot/dts/imx6sll-lpddr3-arm2.dts
+++ b/arch/arm/boot/dts/imx6sll-lpddr3-arm2.dts
@@ -325,10 +325,10 @@
VCOM_reg: VCOM {
regulator-name = "VCOM";
- /* 2's-compliment, -4325000 */
- regulator-min-microvolt = <0xffbe0178>;
- /* 2's-compliment, -500000 */
- regulator-max-microvolt = <0xfff85ee0>;
+ /* Real max value: -500000 */
+ regulator-max-microvolt = <4325000>;
+ /* Real min value: -4325000 */
+ regulator-min-microvolt = <500000>;
};
VNEG_reg: VNEG {