X-Git-Url: http://rtime.felk.cvut.cz/gitweb/shark/motorek-5200.git/blobdiff_plain/b30b71058b90d9afee2be0e6ec839f2aba3a6d2c..HEAD:/motorek.c diff --git a/motorek.c b/motorek.c index 5583333..1ab1bf8 100644 --- a/motorek.c +++ b/motorek.c @@ -20,6 +20,7 @@ #include #include #include +#include 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);