[PATCH 2/3] ti_tscadc: Match mfd sub devices to regmap interface

From: Pantelis Antoniou
Date: Wed Oct 31 2012 - 13:32:52 EST


The MFD parent device now uses a regmap, instead of direct
memory access. Use the same method in the sub devices to avoid
nasty surprises.

Please not that this driver can't really deal with the case of the regmap
call failing in anyway. So that's why there's no error handling.

I think it's best to patch this up, until the driver maintainers deal
with this properly.

Signed-off-by: Pantelis Antoniou <panto@xxxxxxxxxxxxxxxxxxxxxxx>
---
drivers/iio/adc/ti_am335x_adc.c | 10 ++++++++--
drivers/input/touchscreen/ti_am335x_tsc.c | 9 +++++++--
2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/drivers/iio/adc/ti_am335x_adc.c b/drivers/iio/adc/ti_am335x_adc.c
index 8595a90..44806f9 100644
--- a/drivers/iio/adc/ti_am335x_adc.c
+++ b/drivers/iio/adc/ti_am335x_adc.c
@@ -23,7 +23,9 @@
#include <linux/iio/iio.h>
#include <linux/iio/machine.h>
#include <linux/iio/driver.h>
+#include <linux/regmap.h>

+#include <linux/io.h>
#include <linux/mfd/ti_am335x_tscadc.h>
#include <linux/platform_data/ti_am335x_adc.h>

@@ -36,13 +38,17 @@ struct tiadc_device {

static unsigned int tiadc_readl(struct tiadc_device *adc, unsigned int reg)
{
- return readl(adc->mfd_tscadc->tscadc_base + reg);
+ unsigned int val;
+
+ val = (unsigned int)-1;
+ regmap_read(adc->mfd_tscadc->regmap_tscadc, reg, &val);
+ return val;
}

static void tiadc_writel(struct tiadc_device *adc, unsigned int reg,
unsigned int val)
{
- writel(val, adc->mfd_tscadc->tscadc_base + reg);
+ regmap_write(adc->mfd_tscadc->regmap_tscadc, reg, val);
}

static void tiadc_step_config(struct tiadc_device *adc_dev)
diff --git a/drivers/input/touchscreen/ti_am335x_tsc.c b/drivers/input/touchscreen/ti_am335x_tsc.c
index 7a26810..5723957 100644
--- a/drivers/input/touchscreen/ti_am335x_tsc.c
+++ b/drivers/input/touchscreen/ti_am335x_tsc.c
@@ -26,6 +26,7 @@
#include <linux/io.h>
#include <linux/input/ti_am335x_tsc.h>
#include <linux/delay.h>
+#include <linux/regmap.h>

#include <linux/mfd/ti_am335x_tscadc.h>

@@ -64,13 +65,17 @@ struct titsc {

static unsigned int titsc_readl(struct titsc *ts, unsigned int reg)
{
- return readl(ts->mfd_tscadc->tscadc_base + reg);
+ unsigned int val;
+
+ val = (unsigned int)-1;
+ regmap_read(ts->mfd_tscadc->regmap_tscadc, reg, &val);
+ return val;
}

static void titsc_writel(struct titsc *tsc, unsigned int reg,
unsigned int val)
{
- writel(val, tsc->mfd_tscadc->tscadc_base + reg);
+ regmap_write(tsc->mfd_tscadc->regmap_tscadc, reg, val);
}

/*
--
1.7.12

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/