i2c - gpio(三)

2014-11-24 09:08:26 · 作者: · 浏览: 2
pio *i2c = platform_get_drvdata(pdev);

platform_set_drvdata(pdev, NULL);
i2c_del_adapter(&i2c->adap);
kfree(i2c);
i2c_gpio_free();

return 0;
}

static int i2c_atxx_gpio_suspend(struct device *dev)
{
return 0;
}

static int i2c_atxx_gpio_resume(struct device *dev)
{
return 0;
}

static void i2c_atxx_gpio_shutdown(struct platform_device *pdev)
{
/* TODO: */
}

const struct dev_pm_ops i2c_atxx_gpio_pm_ops = {
.suspend = i2c_atxx_gpio_suspend,
.resume = i2c_atxx_gpio_resume,
};

static struct platform_driver i2c_atxx_gpio_driver = {
.driver = {
.name = "i2c-gpio",
.owner = THIS_MODULE,
.pm = &i2c_atxx_gpio_pm_ops,
},
.probe = i2c_atxx_gpio_probe,
.remove = i2c_atxx_gpio_remove,
.shutdown = i2c_atxx_gpio_shutdown,
};

static int __init i2c_adap_atxx_gpio_init(void)
{
return platform_driver_register(&i2c_atxx_gpio_driver);
}
static void __exit i2c_adap_atxx_gpio_exit(void)
{
platform_driver_unregister(&i2c_atxx_gpio_driver);
}

arch_initcall(i2c_adap_atxx_gpio_init);