diff options
Diffstat (limited to 'drivers/mfd/mcp-core.c')
| -rw-r--r-- | drivers/mfd/mcp-core.c | 49 | 
1 files changed, 14 insertions, 35 deletions
diff --git a/drivers/mfd/mcp-core.c b/drivers/mfd/mcp-core.c index 86cc3f7841c..6acf2e03f2b 100644 --- a/drivers/mfd/mcp-core.c +++ b/drivers/mfd/mcp-core.c @@ -19,7 +19,6 @@  #include <linux/string.h>  #include <linux/mfd/mcp.h> -#include <mach/dma.h>  #include <asm/system.h> @@ -48,39 +47,11 @@ static int mcp_bus_remove(struct device *dev)  	return 0;  } -static int mcp_bus_suspend(struct device *dev, pm_message_t state) -{ -	struct mcp *mcp = to_mcp(dev); -	int ret = 0; - -	if (dev->driver) { -		struct mcp_driver *drv = to_mcp_driver(dev->driver); - -		ret = drv->suspend(mcp, state); -	} -	return ret; -} - -static int mcp_bus_resume(struct device *dev) -{ -	struct mcp *mcp = to_mcp(dev); -	int ret = 0; - -	if (dev->driver) { -		struct mcp_driver *drv = to_mcp_driver(dev->driver); - -		ret = drv->resume(mcp); -	} -	return ret; -} -  static struct bus_type mcp_bus_type = {  	.name		= "mcp",  	.match		= mcp_bus_match,  	.probe		= mcp_bus_probe,  	.remove		= mcp_bus_remove, -	.suspend	= mcp_bus_suspend, -	.resume		= mcp_bus_resume,  };  /** @@ -208,6 +179,7 @@ struct mcp *mcp_host_alloc(struct device *parent, size_t size)  	mcp = kzalloc(sizeof(struct mcp) + size, GFP_KERNEL);  	if (mcp) {  		spin_lock_init(&mcp->lock); +		device_initialize(&mcp->attached_device);  		mcp->attached_device.parent = parent;  		mcp->attached_device.bus = &mcp_bus_type;  		mcp->attached_device.dma_mask = parent->dma_mask; @@ -217,18 +189,25 @@ struct mcp *mcp_host_alloc(struct device *parent, size_t size)  }  EXPORT_SYMBOL(mcp_host_alloc); -int mcp_host_register(struct mcp *mcp) +int mcp_host_add(struct mcp *mcp, void *pdata)  { +	mcp->attached_device.platform_data = pdata;  	dev_set_name(&mcp->attached_device, "mcp0"); -	return device_register(&mcp->attached_device); +	return device_add(&mcp->attached_device); +} +EXPORT_SYMBOL(mcp_host_add); + +void mcp_host_del(struct mcp *mcp) +{ +	device_del(&mcp->attached_device);  } -EXPORT_SYMBOL(mcp_host_register); +EXPORT_SYMBOL(mcp_host_del); -void mcp_host_unregister(struct mcp *mcp) +void mcp_host_free(struct mcp *mcp)  { -	device_unregister(&mcp->attached_device); +	put_device(&mcp->attached_device);  } -EXPORT_SYMBOL(mcp_host_unregister); +EXPORT_SYMBOL(mcp_host_free);  int mcp_driver_register(struct mcp_driver *mcpdrv)  {  |