]> Pileus Git - ~andy/linux/blobdiff - drivers/mfd/davinci_voicecodec.c
Merge remote-tracking branch 'asoc/fix/wm8993' into asoc-linus
[~andy/linux] / drivers / mfd / davinci_voicecodec.c
index fb64398506e9934725bba33d9b3dabe0e9b591fc..013ba8159dcda339a8f71729976afeffd9516873 100644 (file)
 #include <linux/delay.h>
 #include <linux/io.h>
 #include <linux/clk.h>
+#include <linux/regmap.h>
 
 #include <sound/pcm.h>
 
 #include <linux/mfd/davinci_voicecodec.h>
 
-u32 davinci_vc_read(struct davinci_vc *davinci_vc, int reg)
-{
-       return __raw_readl(davinci_vc->base + reg);
-}
-
-void davinci_vc_write(struct davinci_vc *davinci_vc,
-                                          int reg, u32 val)
-{
-       __raw_writel(val, davinci_vc->base + reg);
-}
+static struct regmap_config davinci_vc_regmap = {
+       .reg_bits = 32,
+       .val_bits = 32,
+};
 
 static int __init davinci_vc_probe(struct platform_device *pdev)
 {
@@ -74,6 +69,14 @@ static int __init davinci_vc_probe(struct platform_device *pdev)
                goto fail;
        }
 
+       davinci_vc->regmap = devm_regmap_init_mmio(&pdev->dev,
+                                                  davinci_vc->base,
+                                                  &davinci_vc_regmap);
+       if (IS_ERR(davinci_vc->regmap)) {
+               ret = PTR_ERR(davinci_vc->regmap);
+               goto fail;
+       }
+
        res = platform_get_resource(pdev, IORESOURCE_DMA, 0);
        if (!res) {
                dev_err(&pdev->dev, "no DMA resource\n");