| /kernel/linux/linux-5.10/sound/soc/samsung/ |
| D | s3c-i2s-v2.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 // ALSA Soc Audio Layer - I2S core for newer Samsung SoCs. 9 // Copyright (c) 2008, 2007, 2004-2005 Simtec Electronics 21 #include "regs-i2s-v2.h" 22 #include "s3c-i2s-v2.h" 72 static void s3c2412_snd_txctrl(struct s3c_i2sv2_info *i2s, int on) in s3c2412_snd_txctrl() argument 74 void __iomem *regs = i2s->regs; in s3c2412_snd_txctrl() local 79 fic = readl(regs + S3C2412_IISFIC); in s3c2412_snd_txctrl() 80 con = readl(regs + S3C2412_IISCON); in s3c2412_snd_txctrl() 81 mod = readl(regs + S3C2412_IISMOD); in s3c2412_snd_txctrl() [all …]
|
| D | s3c2412-i2s.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 // ALSA Soc Audio Layer - S3C2412 I2S driver 9 // Copyright (c) 2007, 2004-2005 Simtec Electronics 23 #include "regs-i2s-v2.h" 24 #include "s3c2412-i2s.h" 26 #include <linux/platform_data/asoc-s3c.h> 56 s3c2412_i2s.iis_cclk = devm_clk_get(dai->dev, "i2sclk"); in s3c2412_i2s_probe() 90 struct s3c_i2sv2_info *i2s = snd_soc_dai_get_drvdata(cpu_dai); in s3c2412_i2s_hw_params() local 95 iismod = readl(i2s->regs + S3C2412_IISMOD); in s3c2412_i2s_hw_params() 107 writel(iismod, i2s->regs + S3C2412_IISMOD); in s3c2412_i2s_hw_params() [all …]
|
| D | s3c-i2s-v2.h | 1 /* SPDX-License-Identifier: GPL-2.0+ */ 3 * ALSA Soc Audio Layer - S3C_I2SV2 I2S driver 10 /* This code is the core support for the I2S block found in a number of 11 * Samsung SoC devices which is unofficially named I2S-V2. Currently the 12 * S3C2412 and the S3C64XX series use this block to provide 1 or 2 I2S 27 /* Set this flag for I2S controllers that have the bit IISMOD[12] 33 * struct s3c_i2sv2_info - S3C I2S-V2 information 35 * @regs: The pointer to the device registe block. 36 * @feature: Set of bit-flags indicating features of the controller. 37 * @master: True if the I2S core is the I2S bit clock master. [all …]
|
| D | idma.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 // idma.c - I2S0 internal DMA driver 10 #include <linux/dma-mapping.h> 17 #include "i2s.h" 19 #include "i2s-regs.h" 52 void __iomem *regs; member 61 (readl(idma.regs + I2STRNCNT) & 0xffffff) * 4; in idma_getpos() 66 struct snd_pcm_runtime *runtime = substream->runtime; in idma_enqueue() 67 struct idma_ctrl *prtd = substream->runtime->private_data; in idma_enqueue() 70 spin_lock(&prtd->lock); in idma_enqueue() [all …]
|
| /kernel/linux/linux-5.10/sound/soc/xtensa/ |
| D | xtfpga-i2s.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Xtfpga I2S controller driver 17 #define DRV_NAME "xtfpga-i2s" 46 * I2S controller operation: 61 void __iomem *regs; member 69 * read-side critical section. Trigger callback sets and clears the 76 unsigned (*tx_fn)(struct xtfpga_i2s *i2s, 123 * xtfpga_pcm_tx_2x16 for 16-bit stereo. 125 * FIFO consists of 32-bit words, one word per channel, always 2 channels. 126 * If I2S interface is configured with smaller sample resolution, only [all …]
|
| /kernel/linux/linux-6.6/sound/soc/xtensa/ |
| D | xtfpga-i2s.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Xtfpga I2S controller driver 17 #define DRV_NAME "xtfpga-i2s" 46 * I2S controller operation: 61 void __iomem *regs; member 69 * read-side critical section. Trigger callback sets and clears the 76 unsigned (*tx_fn)(struct xtfpga_i2s *i2s, 123 * xtfpga_pcm_tx_2x16 for 16-bit stereo. 125 * FIFO consists of 32-bit words, one word per channel, always 2 channels. 126 * If I2S interface is configured with smaller sample resolution, only [all …]
|
| /kernel/linux/linux-5.10/sound/soc/tegra/ |
| D | tegra20_i2s.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * tegra20_i2s.c - Tegra20 I2S driver 6 * Copyright (C) 2010,2012 - NVIDIA, Inc. 10 * Copyright (c) 2009-2010, NVIDIA Corporation. 34 #define DRV_NAME "tegra20-i2s" 38 struct tegra20_i2s *i2s = dev_get_drvdata(dev); in tegra20_i2s_runtime_suspend() local 40 clk_disable_unprepare(i2s->clk_i2s); in tegra20_i2s_runtime_suspend() 47 struct tegra20_i2s *i2s = dev_get_drvdata(dev); in tegra20_i2s_runtime_resume() local 50 ret = clk_prepare_enable(i2s->clk_i2s); in tegra20_i2s_runtime_resume() 62 struct tegra20_i2s *i2s = snd_soc_dai_get_drvdata(dai); in tegra20_i2s_set_fmt() local [all …]
|
| D | tegra30_i2s.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * tegra30_i2s.c - Tegra30 I2S driver 6 * Copyright (c) 2010-2012, NVIDIA CORPORATION. All rights reserved. 10 * Copyright (c) 2009-2010, NVIDIA Corporation. 36 #define DRV_NAME "tegra30-i2s" 40 struct tegra30_i2s *i2s = dev_get_drvdata(dev); in tegra30_i2s_runtime_suspend() local 42 regcache_cache_only(i2s->regmap, true); in tegra30_i2s_runtime_suspend() 44 clk_disable_unprepare(i2s->clk_i2s); in tegra30_i2s_runtime_suspend() 51 struct tegra30_i2s *i2s = dev_get_drvdata(dev); in tegra30_i2s_runtime_resume() local 54 ret = clk_prepare_enable(i2s->clk_i2s); in tegra30_i2s_runtime_resume() [all …]
|
| /kernel/linux/linux-5.10/sound/soc/meson/ |
| D | g12a-tohdmitx.c | 1 // SPDX-License-Identifier: GPL-2.0 13 #include <sound/soc-dai.h> 15 #include <dt-bindings/sound/meson-g12a-tohdmitx.h> 16 #include "meson-codec-glue.h" 18 #define G12A_TOHDMITX_DRV_NAME "g12a-tohdmitx" 35 "I2S A", "I2S B", "I2S C", 45 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value; in g12a_tohdmitx_i2s_mux_put_enum() 48 if (ucontrol->value.enumerated.item[0] >= e->items) in g12a_tohdmitx_i2s_mux_put_enum() 49 return -EINVAL; in g12a_tohdmitx_i2s_mux_put_enum() 51 mux = snd_soc_enum_item_to_val(e, ucontrol->value.enumerated.item[0]); in g12a_tohdmitx_i2s_mux_put_enum() [all …]
|
| D | aiu.c | 1 // SPDX-License-Identifier: GPL-2.0 13 #include <sound/soc-dai.h> 15 #include <dt-bindings/sound/meson-aiu.h> 17 #include "aiu-fifo.h" 22 "SPDIF", "I2S", 38 { "I2S Encoder Playback", NULL, "I2S FIFO Playback" }, 40 { "SPDIF SRC SEL", "I2S", "I2S FIFO Playback" }, 52 if (args->args_count != 2) in aiu_of_xlate_dai_name() 53 return -EINVAL; in aiu_of_xlate_dai_name() 55 if (args->args[0] != component_id) in aiu_of_xlate_dai_name() [all …]
|
| /kernel/linux/linux-6.6/sound/soc/meson/ |
| D | g12a-tohdmitx.c | 1 // SPDX-License-Identifier: GPL-2.0 13 #include <sound/soc-dai.h> 15 #include <dt-bindings/sound/meson-g12a-tohdmitx.h> 16 #include "meson-codec-glue.h" 18 #define G12A_TOHDMITX_DRV_NAME "g12a-tohdmitx" 35 "I2S A", "I2S B", "I2S C", 45 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value; in g12a_tohdmitx_i2s_mux_put_enum() 48 if (ucontrol->value.enumerated.item[0] >= e->items) in g12a_tohdmitx_i2s_mux_put_enum() 49 return -EINVAL; in g12a_tohdmitx_i2s_mux_put_enum() 51 mux = snd_soc_enum_item_to_val(e, ucontrol->value.enumerated.item[0]); in g12a_tohdmitx_i2s_mux_put_enum() [all …]
|
| D | aiu.c | 1 // SPDX-License-Identifier: GPL-2.0 13 #include <sound/soc-dai.h> 15 #include <dt-bindings/sound/meson-aiu.h> 17 #include "aiu-fifo.h" 22 "SPDIF", "I2S", 38 { "I2S Encoder Playback", NULL, "I2S FIFO Playback" }, 40 { "SPDIF SRC SEL", "I2S", "I2S FIFO Playback" }, 52 if (args->args_count != 2) in aiu_of_xlate_dai_name() 53 return -EINVAL; in aiu_of_xlate_dai_name() 55 if (args->args[0] != component_id) in aiu_of_xlate_dai_name() [all …]
|
| /kernel/linux/patches/linux-5.10/yangfan_patch/ |
| D | sound.patch | 1 diff --git a/sound/Makefile b/sound/Makefile 3 --- a/sound/Makefile 5 @@ -5,7 +5,8 @@ 6 obj-$(CONFIG_SOUND) += soundcore.o 7 obj-$(CONFIG_DMASOUND) += oss/dmasound/ 8 obj-$(CONFIG_SND) += core/ i2c/ drivers/ isa/ pci/ ppc/ arm/ sh/ synth/ usb/ \ 9 - firewire/ sparc/ spi/ parisc/ pcmcia/ mips/ soc/ atmel/ hda/ x86/ xen/ 12 obj-$(CONFIG_SND_AOA) += aoa/ 15 diff --git a/sound/drivers/aloop.c b/sound/drivers/aloop.c 17 --- a/sound/drivers/aloop.c [all …]
|
| /kernel/linux/linux-6.6/sound/soc/tegra/ |
| D | tegra20_i2s.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * tegra20_i2s.c - Tegra20 I2S driver 6 * Copyright (C) 2010,2012 - NVIDIA, Inc. 10 * Copyright (c) 2009-2010, NVIDIA Corporation. 35 #define DRV_NAME "tegra20-i2s" 39 struct tegra20_i2s *i2s = dev_get_drvdata(dev); in tegra20_i2s_runtime_suspend() local 41 regcache_cache_only(i2s->regmap, true); in tegra20_i2s_runtime_suspend() 43 clk_disable_unprepare(i2s->clk_i2s); in tegra20_i2s_runtime_suspend() 50 struct tegra20_i2s *i2s = dev_get_drvdata(dev); in tegra20_i2s_runtime_resume() local 53 ret = reset_control_assert(i2s->reset); in tegra20_i2s_runtime_resume() [all …]
|
| D | tegra30_i2s.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * tegra30_i2s.c - Tegra30 I2S driver 6 * Copyright (c) 2010-2012, NVIDIA CORPORATION. All rights reserved. 10 * Copyright (c) 2009-2010, NVIDIA Corporation. 37 #define DRV_NAME "tegra30-i2s" 41 struct tegra30_i2s *i2s = dev_get_drvdata(dev); in tegra30_i2s_runtime_suspend() local 43 regcache_cache_only(i2s->regmap, true); in tegra30_i2s_runtime_suspend() 45 clk_disable_unprepare(i2s->clk_i2s); in tegra30_i2s_runtime_suspend() 52 struct tegra30_i2s *i2s = dev_get_drvdata(dev); in tegra30_i2s_runtime_resume() local 55 ret = clk_prepare_enable(i2s->clk_i2s); in tegra30_i2s_runtime_resume() [all …]
|
| D | tegra210_i2s.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 // tegra210_i2s.c - Tegra210 I2S driver 31 * is required to select i2s4b for it to be functional for I2S 42 regmap_write(regmap, TEGRA210_I2S_SLOT_CTRL, total_slots - 1); in tegra210_i2s_set_slot_ctrl() 50 struct tegra210_i2s *i2s = dev_get_drvdata(dev); in tegra210_i2s_set_clock_rate() local 54 regmap_read(i2s->regmap, TEGRA210_I2S_CTRL, &val); in tegra210_i2s_set_clock_rate() 56 /* No need to set rates if I2S is being operated in slave */ in tegra210_i2s_set_clock_rate() 60 err = clk_set_rate(i2s->clk_i2s, clock_rate); in tegra210_i2s_set_clock_rate() 62 dev_err(dev, "can't set I2S bit clock rate %u, err: %d\n", in tegra210_i2s_set_clock_rate() 67 if (!IS_ERR(i2s->clk_sync_input)) { in tegra210_i2s_set_clock_rate() [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/sound/ |
| D | intel,keembay-i2s.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 4 --- 5 $id: http://devicetree.org/schemas/sound/intel,keembay-i2s.yaml# 6 $schema: http://devicetree.org/meta-schemas/core.yaml# 8 title: Intel KeemBay I2S Device Tree Bindings 11 - Sia, Jee Heng <jee.heng.sia@intel.com> 14 Intel KeemBay I2S 19 - intel,keembay-i2s 20 - intel,keembay-tdm 22 "#sound-dai-cells": [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/sound/ |
| D | intel,keembay-i2s.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 4 --- 5 $id: http://devicetree.org/schemas/sound/intel,keembay-i2s.yaml# 6 $schema: http://devicetree.org/meta-schemas/core.yaml# 8 title: Intel KeemBay I2S 11 - Daniele Alessandrelli <daniele.alessandrelli@intel.com> 12 - Paul J. Murphy <paul.j.murphy@intel.com> 15 Intel KeemBay I2S 18 - $ref: dai-common.yaml# 23 - intel,keembay-i2s [all …]
|
| /kernel/linux/linux-6.6/sound/soc/jz4740/ |
| D | jz4740-i2s.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Copyright (C) 2010, Lars-Peter Clausen <lars@metafoo.de> 9 #include <linux/dma-mapping.h> 97 struct jz4740_i2s *i2s = snd_soc_dai_get_drvdata(dai); in jz4740_i2s_startup() local 105 if (!i2s->soc_info->shared_fifo_flush) { in jz4740_i2s_startup() 106 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) in jz4740_i2s_startup() 107 regmap_set_bits(i2s->regmap, JZ_REG_AIC_CTRL, JZ_AIC_CTRL_TFLUSH); in jz4740_i2s_startup() 109 regmap_set_bits(i2s->regmap, JZ_REG_AIC_CTRL, JZ_AIC_CTRL_RFLUSH); in jz4740_i2s_startup() 121 if (i2s->soc_info->shared_fifo_flush) in jz4740_i2s_startup() 122 regmap_set_bits(i2s->regmap, JZ_REG_AIC_CTRL, JZ_AIC_CTRL_TFLUSH); in jz4740_i2s_startup() [all …]
|
| /kernel/linux/linux-5.10/sound/soc/rockchip/ |
| D | rockchip_i2s.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * ALSA SoC Audio Layer - Rockchip I2S Controller driver 7 * Author: Jianqun <jay.xu@rock-chips.com> 24 #define DRV_NAME "rockchip-i2s" 45 * I2S controller hopes to start the tx and rx together, 56 struct rk_i2s_dev *i2s = dev_get_drvdata(dev); in i2s_runtime_suspend() local 58 regcache_cache_only(i2s->regmap, true); in i2s_runtime_suspend() 59 clk_disable_unprepare(i2s->mclk); in i2s_runtime_suspend() 66 struct rk_i2s_dev *i2s = dev_get_drvdata(dev); in i2s_runtime_resume() local 69 ret = clk_prepare_enable(i2s->mclk); in i2s_runtime_resume() [all …]
|
| /kernel/linux/linux-6.6/sound/soc/fsl/ |
| D | mpc5200_psc_i2s.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 // Freescale MPC5200 PSC in I2S mode 22 * PSC_I2S_RATES: sample rates supported by the I2S 24 * This driver currently only supports the PSC running in I2S slave mode, 32 * PSC_I2S_FORMATS: audio formats supported by the PSC I2S mode 45 dev_dbg(psc_dma->dev, "%s(substream=%p) p_size=%i p_bytes=%i" in psc_i2s_hw_params() 65 dev_dbg(psc_dma->dev, "invalid format\n"); in psc_i2s_hw_params() 66 return -EINVAL; in psc_i2s_hw_params() 68 out_be32(&psc_dma->psc_regs->sicr, psc_dma->sicr | mode); in psc_i2s_hw_params() 91 dev_dbg(psc_dma->dev, "psc_i2s_set_sysclk(cpu_dai=%p, dir=%i)\n", in psc_i2s_set_sysclk() [all …]
|
| /kernel/linux/linux-5.10/sound/soc/fsl/ |
| D | mpc5200_psc_i2s.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 // Freescale MPC5200 PSC in I2S mode 22 * PSC_I2S_RATES: sample rates supported by the I2S 24 * This driver currently only supports the PSC running in I2S slave mode, 32 * PSC_I2S_FORMATS: audio formats supported by the PSC I2S mode 45 dev_dbg(psc_dma->dev, "%s(substream=%p) p_size=%i p_bytes=%i" in psc_i2s_hw_params() 65 dev_dbg(psc_dma->dev, "invalid format\n"); in psc_i2s_hw_params() 66 return -EINVAL; in psc_i2s_hw_params() 68 out_be32(&psc_dma->psc_regs->sicr, psc_dma->sicr | mode); in psc_i2s_hw_params() 91 dev_dbg(psc_dma->dev, "psc_i2s_set_sysclk(cpu_dai=%p, dir=%i)\n", in psc_i2s_set_sysclk() [all …]
|
| /kernel/linux/linux-6.6/sound/soc/samsung/ |
| D | idma.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 // idma.c - I2S0 internal DMA driver 10 #include <linux/dma-mapping.h> 17 #include "i2s.h" 19 #include "i2s-regs.h" 52 void __iomem *regs; member 61 (readl(idma.regs + I2STRNCNT) & 0xffffff) * 4; in idma_getpos() 66 struct snd_pcm_runtime *runtime = substream->runtime; in idma_enqueue() 67 struct idma_ctrl *prtd = substream->runtime->private_data; in idma_enqueue() 70 spin_lock(&prtd->lock); in idma_enqueue() [all …]
|
| /kernel/linux/linux-6.6/sound/soc/rockchip/ |
| D | rockchip_i2s.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * ALSA SoC Audio Layer - Rockchip I2S Controller driver 7 * Author: Jianqun <jay.xu@rock-chips.com> 25 #define DRV_NAME "rockchip-i2s" 49 * I2S controller hopes to start the tx and rx together, 63 static int i2s_pinctrl_select_bclk_on(struct rk_i2s_dev *i2s) in i2s_pinctrl_select_bclk_on() argument 67 if (!IS_ERR(i2s->pinctrl) && !IS_ERR_OR_NULL(i2s->bclk_on)) in i2s_pinctrl_select_bclk_on() 68 ret = pinctrl_select_state(i2s->pinctrl, i2s->bclk_on); in i2s_pinctrl_select_bclk_on() 71 dev_err(i2s->dev, "bclk enable failed %d\n", ret); in i2s_pinctrl_select_bclk_on() 76 static int i2s_pinctrl_select_bclk_off(struct rk_i2s_dev *i2s) in i2s_pinctrl_select_bclk_off() argument [all …]
|
| /kernel/linux/linux-6.6/sound/soc/cirrus/ |
| D | ep93xx-i2s.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * linux/sound/soc/ep93xx-i2s.c 4 * EP93xx I2S driver 27 #include <linux/platform_data/dma-ep93xx.h> 30 #include "ep93xx-pcm.h" 60 * 0 - Generate interrupt when FIFO is half empty 61 * 1 - Generate interrupt when FIFO is empty 78 void __iomem *regs; member 85 .name = "i2s-pcm-out", 90 .name = "i2s-pcm-in", [all …]
|