]> rtime.felk.cvut.cz Git - shark/motorek-5200.git/blobdiff - motorek.c
Add load command to the boot script required for newer novaboot version.
[shark/motorek-5200.git] / motorek.c
index dbefb3f149dd93eca32b15a576578046e6c93481..1ab1bf8a6307af56363cc6061849e2c07b1a430d 100644 (file)
--- a/motorek.c
+++ b/motorek.c
@@ -18,8 +18,9 @@
 #include <linux/mod_devicetable.h>
 #include <linux/of.h>
 #include <linux/of_platform.h>
-#include <asm-powerpc/mpc52xx.h>
+#include <asm/mpc52xx.h>
 #include <linux/interrupt.h>
+#include <linux/slab.h>
 
 struct motorek {
        struct mpc52xx_gpt *pwmf, *pwmb, *irca, *ircb;
@@ -193,17 +194,16 @@ struct mpc52xx_gpt __iomem *iomap_gpt_by_phandle_prop(struct device_node *dn, co
                printk(KERN_ERR "property %s doesn't refer to GPT\n", prop);
                goto out;
        }
-       
+
        gpt = of_iomap(np, 0);
 out:
        of_node_put(np);
        return gpt;
 }
 
-static int __devinit motorek_probe(struct of_device* dev,
-                                  const struct of_device_id *match)
+static int __devinit motorek_probe(struct platform_device* dev)
 {
-       struct device_node *dn = dev->node;
+       struct device_node *dn = dev->dev.of_node;
        struct motorek *m;
        int err;
 
@@ -212,7 +212,7 @@ static int __devinit motorek_probe(struct of_device* dev,
                return -ENOMEM;
 
        err = -ENODEV;
-       
+
        m->pwmf = iomap_gpt_by_phandle_prop(dn, "pwmf");
        if (!m->pwmf)
                goto err_free;
@@ -225,7 +225,7 @@ static int __devinit motorek_probe(struct of_device* dev,
        m->ircb = iomap_gpt_by_phandle_prop(dn, "ircb");
        if (!m->ircb)
                goto err_unmap_ia;
-       
+
        m->irq = irq_of_parse_and_map(dn, 0);
        if (m->irq == NO_IRQ)
                goto err_unmap_ib;
@@ -262,7 +262,7 @@ err_free:
        return err;
 }
 
-static int __devexit motorek_remove(struct of_device* dev)
+static int __devexit motorek_remove(struct platform_device* dev)
 {
        struct motorek *m;
 
@@ -278,19 +278,21 @@ static struct of_device_id motorek_match[] = {
        { .type = "motorek", },
        {},
 };
-static struct of_platform_driver motorek_driver = {
-       .owner          = THIS_MODULE,
-       .name           = "motorek",
-       .match_table    = motorek_match,
+static struct platform_driver motorek_driver = {
        .probe          = motorek_probe,
        .remove         = __devexit_p(motorek_remove),
+       .driver         = {
+               .name           = "motorek",
+               .owner          = THIS_MODULE,
+               .of_match_table = motorek_match,
+       },
 };
 
 
 static int __init motorek_init_module(void)
 {
        int ret;
-       struct of_device *dev;
+       struct platform_device *dev;
        struct device_node *dn;
 
        for_each_node_by_type(dn, "motorek") {
@@ -301,13 +303,13 @@ static int __init motorek_init_module(void)
                }
        };
 
-       ret = of_register_platform_driver(&motorek_driver);
+       ret = platform_driver_register(&motorek_driver);
        return ret;
 }
 
 static void __exit motorek_exit_module(void)
 {
-       struct of_device *dev;
+       struct platform_device *dev;
        struct device_node *dn;
 
        for_each_node_by_type(dn, "motorek") {
@@ -315,7 +317,7 @@ static void __exit motorek_exit_module(void)
                        of_device_unregister(dev);
                }
        }
-       of_unregister_platform_driver(&motorek_driver);
+       platform_driver_unregister(&motorek_driver);
 }
 
 module_init(motorek_init_module);