• Home
  • Raw
  • Download

Lines Matching +full:i2s +full:- +full:rx

1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * pxa2xx-i2s.c -- ALSA Soc Audio Layer
21 #include <sound/pxa2xx-lib.h>
27 #include "pxa2xx-i2s.h"
30 * I2S Controller Register and Bit Definitions
33 #define SACR1 __REG(0x40400004) /* Serial Audio I 2 S/MSB-Justified Control Register */
34 #define SASR0 __REG(0x4040000C) /* Serial Audio I 2 S/MSB-Justified Interface and FIFO Status Reg…
38 #define SADR __REG(0x40400080) /* Serial Audio Data Register (TX and RX FIFO access Register). */
40 #define SACR0_RFTH(x) ((x) << 12) /* Rx FIFO Interrupt or DMA Trigger Threshold */
44 #define SACR0_RST (1 << 3) /* FIFO, i2s Register Reset */
46 #define SACR0_ENB (1 << 0) /* Enable I2S Link */
53 #define SASR0_ROR (1 << 6) /* Rx FIFO Overrun */
55 #define SASR0_RFS (1 << 4) /* Rx FIFO Service Request */
57 #define SASR0_BSY (1 << 2) /* I2S Busy */
58 #define SASR0_RNE (1 << 1) /* Rx FIFO Not Empty */
61 #define SAICR_ROR (1 << 6) /* Clear Rx FIFO Overrun Interrupt */
64 #define SAIMR_ROR (1 << 6) /* Enable Rx FIFO Overrun Condition Interrupt */
66 #define SAIMR_RFS (1 << 4) /* Enable Rx FIFO Service Interrupt */
91 .chan_name = "rx",
110 /* wait for I2S controller to be ready */
115 /* flush the Rx FIFO */ in pxa_i2s_wait()
151 return -ENODEV; in pxa2xx_i2s_set_dai_sysclk()
163 return -EINVAL; in pxa2xx_i2s_hw_params()
168 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) in pxa2xx_i2s_hw_params()
184 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) in pxa2xx_i2s_hw_params()
223 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) in pxa2xx_i2s_trigger()
236 ret = -EINVAL; in pxa2xx_i2s_trigger()
245 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { in pxa2xx_i2s_shutdown()
299 clk_i2s = clk_get(dai->dev, "I2SCLK"); in pxa2xx_i2s_probe()
307 * I2S controller registers. in pxa2xx_i2s_probe()
325 clk_i2s = ERR_PTR(-ENOENT); in pxa2xx_i2s_remove()
360 .name = "pxa-i2s",
377 return devm_snd_soc_register_component(&pdev->dev, &pxa_i2s_component, in pxa2xx_i2s_drv_probe()
385 .name = "pxa2xx-i2s",
391 clk_i2s = ERR_PTR(-ENOENT); in pxa2xx_i2s_init()
405 MODULE_DESCRIPTION("pxa2xx I2S SoC Interface");
407 MODULE_ALIAS("platform:pxa2xx-i2s");