Lines Matching refs:mcp

3  *  linux/drivers/mfd/mcp-core.c
17 #include <linux/mfd/mcp.h>
20 #define to_mcp(d) container_of(d, struct mcp, attached_device)
30 struct mcp *mcp = to_mcp(dev);
33 return drv->probe(mcp);
38 struct mcp *mcp = to_mcp(dev);
41 drv->remove(mcp);
46 .name = "mcp",
54 * @mcp: MCP interface structure
60 void mcp_set_telecom_divisor(struct mcp *mcp, unsigned int div)
64 spin_lock_irqsave(&mcp->lock, flags);
65 mcp->ops->set_telecom_divisor(mcp, div);
66 spin_unlock_irqrestore(&mcp->lock, flags);
72 * @mcp: MCP interface structure
77 void mcp_set_audio_divisor(struct mcp *mcp, unsigned int div)
81 spin_lock_irqsave(&mcp->lock, flags);
82 mcp->ops->set_audio_divisor(mcp, div);
83 spin_unlock_irqrestore(&mcp->lock, flags);
89 * @mcp: MCP interface structure
96 void mcp_reg_write(struct mcp *mcp, unsigned int reg, unsigned int val)
100 spin_lock_irqsave(&mcp->lock, flags);
101 mcp->ops->reg_write(mcp, reg, val);
102 spin_unlock_irqrestore(&mcp->lock, flags);
108 * @mcp: MCP interface structure
114 unsigned int mcp_reg_read(struct mcp *mcp, unsigned int reg)
119 spin_lock_irqsave(&mcp->lock, flags);
120 val = mcp->ops->reg_read(mcp, reg);
121 spin_unlock_irqrestore(&mcp->lock, flags);
129 * @mcp: MCP interface to enable
134 void mcp_enable(struct mcp *mcp)
138 spin_lock_irqsave(&mcp->lock, flags);
139 if (mcp->use_count++ == 0)
140 mcp->ops->enable(mcp);
141 spin_unlock_irqrestore(&mcp->lock, flags);
147 * @mcp: MCP interface to disable
153 void mcp_disable(struct mcp *mcp)
157 spin_lock_irqsave(&mcp->lock, flags);
158 if (--mcp->use_count == 0)
159 mcp->ops->disable(mcp);
160 spin_unlock_irqrestore(&mcp->lock, flags);
166 struct mcp *mcp = container_of(dev, struct mcp, attached_device);
168 kfree(mcp);
171 struct mcp *mcp_host_alloc(struct device *parent, size_t size)
173 struct mcp *mcp;
175 mcp = kzalloc(sizeof(struct mcp) + size, GFP_KERNEL);
176 if (mcp) {
177 spin_lock_init(&mcp->lock);
178 device_initialize(&mcp->attached_device);
179 mcp->attached_device.parent = parent;
180 mcp->attached_device.bus = &mcp_bus_type;
181 mcp->attached_device.dma_mask = parent->dma_mask;
182 mcp->attached_device.release = mcp_release;
184 return mcp;
188 int mcp_host_add(struct mcp *mcp, void *pdata)
190 mcp->attached_device.platform_data = pdata;
191 dev_set_name(&mcp->attached_device, "mcp0");
192 return device_add(&mcp->attached_device);
196 void mcp_host_del(struct mcp *mcp)
198 device_del(&mcp->attached_device);
202 void mcp_host_free(struct mcp *mcp)
204 put_device(&mcp->attached_device);