Lines Matching refs:mcp
3 * linux/drivers/mfd/mcp-sa11x0.c
19 #include <linux/mfd/mcp.h>
23 #include <linux/platform_data/mfd-mcp-sa11x0.h>
25 #define DRIVER_NAME "sa11x0-mcp"
42 #define priv(mcp) ((struct mcp_sa11x0 *)mcp_priv(mcp))
45 mcp_sa11x0_set_telecom_divisor(struct mcp *mcp, unsigned int divisor)
47 struct mcp_sa11x0 *m = priv(mcp);
57 mcp_sa11x0_set_audio_divisor(struct mcp *mcp, unsigned int divisor)
59 struct mcp_sa11x0 *m = priv(mcp);
75 mcp_sa11x0_write(struct mcp *mcp, unsigned int reg, unsigned int val)
77 struct mcp_sa11x0 *m = priv(mcp);
84 udelay(mcp->rw_timeout);
92 printk(KERN_WARNING "mcp: write timed out\n");
102 mcp_sa11x0_read(struct mcp *mcp, unsigned int reg)
104 struct mcp_sa11x0 *m = priv(mcp);
111 udelay(mcp->rw_timeout);
119 printk(KERN_WARNING "mcp: read timed out\n");
124 static void mcp_sa11x0_enable(struct mcp *mcp)
126 struct mcp_sa11x0 *m = priv(mcp);
133 static void mcp_sa11x0_disable(struct mcp *mcp)
135 struct mcp_sa11x0 *m = priv(mcp);
158 struct mcp *mcp;
181 mcp = mcp_host_alloc(&dev->dev, sizeof(struct mcp_sa11x0));
182 if (!mcp) {
187 mcp->owner = THIS_MODULE;
188 mcp->ops = &mcp_sa11x0;
189 mcp->sclk_rate = data->sclk_rate;
191 m = priv(mcp);
202 platform_set_drvdata(dev, mcp);
217 mcp->rw_timeout = DIV_ROUND_UP(64 * 3 * 1000000, mcp->sclk_rate);
219 ret = mcp_host_add(mcp, data->codec_pdata);
226 mcp_host_free(mcp);
237 struct mcp *mcp = platform_get_drvdata(dev);
238 struct mcp_sa11x0 *m = priv(mcp);
248 mcp_host_del(mcp);
251 mcp_host_free(mcp);