diff options
-rw-r--r-- | drivers/input/touchscreen/mc13783_ts.c | 14 | ||||
-rw-r--r-- | drivers/mfd/mc13xxx-core.c | 11 |
2 files changed, 16 insertions, 9 deletions
diff --git a/drivers/input/touchscreen/mc13783_ts.c b/drivers/input/touchscreen/mc13783_ts.c index d6f099c47f84..0e24304fddc3 100644 --- a/drivers/input/touchscreen/mc13783_ts.c +++ b/drivers/input/touchscreen/mc13783_ts.c @@ -124,10 +124,17 @@ static void mc13783_ts_work(struct work_struct *work) container_of(work, struct mc13783_ts_priv, work.work); unsigned int mode = MC13XXX_ADC_MODE_TS; unsigned int channel = 12; + u8 ato = 0; + bool atox = 0; + + if (priv->touch) { + ato = priv->touch->ato; + atox = priv->touch->atox; + } if (mc13xxx_adc_do_conversion(priv->mc13xxx, mode, channel, - priv->touch->ato, priv->touch->atox, + ato, atox, priv->sample) == 0) mc13783_ts_report_sample(priv); } @@ -183,11 +190,8 @@ static int __init mc13783_ts_probe(struct platform_device *pdev) priv->mc13xxx = dev_get_drvdata(pdev->dev.parent); priv->idev = idev; priv->touch = dev_get_platdata(&pdev->dev); - if (!priv->touch) { + if (!priv->touch) dev_err(&pdev->dev, "missing platform data\n"); - ret = -ENODEV; - goto err_free_mem; - } /* * We need separate workqueue because mc13783_adc_do_conversion diff --git a/drivers/mfd/mc13xxx-core.c b/drivers/mfd/mc13xxx-core.c index 2a9b100c4825..278601f91256 100644 --- a/drivers/mfd/mc13xxx-core.c +++ b/drivers/mfd/mc13xxx-core.c @@ -694,10 +694,6 @@ err_revision: if (mc13xxx->flags & MC13XXX_USE_RTC) mc13xxx_add_subdevice(mc13xxx, "%s-rtc"); - if (mc13xxx->flags & MC13XXX_USE_TOUCHSCREEN) - mc13xxx_add_subdevice_pdata(mc13xxx, "%s-ts", - &pdata->touch, sizeof(pdata->touch)); - if (pdata) { mc13xxx_add_subdevice_pdata(mc13xxx, "%s-regulator", &pdata->regulators, sizeof(pdata->regulators)); @@ -705,10 +701,17 @@ err_revision: pdata->leds, sizeof(*pdata->leds)); mc13xxx_add_subdevice_pdata(mc13xxx, "%s-pwrbutton", pdata->buttons, sizeof(*pdata->buttons)); + + if (mc13xxx->flags & MC13XXX_USE_TOUCHSCREEN) + mc13xxx_add_subdevice_pdata(mc13xxx, "%s-ts", + &pdata->touch, sizeof(pdata->touch)); } else { mc13xxx_add_subdevice(mc13xxx, "%s-regulator"); mc13xxx_add_subdevice(mc13xxx, "%s-led"); mc13xxx_add_subdevice(mc13xxx, "%s-pwrbutton"); + + if (mc13xxx->flags & MC13XXX_USE_TOUCHSCREEN) + mc13xxx_add_subdevice(mc13xxx, "%s-ts"); } return 0; |