diff options
Diffstat (limited to 'drivers/i2c/busses/i2c-mv64xxx.c')
-rw-r--r-- | drivers/i2c/busses/i2c-mv64xxx.c | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64xxx.c index 99abca45fec..afd7634e5cc 100644 --- a/drivers/i2c/busses/i2c-mv64xxx.c +++ b/drivers/i2c/busses/i2c-mv64xxx.c @@ -17,6 +17,8 @@ #include <linux/i2c.h> #include <linux/interrupt.h> #include <linux/mv643xx.h> +#include <linux/platform_device.h> + #include <asm/io.h> /* Register defines */ @@ -490,23 +492,19 @@ mv64xxx_i2c_unmap_regs(struct mv64xxx_i2c_data *drv_data) } static int __devinit -mv64xxx_i2c_probe(struct device *dev) +mv64xxx_i2c_probe(struct platform_device *pd) { - struct platform_device *pd = to_platform_device(dev); struct mv64xxx_i2c_data *drv_data; - struct mv64xxx_i2c_pdata *pdata = dev->platform_data; + struct mv64xxx_i2c_pdata *pdata = pd->dev.platform_data; int rc; if ((pd->id != 0) || !pdata) return -ENODEV; - drv_data = kmalloc(sizeof(struct mv64xxx_i2c_data), GFP_KERNEL); - + drv_data = kzalloc(sizeof(struct mv64xxx_i2c_data), GFP_KERNEL); if (!drv_data) return -ENOMEM; - memset(drv_data, 0, sizeof(struct mv64xxx_i2c_data)); - if (mv64xxx_i2c_map_regs(pd, drv_data)) { rc = -ENODEV; goto exit_kfree; @@ -527,7 +525,7 @@ mv64xxx_i2c_probe(struct device *dev) drv_data->adapter.class = I2C_CLASS_HWMON; drv_data->adapter.timeout = pdata->timeout; drv_data->adapter.retries = pdata->retries; - dev_set_drvdata(dev, drv_data); + platform_set_drvdata(pd, drv_data); i2c_set_adapdata(&drv_data->adapter, drv_data); if (request_irq(drv_data->irq, mv64xxx_i2c_intr, 0, @@ -556,9 +554,9 @@ mv64xxx_i2c_probe(struct device *dev) } static int __devexit -mv64xxx_i2c_remove(struct device *dev) +mv64xxx_i2c_remove(struct platform_device *dev) { - struct mv64xxx_i2c_data *drv_data = dev_get_drvdata(dev); + struct mv64xxx_i2c_data *drv_data = platform_get_drvdata(dev); int rc; rc = i2c_del_adapter(&drv_data->adapter); @@ -569,23 +567,25 @@ mv64xxx_i2c_remove(struct device *dev) return rc; } -static struct device_driver mv64xxx_i2c_driver = { - .name = MV64XXX_I2C_CTLR_NAME, - .bus = &platform_bus_type, +static struct platform_driver mv64xxx_i2c_driver = { .probe = mv64xxx_i2c_probe, .remove = mv64xxx_i2c_remove, + .driver = { + .owner = THIS_MODULE, + .name = MV64XXX_I2C_CTLR_NAME, + }, }; static int __init mv64xxx_i2c_init(void) { - return driver_register(&mv64xxx_i2c_driver); + return platform_driver_register(&mv64xxx_i2c_driver); } static void __exit mv64xxx_i2c_exit(void) { - driver_unregister(&mv64xxx_i2c_driver); + platform_driver_unregister(&mv64xxx_i2c_driver); } module_init(mv64xxx_i2c_init); |