Lines Matching refs:usp
28 static void sirf_usp_tx_enable(struct sirf_usp *usp) in sirf_usp_tx_enable() argument
30 regmap_update_bits(usp->regmap, USP_TX_FIFO_OP, in sirf_usp_tx_enable()
32 regmap_write(usp->regmap, USP_TX_FIFO_OP, 0); in sirf_usp_tx_enable()
34 regmap_update_bits(usp->regmap, USP_TX_FIFO_OP, in sirf_usp_tx_enable()
37 regmap_update_bits(usp->regmap, USP_TX_RX_ENABLE, in sirf_usp_tx_enable()
41 static void sirf_usp_tx_disable(struct sirf_usp *usp) in sirf_usp_tx_disable() argument
43 regmap_update_bits(usp->regmap, USP_TX_RX_ENABLE, in sirf_usp_tx_disable()
46 regmap_write(usp->regmap, USP_TX_FIFO_OP, 0); in sirf_usp_tx_disable()
49 static void sirf_usp_rx_enable(struct sirf_usp *usp) in sirf_usp_rx_enable() argument
51 regmap_update_bits(usp->regmap, USP_RX_FIFO_OP, in sirf_usp_rx_enable()
53 regmap_write(usp->regmap, USP_RX_FIFO_OP, 0); in sirf_usp_rx_enable()
55 regmap_update_bits(usp->regmap, USP_RX_FIFO_OP, in sirf_usp_rx_enable()
58 regmap_update_bits(usp->regmap, USP_TX_RX_ENABLE, in sirf_usp_rx_enable()
62 static void sirf_usp_rx_disable(struct sirf_usp *usp) in sirf_usp_rx_disable() argument
64 regmap_update_bits(usp->regmap, USP_TX_RX_ENABLE, in sirf_usp_rx_disable()
67 regmap_write(usp->regmap, USP_RX_FIFO_OP, 0); in sirf_usp_rx_disable()
72 struct sirf_usp *usp = snd_soc_dai_get_drvdata(dai); in sirf_usp_pcm_dai_probe() local
74 snd_soc_dai_init_dma_data(dai, &usp->playback_dma_data, in sirf_usp_pcm_dai_probe()
75 &usp->capture_dma_data); in sirf_usp_pcm_dai_probe()
82 struct sirf_usp *usp = snd_soc_dai_get_drvdata(dai); in sirf_usp_pcm_set_dai_fmt() local
96 usp->daifmt_format = (fmt & SND_SOC_DAIFMT_FORMAT_MASK); in sirf_usp_pcm_set_dai_fmt()
107 usp->daifmt_format |= (fmt & SND_SOC_DAIFMT_INV_MASK); in sirf_usp_pcm_set_dai_fmt()
116 static void sirf_usp_i2s_init(struct sirf_usp *usp) in sirf_usp_i2s_init() argument
119 regmap_update_bits(usp->regmap, USP_RISC_DSP_MODE, in sirf_usp_i2s_init()
126 regmap_write(usp->regmap, USP_TX_DMA_IO_LEN, 0); in sirf_usp_i2s_init()
127 regmap_write(usp->regmap, USP_RX_DMA_IO_LEN, 0); in sirf_usp_i2s_init()
130 regmap_write(usp->regmap, USP_MODE2, (1 << USP_RXD_DELAY_LEN_OFFSET) | in sirf_usp_i2s_init()
135 regmap_write(usp->regmap, USP_MODE1, in sirf_usp_i2s_init()
141 regmap_write(usp->regmap, USP_RX_DMA_IO_CTRL, 0); in sirf_usp_i2s_init()
144 regmap_write(usp->regmap, USP_RX_FIFO_CTRL, in sirf_usp_i2s_init()
149 regmap_write(usp->regmap, USP_RX_FIFO_LEVEL_CHK, in sirf_usp_i2s_init()
153 regmap_write(usp->regmap, USP_TX_DMA_IO_CTRL, 0); in sirf_usp_i2s_init()
156 regmap_write(usp->regmap, USP_TX_FIFO_CTRL, in sirf_usp_i2s_init()
160 regmap_write(usp->regmap, USP_TX_FIFO_LEVEL_CHK, in sirf_usp_i2s_init()
167 struct sirf_usp *usp = snd_soc_dai_get_drvdata(dai); in sirf_usp_pcm_hw_params() local
190 switch (usp->daifmt_format & SND_SOC_DAIFMT_FORMAT_MASK) { in sirf_usp_pcm_hw_params()
192 regmap_update_bits(usp->regmap, USP_RX_FRAME_CTRL, in sirf_usp_pcm_hw_params()
196 regmap_update_bits(usp->regmap, USP_RX_FRAME_CTRL, in sirf_usp_pcm_hw_params()
206 switch (usp->daifmt_format & SND_SOC_DAIFMT_INV_MASK) { in sirf_usp_pcm_hw_params()
210 regmap_update_bits(usp->regmap, USP_MODE1, in sirf_usp_pcm_hw_params()
219 regmap_update_bits(usp->regmap, USP_TX_FRAME_CTRL, in sirf_usp_pcm_hw_params()
227 regmap_update_bits(usp->regmap, USP_RX_FRAME_CTRL, in sirf_usp_pcm_hw_params()
241 struct sirf_usp *usp = snd_soc_dai_get_drvdata(dai); in sirf_usp_pcm_trigger() local
248 sirf_usp_tx_enable(usp); in sirf_usp_pcm_trigger()
250 sirf_usp_rx_enable(usp); in sirf_usp_pcm_trigger()
256 sirf_usp_tx_disable(usp); in sirf_usp_pcm_trigger()
258 sirf_usp_rx_disable(usp); in sirf_usp_pcm_trigger()
296 struct sirf_usp *usp = dev_get_drvdata(dev); in sirf_usp_pcm_runtime_suspend() local
298 clk_disable_unprepare(usp->clk); in sirf_usp_pcm_runtime_suspend()
304 struct sirf_usp *usp = dev_get_drvdata(dev); in sirf_usp_pcm_runtime_resume() local
307 ret = clk_prepare_enable(usp->clk); in sirf_usp_pcm_runtime_resume()
312 sirf_usp_i2s_init(usp); in sirf_usp_pcm_runtime_resume()
319 struct sirf_usp *usp = dev_get_drvdata(dev); in sirf_usp_pcm_suspend() local
322 regmap_read(usp->regmap, USP_MODE1, &usp->mode1_reg); in sirf_usp_pcm_suspend()
323 regmap_read(usp->regmap, USP_MODE2, &usp->mode2_reg); in sirf_usp_pcm_suspend()
331 struct sirf_usp *usp = dev_get_drvdata(dev); in sirf_usp_pcm_resume() local
338 regmap_write(usp->regmap, USP_MODE1, usp->mode1_reg); in sirf_usp_pcm_resume()
339 regmap_write(usp->regmap, USP_MODE2, usp->mode2_reg); in sirf_usp_pcm_resume()
360 struct sirf_usp *usp; in sirf_usp_pcm_probe() local
363 usp = devm_kzalloc(&pdev->dev, sizeof(struct sirf_usp), in sirf_usp_pcm_probe()
365 if (!usp) in sirf_usp_pcm_probe()
368 platform_set_drvdata(pdev, usp); in sirf_usp_pcm_probe()
373 usp->regmap = devm_regmap_init_mmio(&pdev->dev, base, in sirf_usp_pcm_probe()
375 if (IS_ERR(usp->regmap)) in sirf_usp_pcm_probe()
376 return PTR_ERR(usp->regmap); in sirf_usp_pcm_probe()
378 usp->clk = devm_clk_get(&pdev->dev, NULL); in sirf_usp_pcm_probe()
379 if (IS_ERR(usp->clk)) { in sirf_usp_pcm_probe()
381 return PTR_ERR(usp->clk); in sirf_usp_pcm_probe()