misc: ti-st: Adding IORESOURCE_IRQ_OPTIONAL case
[linux-2.6.git] / drivers / misc / atmel_pwm.c
index f8d3b9a..28f5aaa 100644 (file)
@@ -1,6 +1,7 @@
 #include <linux/module.h>
 #include <linux/clk.h>
 #include <linux/err.h>
+#include <linux/slab.h>
 #include <linux/io.h>
 #include <linux/interrupt.h>
 #include <linux/platform_device.h>
@@ -211,8 +212,7 @@ int pwm_clk_alloc(unsigned prescale, unsigned div)
        if ((mr & 0xffff) == 0) {
                mr |= val;
                ret = PWM_CPR_CLKA;
-       }
-       if ((mr & (0xffff << 16)) == 0) {
+       } else if ((mr & (0xffff << 16)) == 0) {
                mr |= val << 16;
                ret = PWM_CPR_CLKB;
        }
@@ -329,10 +329,10 @@ static int __init pwm_probe(struct platform_device *pdev)
        p->pdev = pdev;
        p->mask = *mp;
        p->irq = irq;
-       p->base = ioremap(r->start, r->end - r->start + 1);
+       p->base = ioremap(r->start, resource_size(r));
        if (!p->base)
                goto fail;
-       p->clk = clk_get(&pdev->dev, "mck");
+       p->clk = clk_get(&pdev->dev, "pwm_clk");
        if (IS_ERR(p->clk)) {
                status = PTR_ERR(p->clk);
                p->clk = NULL;
@@ -407,3 +407,4 @@ module_exit(pwm_exit);
 
 MODULE_DESCRIPTION("Driver for AT32/AT91 PWM module");
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:atmel_pwm");