Lines Matching +full:ssc +full:- +full:on

1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * atmel-pcm-dma.c -- ALSA PCM DMA support for the Atmel SoC.
9 * Based on atmel-pcm by:
18 #include <linux/dma-mapping.h>
20 #include <linux/atmel-ssc.h>
28 #include "atmel-pcm.h"
30 /*--------------------------------------------------------------------------*\
32 \*--------------------------------------------------------------------------*/
47 * atmel_pcm_dma_irq: SSC interrupt handler for DMAENGINE enabled SSC
49 * We use DMAENGINE to send/receive data to/from SSC so this ISR is only to
60 if (ssc_sr & prtd->mask->ssc_error) { in atmel_pcm_dma_irq()
62 pr_warn("atmel-pcm: buffer %s on %s (SSC_SR=%#x)\n", in atmel_pcm_dma_irq()
63 substream->stream == SNDRV_PCM_STREAM_PLAYBACK in atmel_pcm_dma_irq()
64 ? "underrun" : "overrun", prtd->name, in atmel_pcm_dma_irq()
68 ssc_writex(prtd->ssc->regs, SSC_CR, prtd->mask->ssc_disable); in atmel_pcm_dma_irq()
72 ssc_readx(prtd->ssc->regs, SSC_RHR); in atmel_pcm_dma_irq()
73 ssc_readx(prtd->ssc->regs, SSC_SR); in atmel_pcm_dma_irq()
82 struct ssc_device *ssc; in atmel_pcm_configure_dma() local
86 ssc = prtd->ssc; in atmel_pcm_configure_dma()
90 pr_err("atmel-pcm: hwparams to dma slave configure failed\n"); in atmel_pcm_configure_dma()
94 slave_config->dst_addr = ssc->phybase + SSC_THR; in atmel_pcm_configure_dma()
95 slave_config->dst_maxburst = 1; in atmel_pcm_configure_dma()
97 slave_config->src_addr = ssc->phybase + SSC_RHR; in atmel_pcm_configure_dma()
98 slave_config->src_maxburst = 1; in atmel_pcm_configure_dma()
100 prtd->dma_intr_handler = atmel_pcm_dma_irq; in atmel_pcm_configure_dma()