Lines Matching refs:pscdata
54 struct au1xpsc_audio_data *pscdata = snd_soc_dai_get_drvdata(cpu_dai); in au1xpsc_i2s_set_fmt() local
60 ct = pscdata->cfg; in au1xpsc_i2s_set_fmt()
104 pscdata->cfg = ct; in au1xpsc_i2s_set_fmt()
114 struct au1xpsc_audio_data *pscdata = snd_soc_dai_get_drvdata(dai); in au1xpsc_i2s_hw_params() local
120 stat = __raw_readl(I2S_STAT(pscdata)); in au1xpsc_i2s_hw_params()
123 cfgbits = __raw_readl(I2S_CFG(pscdata)); in au1xpsc_i2s_hw_params()
125 (params_rate(params) != pscdata->rate)) in au1xpsc_i2s_hw_params()
129 pscdata->cfg &= ~(0x1f << 4); in au1xpsc_i2s_hw_params()
130 pscdata->cfg |= PSC_I2SCFG_SET_LEN(params->msbits); in au1xpsc_i2s_hw_params()
132 pscdata->rate = params_rate(params); in au1xpsc_i2s_hw_params()
144 static int au1xpsc_i2s_configure(struct au1xpsc_audio_data *pscdata) in au1xpsc_i2s_configure() argument
149 __raw_writel(PSC_CTRL_ENABLE, PSC_CTRL(pscdata)); in au1xpsc_i2s_configure()
153 while (!(__raw_readl(I2S_STAT(pscdata)) & PSC_I2SSTAT_SR) && tmo) in au1xpsc_i2s_configure()
159 __raw_writel(0, I2S_CFG(pscdata)); in au1xpsc_i2s_configure()
161 __raw_writel(pscdata->cfg | PSC_I2SCFG_DE_ENABLE, I2S_CFG(pscdata)); in au1xpsc_i2s_configure()
166 while (!(__raw_readl(I2S_STAT(pscdata)) & PSC_I2SSTAT_DR) && tmo) in au1xpsc_i2s_configure()
173 __raw_writel(0, I2S_CFG(pscdata)); in au1xpsc_i2s_configure()
174 __raw_writel(PSC_CTRL_SUSPEND, PSC_CTRL(pscdata)); in au1xpsc_i2s_configure()
179 static int au1xpsc_i2s_start(struct au1xpsc_audio_data *pscdata, int stype) in au1xpsc_i2s_start() argument
187 stat = __raw_readl(I2S_STAT(pscdata)); in au1xpsc_i2s_start()
189 ret = au1xpsc_i2s_configure(pscdata); in au1xpsc_i2s_start()
194 __raw_writel(I2SPCR_CLRFIFO(stype), I2S_PCR(pscdata)); in au1xpsc_i2s_start()
196 __raw_writel(I2SPCR_START(stype), I2S_PCR(pscdata)); in au1xpsc_i2s_start()
201 while (!(__raw_readl(I2S_STAT(pscdata)) & I2SSTAT_BUSY(stype)) && tmo) in au1xpsc_i2s_start()
205 __raw_writel(I2SPCR_STOP(stype), I2S_PCR(pscdata)); in au1xpsc_i2s_start()
213 static int au1xpsc_i2s_stop(struct au1xpsc_audio_data *pscdata, int stype) in au1xpsc_i2s_stop() argument
217 __raw_writel(I2SPCR_STOP(stype), I2S_PCR(pscdata)); in au1xpsc_i2s_stop()
222 while ((__raw_readl(I2S_STAT(pscdata)) & I2SSTAT_BUSY(stype)) && tmo) in au1xpsc_i2s_stop()
226 stat = __raw_readl(I2S_STAT(pscdata)); in au1xpsc_i2s_stop()
228 __raw_writel(0, I2S_CFG(pscdata)); in au1xpsc_i2s_stop()
230 __raw_writel(PSC_CTRL_SUSPEND, PSC_CTRL(pscdata)); in au1xpsc_i2s_stop()
239 struct au1xpsc_audio_data *pscdata = snd_soc_dai_get_drvdata(dai); in au1xpsc_i2s_trigger() local
245 ret = au1xpsc_i2s_start(pscdata, stype); in au1xpsc_i2s_trigger()
249 ret = au1xpsc_i2s_stop(pscdata, stype); in au1xpsc_i2s_trigger()
260 struct au1xpsc_audio_data *pscdata = snd_soc_dai_get_drvdata(dai); in au1xpsc_i2s_startup() local
261 snd_soc_dai_set_dma_data(dai, substream, &pscdata->dmaids[0]); in au1xpsc_i2s_startup()