Re: [PATCH] input/mc13783-ts: add pdata to set conversion delay

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Michael,

On Wed, Jan 11, 2012 at 09:18:23AM +0100, Michael Thalmeier wrote:
> MC13783 can be programmed to wait some clock cycles between the touch screen
> polarization and the resistance conversion. This is needed to adjust for
> touchscreens with high capacitance between plates.
> 
> Signed-off-by: Michael Thalmeier <michael.thalmeier@xxxxxxx>
> ---
>  drivers/hwmon/mc13783-adc.c            |    2 +-
>  drivers/input/touchscreen/mc13783_ts.c |    6 +++++-
>  drivers/mfd/mc13xxx-core.c             |   11 +++++++++--
>  include/linux/mfd/mc13xxx.h            |   16 +++++++++++++++-
>  4 files changed, 30 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/hwmon/mc13783-adc.c b/drivers/hwmon/mc13783-adc.c
> index ef65ab5..6acd044 100644
> --- a/drivers/hwmon/mc13783-adc.c
> +++ b/drivers/hwmon/mc13783-adc.c
> @@ -53,7 +53,7 @@ static int mc13783_adc_read(struct device *dev,
>  
>  	ret = mc13xxx_adc_do_conversion(priv->mc13xxx,
>  			MC13XXX_ADC_MODE_MULT_CHAN,
> -			channel, sample);
> +			channel, 0, 0, sample);
>  	if (ret)
>  		return ret;
>  
> diff --git a/drivers/input/touchscreen/mc13783_ts.c b/drivers/input/touchscreen/mc13783_ts.c
> index 68f86f7..d71f45a 100644
> --- a/drivers/input/touchscreen/mc13783_ts.c
> +++ b/drivers/input/touchscreen/mc13783_ts.c
> @@ -39,6 +39,7 @@ struct mc13783_ts_priv {
>  	struct delayed_work work;
>  	struct workqueue_struct *workq;
>  	unsigned int sample[4];
> +	struct mc13xxx_ts_platform_data *touch;
>  };
>  
>  static irqreturn_t mc13783_ts_handler(int irq, void *data)
> @@ -125,7 +126,9 @@ static void mc13783_ts_work(struct work_struct *work)
>  	unsigned int channel = 12;
>  
>  	if (mc13xxx_adc_do_conversion(priv->mc13xxx,
> -				mode, channel, priv->sample) == 0)
> +				mode, channel,
> +				priv->touch->ato, priv->touch->atox,
> +				priv->sample) == 0)
>  		mc13783_ts_report_sample(priv);
>  }
>  
> @@ -179,6 +182,7 @@ static int __init mc13783_ts_probe(struct platform_device *pdev)
>  	INIT_DELAYED_WORK(&priv->work, mc13783_ts_work);
>  	priv->mc13xxx = dev_get_drvdata(pdev->dev.parent);
>  	priv->idev = idev;
> +	priv->touch = dev_get_platdata(&pdev->dev);
This cannot fail in practice unless the device isn't created via
mc13xxx_probe. Still it would feel a tad better to have error detection
here or at least a comment saying why it doesn't fail.

Other than that:
Acked-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux