@@ -19,7 +19,6 @@
#include <linux/err.h>
#include <linux/io.h>
#include <linux/clk.h>
-#include <linux/regmap.h>
#include <linux/mfd/core.h>
#include <linux/pm_runtime.h>
@@ -29,25 +28,15 @@
static unsigned int tscadc_readl(struct ti_tscadc_dev *tsadc, unsigned int reg)
{
- unsigned int val;
-
- regmap_read(tsadc->regmap_tscadc, reg, &val);
- return val;
+ return readl(tsadc->tscadc_base + reg);
}
static void tscadc_writel(struct ti_tscadc_dev *tsadc, unsigned int reg,
unsigned int val)
{
- regmap_write(tsadc->regmap_tscadc, reg, val);
+ writel(val, tsadc->tscadc_base + reg);
}
-static const struct regmap_config tscadc_regmap_config = {
- .name = "ti_tscadc",
- .reg_bits = 32,
- .reg_stride = 4,
- .val_bits = 32,
-};
-
static void tscadc_idle_config(struct ti_tscadc_dev *config)
{
unsigned int idleconfig;
@@ -121,14 +110,6 @@ static int ti_tscadc_probe(struct platform_device *pdev)
return -ENOMEM;
}
- tscadc->regmap_tscadc = devm_regmap_init_mmio(&pdev->dev,
- tscadc->tscadc_base, &tscadc_regmap_config);
- if (IS_ERR(tscadc->regmap_tscadc)) {
- dev_err(&pdev->dev, "regmap init failed\n");
- err = PTR_ERR(tscadc->regmap_tscadc);
- goto ret;
- }
-
pm_runtime_enable(&pdev->dev);
pm_runtime_get_sync(&pdev->dev);
@@ -137,7 +137,6 @@ struct mfd_tscadc_board {
struct ti_tscadc_dev {
struct device *dev;
- struct regmap *regmap_tscadc;
void __iomem *tscadc_base;
int irq;
struct mfd_cell cells[TSCADC_CELLS];
The MFD part uses regmap without caching and is the only user of the regmap. The child drivers, that is input(touch) and iio(adc), use direct reg access. There is a patch which converts them to use regmap as well but I see no benefit at all doing this. There is a direct MMIO bus access with no need to cache values like for I2C or SPI devices. Furthermore, most (if not all) of the access done by the touch & ADC driver read volatile register. Therefore this patch removes regmap part of the driver. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- drivers/mfd/ti_am335x_tscadc.c | 23 ++--------------------- include/linux/mfd/ti_am335x_tscadc.h | 1 - 2 files changed, 2 insertions(+), 22 deletions(-)