diff options
author | Fabio Estevam <fabio.estevam@nxp.com> | 2017-02-08 07:47:49 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-03-14 22:02:50 -0400 |
commit | 98620b564fadc0f997194b3da0393b78b2c17447 (patch) | |
tree | 4abc54a14baf171121160d5938ba42d685091acf /drivers/gpu/drm | |
parent | 3a654a85932fa7a909b11934df7657c1a2cb3609 (diff) |
drm/imx: imx-tve: Do not set the regulator voltage
commit fc12bccda8b6f5c38139eceec9e369ed78091b2b upstream.
Commit deb65870b5d9d ("drm/imx: imx-tve: check the value returned by
regulator_set_voltage()") exposes the following probe issue:
63ff0000.tve supply dac not found, using dummy regulator
imx-drm display-subsystem: failed to bind 63ff0000.tve (ops imx_tve_ops): -22
When the 'dac-supply' is not passed in the device tree a dummy regulator is
used and setting its voltage is not allowed.
To fix this issue, do not set the dac-supply voltage inside the driver
and let its voltage be specified in the device tree.
Print a warning if the the 'dac-supply' voltage has a value different
from 2.75V.
Fixes: deb65870b5d9d ("drm/imx: imx-tve: check the value returned by regulator_set_voltage()")
Suggested-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r-- | drivers/gpu/drm/imx/imx-tve.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/gpu/drm/imx/imx-tve.c b/drivers/gpu/drm/imx/imx-tve.c index 8fc088843e55..89cf0090feac 100644 --- a/drivers/gpu/drm/imx/imx-tve.c +++ b/drivers/gpu/drm/imx/imx-tve.c | |||
@@ -98,6 +98,8 @@ | |||
98 | /* TVE_TST_MODE_REG */ | 98 | /* TVE_TST_MODE_REG */ |
99 | #define TVE_TVDAC_TEST_MODE_MASK (0x7 << 0) | 99 | #define TVE_TVDAC_TEST_MODE_MASK (0x7 << 0) |
100 | 100 | ||
101 | #define IMX_TVE_DAC_VOLTAGE 2750000 | ||
102 | |||
101 | enum { | 103 | enum { |
102 | TVE_MODE_TVOUT, | 104 | TVE_MODE_TVOUT, |
103 | TVE_MODE_VGA, | 105 | TVE_MODE_VGA, |
@@ -628,9 +630,8 @@ static int imx_tve_bind(struct device *dev, struct device *master, void *data) | |||
628 | 630 | ||
629 | tve->dac_reg = devm_regulator_get(dev, "dac"); | 631 | tve->dac_reg = devm_regulator_get(dev, "dac"); |
630 | if (!IS_ERR(tve->dac_reg)) { | 632 | if (!IS_ERR(tve->dac_reg)) { |
631 | ret = regulator_set_voltage(tve->dac_reg, 2750000, 2750000); | 633 | if (regulator_get_voltage(tve->dac_reg) != IMX_TVE_DAC_VOLTAGE) |
632 | if (ret) | 634 | dev_warn(dev, "dac voltage is not %d uV\n", IMX_TVE_DAC_VOLTAGE); |
633 | return ret; | ||
634 | ret = regulator_enable(tve->dac_reg); | 635 | ret = regulator_enable(tve->dac_reg); |
635 | if (ret) | 636 | if (ret) |
636 | return ret; | 637 | return ret; |