/openbmc/linux/Documentation/devicetree/bindings/sound/ |
H A D | audio-graph-port.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/sound/audio-graph-port.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> 15 port-base: 16 $ref: /schemas/graph.yaml#/$defs/port-base 18 convert-rate: 19 $ref: /schemas/sound/dai-params.yaml#/$defs/dai-sample-rate 20 convert-channels: [all …]
|
H A D | dai-params.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/sound/dai-params.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Digital Audio Interface (DAI) Stream Parameters 10 - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> 16 dai-channels: 17 description: Number of audio channels used by DAI 22 dai-sample-format: 23 description: Audio sample format used by DAI [all …]
|
H A D | audio-graph.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/sound/audio-graph.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> 14 $ref: /schemas/types.yaml#/definitions/phandle-array 25 $ref: /schemas/types.yaml#/definitions/non-unique-string-array 32 $ref: /schemas/types.yaml#/definitions/non-unique-string-array 33 convert-rate: 34 $ref: /schemas/sound/dai-params.yaml#/$defs/dai-sample-rate [all …]
|
H A D | fsl-asoc-card.txt | 14 sample rates support through ASRC. 17 and PCM DAI formats. However, it'll be also possible to support those non 23 "fsl,imx-audio-ac97" 25 "fsl,imx-audio-cs42888" 27 "fsl,imx-audio-cs427x" 30 "fsl,imx-audio-wm8962" 32 "fsl,imx-audio-sgtl5000" 33 (compatible with Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt) 35 "fsl,imx-audio-wm8960" 37 "fsl,imx-audio-mqs" [all …]
|
/openbmc/linux/sound/soc/codecs/ |
H A D | cs4270.c | 6 * Copyright 2007-2009 Freescale Semiconductor, Inc. This file is licensed 15 * - Software mode is supported. Stand-alone mode is not supported. 16 * - Only I2C is supported, not SPI 17 * - Support for master and slave mode 18 * - The machine driver's 'startup' function must call 20 * - Only I2S and left-justified modes are supported 21 * - Power management is supported 43 #define CS4270_FORMAT 0x04 /* Serial Format, ADC/DAC Control */ 51 #define CS4270_NUMREGS (CS4270_LASTREG - CS4270_FIRSTREG + 1) 101 /* Power-on default values for the registers [all …]
|
H A D | si476x.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * sound/soc/codecs/si476x.c -- Codec driver for SI476X chips 21 #include <linux/mfd/si476x-core.h> 68 struct si476x_core *core = i2c_mfd_cell_to_core(codec_dai->dev); in si476x_codec_set_dai_fmt() 70 u16 format = 0; in si476x_codec_set_dai_fmt() local 73 return -EINVAL; in si476x_codec_set_dai_fmt() 77 format |= SI476X_DAUDIO_MODE_DSP_A; in si476x_codec_set_dai_fmt() 80 format |= SI476X_DAUDIO_MODE_DSP_B; in si476x_codec_set_dai_fmt() 83 format |= SI476X_DAUDIO_MODE_I2S; in si476x_codec_set_dai_fmt() 86 format |= SI476X_DAUDIO_MODE_RIGHT_J; in si476x_codec_set_dai_fmt() [all …]
|
H A D | wm8524.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * wm8524.c -- WM8524 ALSA SoC Audio driver 60 struct snd_soc_dai *dai) in wm8524_startup() argument 62 struct snd_soc_component *component = dai->component; in wm8524_startup() 65 /* The set of sample rates that can be supported depends on the in wm8524_startup() 66 * MCLK supplied to the CODEC - enforce this. in wm8524_startup() 68 if (!wm8524->sysclk) { in wm8524_startup() 69 dev_err(component->dev, in wm8524_startup() 71 return -EINVAL; in wm8524_startup() 74 snd_pcm_hw_constraint_list(substream->runtime, 0, in wm8524_startup() [all …]
|
H A D | cs4271.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 9 * The data format accepted is I2S or left-justified. 132 * Default CS4271 power-up configuration 133 * Array contains non-existing in hw register at address 0 161 /* Current sample rate for de-emphasis control */ 177 SND_SOC_DAPM_OUTPUT("AOUTA-"), 179 SND_SOC_DAPM_OUTPUT("AOUTB-"), 187 { "AOUTA-", NULL, "Playback" }, 189 { "AOUTB-", NULL, "Playback" }, 194 * MCLK rate should (c) be the sample rate, multiplied by one of the [all …]
|
H A D | uda1334.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 // uda1334.c -- UDA1334 ALSA SoC Audio driver 47 int deemph = ucontrol->value.integer.value[0]; in uda1334_put_deemph() 50 return -EINVAL; in uda1334_put_deemph() 52 gpiod_set_value_cansleep(uda1334->deemph, deemph); in uda1334_put_deemph() 64 ret = gpiod_get_value_cansleep(uda1334->deemph); in uda1334_get_deemph() 66 return -EINVAL; in uda1334_get_deemph() 68 ucontrol->value.integer.value[0] = ret; in uda1334_get_deemph() 91 struct snd_soc_dai *dai) in uda1334_startup() argument 93 struct snd_soc_component *component = dai->component; in uda1334_startup() [all …]
|
H A D | cs4234.c | 1 // SPDX-License-Identifier: GPL-2.0-only 2 // cs4234.c -- ALSA SoC CS4234 driver 39 unsigned int format; member 44 /* -89.92dB to +6.02dB with step of 0.38dB */ 45 static const DECLARE_TLV_DB_SCALE(dac_tlv, -8992, 38, 0); 65 "Interpolation Filter", "Sample and Hold" 96 regmap_read(cs4234->regmap, CS4234_ADC_CTRL2, &val); in cs4234_dac14_grp_delay_put() 98 ret = -EBUSY; in cs4234_dac14_grp_delay_put() 99 dev_err(component->dev, "Can't change group delay while ADC are ON\n"); in cs4234_dac14_grp_delay_put() 103 regmap_read(cs4234->regmap, CS4234_DAC_CTRL4, &val); in cs4234_dac14_grp_delay_put() [all …]
|
/openbmc/linux/sound/soc/meson/ |
H A D | axg-tdm-interface.c | 1 // SPDX-License-Identifier: (GPL-2.0 OR MIT) 11 #include <sound/soc-dai.h> 13 #include "axg-tdm.h" 38 int axg_tdm_set_tdm_slots(struct snd_soc_dai *dai, u32 *tx_mask, in axg_tdm_set_tdm_slots() argument 42 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai); in axg_tdm_set_tdm_slots() 43 struct axg_tdm_stream *tx = snd_soc_dai_dma_data_get_playback(dai); in axg_tdm_set_tdm_slots() 44 struct axg_tdm_stream *rx = snd_soc_dai_dma_data_get_capture(dai); in axg_tdm_set_tdm_slots() 53 dev_err(dai->dev, "interface has no slot\n"); in axg_tdm_set_tdm_slots() 54 return -EINVAL; in axg_tdm_set_tdm_slots() 57 iface->slots = slots; in axg_tdm_set_tdm_slots() [all …]
|
/openbmc/linux/sound/soc/fsl/ |
H A D | mpc5200_psc_i2s.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 // ALSA SoC Digital Audio Interface (DAI) driver 22 * PSC_I2S_RATES: sample rates supported by the I2S 25 * which means the codec determines the sample rate. Therefore, we tell 39 struct snd_soc_dai *dai) in psc_i2s_hw_params() argument 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 …]
|
H A D | fsl-asoc-card.c | 1 // SPDX-License-Identifier: GPL-2.0 23 #include "imx-audmux.h" 32 #define DRIVER_NAME "fsl-asoc-card" 39 /* Default DAI format without Master and Slave flag */ 43 * struct codec_priv - CODEC private data 61 * struct cpu_priv - CPU private data 79 * struct fsl_asoc_card_priv - Freescale Generic ASOC card private data 80 * @dai_link: DAI link structure including normal one and DPCM link 88 * @sample_rate: Current sample rate 89 * @sample_format: Current sample format [all …]
|
/openbmc/linux/sound/soc/sti/ |
H A D | uniperif_player.c | 1 // SPDX-License-Identifier: GPL-2.0-only 17 * Some hardware-related definitions 27 #define UNIPERIF_PLAYER_CLK_ADJ_MIN -999999 68 spin_lock(&player->irq_lock); in uni_player_irq_handler() 69 if (!player->substream) in uni_player_irq_handler() 72 snd_pcm_stream_lock(player->substream); in uni_player_irq_handler() 73 if (player->state == UNIPERIF_STATE_STOPPED) in uni_player_irq_handler() 82 dev_err(player->dev, "FIFO underflow error detected\n"); in uni_player_irq_handler() 85 if (player->underflow_enabled) { in uni_player_irq_handler() 87 player->state = UNIPERIF_STATE_UNDERFLOW; in uni_player_irq_handler() [all …]
|
H A D | uniperif_reader.c | 1 // SPDX-License-Identifier: GPL-2.0-only 49 spin_lock(&reader->irq_lock); in uni_reader_irq_handler() 50 if (!reader->substream) in uni_reader_irq_handler() 53 snd_pcm_stream_lock(reader->substream); in uni_reader_irq_handler() 54 if (reader->state == UNIPERIF_STATE_STOPPED) { in uni_reader_irq_handler() 56 dev_warn(reader->dev, "unexpected IRQ\n"); in uni_reader_irq_handler() 66 dev_err(reader->dev, "FIFO error detected\n"); in uni_reader_irq_handler() 68 snd_pcm_stop(reader->substream, SNDRV_PCM_STATE_XRUN); in uni_reader_irq_handler() 74 snd_pcm_stream_unlock(reader->substream); in uni_reader_irq_handler() 76 spin_unlock(&reader->irq_lock); in uni_reader_irq_handler() [all …]
|
/openbmc/linux/sound/soc/ti/ |
H A D | davinci-i2s.c | 1 // SPDX-License-Identifier: GPL-2.0-only 9 * based on davinci-mcasp.c DT support 31 #include "edma-pcm.h" 32 #include "davinci-i2s.h" 34 #define DRV_NAME "davinci-i2s" 39 * - This driver supports the "Audio Serial Port" (ASP), 42 * - But it labels it a "Multi-channel Buffered Serial Port" 44 * backward-compatible, possibly explaining that confusion. 46 * - OMAP chips have a controller called McBSP, which is 49 * - Newer DaVinci chips have a controller called McASP, [all …]
|
/openbmc/linux/sound/soc/ |
H A D | soc-dai.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // soc-dai.c 10 #include <sound/soc-dai.h> 11 #include <sound/soc-link.h> 13 #define soc_dai_ret(dai, ret) _soc_dai_ret(dai, __func__, ret) argument 14 static inline int _soc_dai_ret(struct snd_soc_dai *dai, in _soc_dai_ret() argument 23 case -EPROBE_DEFER: in _soc_dai_ret() 24 case -ENOTSUPP: in _soc_dai_ret() 27 dev_err(dai->dev, in _soc_dai_ret() 29 func, dai->name, ret); in _soc_dai_ret() [all …]
|
/openbmc/linux/sound/soc/sunxi/ |
H A D | sun4i-i2s.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 7 * Maxime Ripard <maxime.ripard@free-electrons.com> 22 #include <sound/soc-dai.h> 85 #define SUN4I_I2S_CHAN_SEL(num_chan) (((num_chan) - 1) << 0) 88 #define SUN4I_I2S_TX_CHAN_MAP(chan, sample) ((sample) << (chan << 2)) argument 93 /* Defines required for sun8i-h3 support */ 106 #define SUN8I_I2S_FMT0_LRCK_PERIOD(period) ((period - 1) << 8) 119 #define SUN8I_I2S_CHAN_CFG_RX_SLOT_NUM(chan) ((chan - 1) << 4) 121 #define SUN8I_I2S_CHAN_CFG_TX_SLOT_NUM(chan) (chan - 1) 128 #define SUN8I_I2S_TX_CHAN_EN(num_chan) (((1 << num_chan) - 1) << 4) [all …]
|
H A D | sun8i-codec.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 6 * (C) Copyright 2010-2016 9 * Mylène Josserand <mylene.josserand@free-electrons.com> 23 #include <sound/soc-dapm.h> 200 regcache_cache_only(scodec->regmap, false); in sun8i_codec_runtime_resume() 202 ret = regcache_sync(scodec->regmap); in sun8i_codec_runtime_resume() 215 regcache_cache_only(scodec->regmap, true); in sun8i_codec_runtime_suspend() 216 regcache_mark_dirty(scodec->regmap); in sun8i_codec_runtime_suspend() 252 return -EINVAL; in sun8i_codec_get_hw_rate() 262 struct sun8i_codec_aif *aif = &scodec->aifs[i]; in sun8i_codec_update_sample_rate() [all …]
|
/openbmc/linux/sound/soc/sh/ |
H A D | ssi.c | 1 // SPDX-License-Identifier: GPL-2.0 22 * and can be independent from the actual sample bit depth. This is 24 * fixed TDM slot size, regardless of sample resolution. 62 #define SSIREG(reg) (*(unsigned long *)(ssi->mmio + (reg))) 86 * track usage of the SSI; it is simplex-only so prevent attempts of 90 struct snd_soc_dai *dai) in ssi_startup() argument 92 struct ssi_priv *ssi = &ssi_cpu_data[dai->id]; in ssi_startup() 93 if (ssi->inuse) { in ssi_startup() 95 return -EBUSY; in ssi_startup() 97 ssi->inuse = 1; in ssi_startup() [all …]
|
/openbmc/linux/sound/soc/pxa/ |
H A D | mmp-sspa.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * linux/sound/soc/pxa/mmp-sspa.c 4 * Base on pxa2xx-ssp.c 23 #include <sound/pxa2xx-lib.h> 25 #include "mmp-sspa.h" 47 unsigned int sspa_sp = sspa->sp; in mmp_sspa_tx_enable() 52 __raw_writel(sspa_sp, sspa->tx_base + SSPA_SP); in mmp_sspa_tx_enable() 57 unsigned int sspa_sp = sspa->sp; in mmp_sspa_tx_disable() 62 __raw_writel(sspa_sp, sspa->tx_base + SSPA_SP); in mmp_sspa_tx_disable() 67 unsigned int sspa_sp = sspa->sp; in mmp_sspa_rx_enable() [all …]
|
/openbmc/linux/Documentation/sound/soc/ |
H A D | dapm.rst | 11 such, can easily co-exist with the other PM systems. 60 Audio DAPM widgets fall into a number of types:- 98 DAI IN 100 DAI OUT 102 DAI Link 103 DAI Link between two DAI structures 116 Sample Rate Converter within DSP or CODEC 118 Asynchronous Sample Rate Converter within DSP or CODEC 120 Widget that encodes audio data from one format (usually PCM) to another 121 usually more compressed format. [all …]
|
H A D | codec-to-codec.rst | 2 Creating codec to codec dai link for ALSA dapm 9 --------- --------- 10 | | dai | | 11 CPU -------> codec 13 --------- --------- 18 --------- 20 codec-2 22 --------- 24 dai-2 26 ---------- --------- [all …]
|
/openbmc/linux/sound/soc/atmel/ |
H A D | atmel_ssc_dai.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * atmel_ssc_dai.c -- ALSA SoC ATMEL SSC Audio Layer Platform driver 11 * Based on at91-ssc.c by 25 #include <linux/atmel-ssc.h> 32 #include "atmel-pcm.h" 147 ssc_sr = (unsigned long)ssc_readl(ssc_p->ssc->regs, SR) in atmel_ssc_interrupt() 148 & (unsigned long)ssc_readl(ssc_p->ssc->regs, IMR); in atmel_ssc_interrupt() 152 * a DMA-related interrupt occurred on that substream, call in atmel_ssc_interrupt() 156 for (i = 0; i < ARRAY_SIZE(ssc_p->dma_params); i++) { in atmel_ssc_interrupt() 157 dma_params = ssc_p->dma_params[i]; in atmel_ssc_interrupt() [all …]
|
/openbmc/linux/arch/arm/boot/dts/st/ |
H A D | stm32mp15xx-dkx.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 3 * Copyright (C) STMicroelectronics 2019 - All Rights Reserved 7 #include <dt-bindings/gpio/gpio.h> 8 #include <dt-bindings/mfd/st,stpmic1.h> 22 reserved-memory { 23 #address-cells = <1>; 24 #size-cells = <1>; 28 compatible = "shared-dma-pool"; 30 no-map; 34 compatible = "shared-dma-pool"; [all …]
|