Commit 77f63e06 authored by Peter Ujfalusi's avatar Peter Ujfalusi Committed by Mark Brown

MFD: twl6040: Fix power on GPIO handling

Avoid requesting the audpwron gpio in case of ES1.0
revision.
In the past we requested the gpio, but we did not
free it up, since we made the check for the revision
later. This results later checks for gpio validity to
fail, leaving the gpio reserved (even after the driver
has been removed).
Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
Acked-by: default avatarLiam Girdwood <lrg@ti.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 7e968985
...@@ -470,7 +470,6 @@ static int __devinit twl6040_probe(struct platform_device *pdev) ...@@ -470,7 +470,6 @@ static int __devinit twl6040_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, twl6040); platform_set_drvdata(pdev, twl6040);
twl6040->dev = &pdev->dev; twl6040->dev = &pdev->dev;
twl6040->audpwron = pdata->audpwron_gpio;
twl6040->irq = pdata->naudint_irq; twl6040->irq = pdata->naudint_irq;
twl6040->irq_base = pdata->irq_base; twl6040->irq_base = pdata->irq_base;
...@@ -480,6 +479,12 @@ static int __devinit twl6040_probe(struct platform_device *pdev) ...@@ -480,6 +479,12 @@ static int __devinit twl6040_probe(struct platform_device *pdev)
twl6040->rev = twl6040_reg_read(twl6040, TWL6040_REG_ASICREV); twl6040->rev = twl6040_reg_read(twl6040, TWL6040_REG_ASICREV);
/* ERRATA: Automatic power-up is not possible in ES1.0 */
if (twl6040_get_revid(twl6040) > TWL6040_REV_ES1_0)
twl6040->audpwron = pdata->audpwron_gpio;
else
twl6040->audpwron = -EINVAL;
if (gpio_is_valid(twl6040->audpwron)) { if (gpio_is_valid(twl6040->audpwron)) {
ret = gpio_request(twl6040->audpwron, "audpwron"); ret = gpio_request(twl6040->audpwron, "audpwron");
if (ret) if (ret)
...@@ -490,10 +495,6 @@ static int __devinit twl6040_probe(struct platform_device *pdev) ...@@ -490,10 +495,6 @@ static int __devinit twl6040_probe(struct platform_device *pdev)
goto gpio2_err; goto gpio2_err;
} }
/* ERRATA: Automatic power-up is not possible in ES1.0 */
if (twl6040_get_revid(twl6040) == TWL6040_REV_ES1_0)
twl6040->audpwron = -EINVAL;
/* codec interrupt */ /* codec interrupt */
ret = twl6040_irq_init(twl6040); ret = twl6040_irq_init(twl6040);
if (ret) if (ret)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment