ASoC: Allow use of resource from the platform device for S3C IISv2
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Thu, 30 Apr 2009 12:09:33 +0000 (13:09 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Thu, 30 Apr 2009 12:30:42 +0000 (13:30 +0100)
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/s3c24xx/s3c-i2s-v2.c

index 34142c8..cb85498 100644 (file)
@@ -580,6 +580,24 @@ int s3c_i2sv2_probe(struct platform_device *pdev,
        /* record our i2s structure for later use in the callbacks */
        dai->private_data = i2s;
 
+       if (!base) {
+               struct resource *res = platform_get_resource(pdev,
+                                                            IORESOURCE_MEM,
+                                                            0);
+               if (!res) {
+                       dev_err(dev, "Unable to get register resource\n");
+                       return -ENXIO;
+               }
+
+               if (!request_mem_region(res->start, resource_size(res),
+                                       "s3c64xx-i2s-v4")) {
+                       dev_err(dev, "Unable to request register region\n");
+                       return -EBUSY;
+               }
+
+               base = res->start;
+       }
+
        i2s->regs = ioremap(base, 0x100);
        if (i2s->regs == NULL) {
                dev_err(dev, "cannot ioremap registers\n");