Lines Matching refs:wd
308 struct au1xpsc_audio_data *wd;
313 wd = kzalloc(sizeof(struct au1xpsc_audio_data), GFP_KERNEL);
314 if (!wd)
327 wd->mmio = ioremap(r->start, resource_size(r));
328 if (!wd->mmio)
334 sel = au_readl(PSC_SEL(wd)) & PSC_SEL_CLK_MASK;
335 au_writel(PSC_CTRL_DISABLE, PSC_CTRL(wd));
337 au_writel(PSC_SEL_PS_I2SMODE | sel, PSC_SEL(wd));
338 au_writel(0, I2S_CFG(wd));
342 wd->cfg |= PSC_I2SCFG_RT_FIFO8 | PSC_I2SCFG_TT_FIFO8;
354 wd->dmapd = au1xpsc_pcm_add(pdev);
355 if (wd->dmapd) {
356 platform_set_drvdata(pdev, wd);
357 au1xpsc_i2s_workdata = wd;
365 kfree(wd);
371 struct au1xpsc_audio_data *wd = platform_get_drvdata(pdev);
374 if (wd->dmapd)
375 au1xpsc_pcm_destroy(wd->dmapd);
379 au_writel(0, I2S_CFG(wd));
381 au_writel(PSC_CTRL_DISABLE, PSC_CTRL(wd));
384 iounmap(wd->mmio);
386 kfree(wd);
396 struct au1xpsc_audio_data *wd = dev_get_drvdata(dev);
399 wd->pm[0] = au_readl(PSC_SEL(wd));
401 au_writel(0, I2S_CFG(wd));
403 au_writel(PSC_CTRL_DISABLE, PSC_CTRL(wd));
411 struct au1xpsc_audio_data *wd = dev_get_drvdata(dev);
414 au_writel(PSC_CTRL_DISABLE, PSC_CTRL(wd));
416 au_writel(0, PSC_SEL(wd));
418 au_writel(wd->pm[0], PSC_SEL(wd));