X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fi2c%2Fbusses%2Fi2c-ixp4xx.c;h=08e89b83984a6a31944583bb3b3f5bc5f8034257;hb=604119a4b22b95e30dea6af3b3bfdc2f07fa4afd;hp=69303ab65e0488d91799bb509ce95c10e6ae803a;hpb=9359ede748ff1461bf0632fb4182f61da4a2f9e2;p=linux-2.6-omap-h63xx.git diff --git a/drivers/i2c/busses/i2c-ixp4xx.c b/drivers/i2c/busses/i2c-ixp4xx.c index 69303ab65e0..08e89b83984 100644 --- a/drivers/i2c/busses/i2c-ixp4xx.c +++ b/drivers/i2c/busses/i2c-ixp4xx.c @@ -1,5 +1,5 @@ /* - * drivers/i2c/i2c-adap-ixp4xx.c + * drivers/i2c/busses/i2c-ixp4xx.c * * Intel's IXP4xx XScale NPU chipsets (IXP420, 421, 422, 425) do not have * an on board I2C controller but provide 16 GPIO pins that are often @@ -28,15 +28,13 @@ #include #include -#include +#include #include #include #include #include /* Pick up IXP4xx-specific bits */ -static struct device_driver ixp4xx_i2c_driver; - static inline int ixp4xx_scl_pin(void *data) { return ((struct ixp4xx_i2c_pins*)data)->scl_pin; @@ -87,24 +85,22 @@ struct ixp4xx_i2c_data { struct i2c_algo_bit_data algo_data; }; -static int ixp4xx_i2c_remove(struct device *dev) +static int ixp4xx_i2c_remove(struct platform_device *plat_dev) { - struct platform_device *plat_dev = to_platform_device(dev); - struct ixp4xx_i2c_data *drv_data = dev_get_drvdata(&plat_dev->dev); + struct ixp4xx_i2c_data *drv_data = platform_get_drvdata(plat_dev); - dev_set_drvdata(&plat_dev->dev, NULL); + platform_set_drvdata(plat_dev, NULL); - i2c_bit_del_bus(&drv_data->adapter); + i2c_del_adapter(&drv_data->adapter); kfree(drv_data); return 0; } -static int ixp4xx_i2c_probe(struct device *dev) +static int ixp4xx_i2c_probe(struct platform_device *plat_dev) { int err; - struct platform_device *plat_dev = to_platform_device(dev); struct ixp4xx_i2c_pins *gpio = plat_dev->dev.platform_data; struct ixp4xx_i2c_data *drv_data = kzalloc(sizeof(struct ixp4xx_i2c_data), GFP_KERNEL); @@ -126,11 +122,11 @@ static int ixp4xx_i2c_probe(struct device *dev) drv_data->algo_data.getsda = ixp4xx_bit_getsda; drv_data->algo_data.getscl = ixp4xx_bit_getscl; drv_data->algo_data.udelay = 10; - drv_data->algo_data.mdelay = 10; drv_data->algo_data.timeout = 100; drv_data->adapter.id = I2C_HW_B_IXP4XX; - strlcpy(drv_data->adapter.name, ixp4xx_i2c_driver.name, + drv_data->adapter.class = I2C_CLASS_HWMON; + strlcpy(drv_data->adapter.name, plat_dev->dev.driver->name, I2C_NAME_SIZE); drv_data->adapter.algo_data = &drv_data->algo_data; @@ -141,34 +137,36 @@ static int ixp4xx_i2c_probe(struct device *dev) gpio_line_set(gpio->scl_pin, 0); gpio_line_set(gpio->sda_pin, 0); - if ((err = i2c_bit_add_bus(&drv_data->adapter) != 0)) { - printk(KERN_ERR "ERROR: Could not install %s\n", dev->bus_id); + err = i2c_bit_add_bus(&drv_data->adapter); + if (err) { + printk(KERN_ERR "ERROR: Could not install %s\n", plat_dev->dev.bus_id); kfree(drv_data); return err; } - dev_set_drvdata(&plat_dev->dev, drv_data); + platform_set_drvdata(plat_dev, drv_data); return 0; } -static struct device_driver ixp4xx_i2c_driver = { - .owner = THIS_MODULE, - .name = "IXP4XX-I2C", - .bus = &platform_bus_type, +static struct platform_driver ixp4xx_i2c_driver = { .probe = ixp4xx_i2c_probe, .remove = ixp4xx_i2c_remove, + .driver = { + .name = "IXP4XX-I2C", + .owner = THIS_MODULE, + }, }; static int __init ixp4xx_i2c_init(void) { - return driver_register(&ixp4xx_i2c_driver); + return platform_driver_register(&ixp4xx_i2c_driver); } static void __exit ixp4xx_i2c_exit(void) { - driver_unregister(&ixp4xx_i2c_driver); + platform_driver_unregister(&ixp4xx_i2c_driver); } module_init(ixp4xx_i2c_init);