Lines Matching refs:usp
29 static void sirf_usp_tx_enable(struct sirf_usp *usp) in sirf_usp_tx_enable() argument
31 regmap_update_bits(usp->regmap, USP_TX_FIFO_OP, in sirf_usp_tx_enable()
33 regmap_write(usp->regmap, USP_TX_FIFO_OP, 0); in sirf_usp_tx_enable()
35 regmap_update_bits(usp->regmap, USP_TX_FIFO_OP, in sirf_usp_tx_enable()
38 regmap_update_bits(usp->regmap, USP_TX_RX_ENABLE, in sirf_usp_tx_enable()
42 static void sirf_usp_tx_disable(struct sirf_usp *usp) in sirf_usp_tx_disable() argument
44 regmap_update_bits(usp->regmap, USP_TX_RX_ENABLE, in sirf_usp_tx_disable()
47 regmap_write(usp->regmap, USP_TX_FIFO_OP, 0); in sirf_usp_tx_disable()
50 static void sirf_usp_rx_enable(struct sirf_usp *usp) in sirf_usp_rx_enable() argument
52 regmap_update_bits(usp->regmap, USP_RX_FIFO_OP, in sirf_usp_rx_enable()
54 regmap_write(usp->regmap, USP_RX_FIFO_OP, 0); in sirf_usp_rx_enable()
56 regmap_update_bits(usp->regmap, USP_RX_FIFO_OP, in sirf_usp_rx_enable()
59 regmap_update_bits(usp->regmap, USP_TX_RX_ENABLE, in sirf_usp_rx_enable()
63 static void sirf_usp_rx_disable(struct sirf_usp *usp) in sirf_usp_rx_disable() argument
65 regmap_update_bits(usp->regmap, USP_TX_RX_ENABLE, in sirf_usp_rx_disable()
68 regmap_write(usp->regmap, USP_RX_FIFO_OP, 0); in sirf_usp_rx_disable()
73 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
297 clk_disable_unprepare(usp->clk); in sirf_usp_pcm_runtime_suspend()
303 struct sirf_usp *usp = dev_get_drvdata(dev); in sirf_usp_pcm_runtime_resume() local
305 ret = clk_prepare_enable(usp->clk); in sirf_usp_pcm_runtime_resume()
310 sirf_usp_i2s_init(usp); in sirf_usp_pcm_runtime_resume()
317 struct sirf_usp *usp = dev_get_drvdata(dev); in sirf_usp_pcm_suspend() local
320 regmap_read(usp->regmap, USP_MODE1, &usp->mode1_reg); in sirf_usp_pcm_suspend()
321 regmap_read(usp->regmap, USP_MODE2, &usp->mode2_reg); in sirf_usp_pcm_suspend()
329 struct sirf_usp *usp = dev_get_drvdata(dev); in sirf_usp_pcm_resume() local
336 regmap_write(usp->regmap, USP_MODE1, usp->mode1_reg); in sirf_usp_pcm_resume()
337 regmap_write(usp->regmap, USP_MODE2, usp->mode2_reg); in sirf_usp_pcm_resume()
358 struct sirf_usp *usp; in sirf_usp_pcm_probe() local
362 usp = devm_kzalloc(&pdev->dev, sizeof(struct sirf_usp), in sirf_usp_pcm_probe()
364 if (!usp) in sirf_usp_pcm_probe()
367 platform_set_drvdata(pdev, usp); in sirf_usp_pcm_probe()
374 usp->regmap = devm_regmap_init_mmio(&pdev->dev, base, in sirf_usp_pcm_probe()
376 if (IS_ERR(usp->regmap)) in sirf_usp_pcm_probe()
377 return PTR_ERR(usp->regmap); in sirf_usp_pcm_probe()
379 usp->clk = devm_clk_get(&pdev->dev, NULL); in sirf_usp_pcm_probe()
380 if (IS_ERR(usp->clk)) { in sirf_usp_pcm_probe()
382 return PTR_ERR(usp->clk); in sirf_usp_pcm_probe()