/Linux-v6.1/sound/soc/meson/ |
D | axg-card.c | 1 // SPDX-License-Identifier: (GPL-2.0 OR MIT) 9 #include <sound/soc-dai.h> 11 #include "axg-tdm.h" 12 #include "meson-card.h" 21 unsigned int slots; member 30 * Those will be over-written by the CPU side of the link 44 struct meson_card *priv = snd_soc_card_get_drvdata(rtd->card); in axg_card_tdm_be_hw_params() 46 (struct axg_dai_link_tdm_data *)priv->link_data[rtd->num]; in axg_card_tdm_be_hw_params() 48 return meson_card_i2s_set_sysclk(substream, params, be->mclk_fs); in axg_card_tdm_be_hw_params() 57 struct meson_card *priv = snd_soc_card_get_drvdata(rtd->card); in axg_card_tdm_dai_init() [all …]
|
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" 22 unsigned int slots = 0; in axg_tdm_slots_total() local 28 /* Count the total number of slots provided by all 4 lanes */ in axg_tdm_slots_total() 30 slots += hweight32(mask[i]); in axg_tdm_slots_total() 32 return slots; in axg_tdm_slots_total() 36 u32 *rx_mask, unsigned int slots, in axg_tdm_set_tdm_slots() argument 41 dai->playback_dma_data; in axg_tdm_set_tdm_slots() 43 dai->capture_dma_data; in axg_tdm_set_tdm_slots() [all …]
|
D | axg-tdm-formatter.c | 1 // SPDX-License-Identifier: (GPL-2.0 OR MIT) 13 #include "axg-tdm-formatter.h" 33 unsigned int val, ch = ts->channels; in axg_tdm_formatter_set_channel_masks() 38 * Distribute the channels of the stream over the available slots in axg_tdm_formatter_set_channel_masks() 39 * of each TDM lane in axg_tdm_formatter_set_channel_masks() 43 mask = ts->mask[i]; in axg_tdm_formatter_set_channel_masks() 49 ch -= 1; in axg_tdm_formatter_set_channel_masks() 63 return -EINVAL; in axg_tdm_formatter_set_channel_masks() 72 struct axg_tdm_stream *ts = formatter->stream; in axg_tdm_formatter_enable() 77 if (formatter->enabled) in axg_tdm_formatter_enable() [all …]
|
/Linux-v6.1/Documentation/devicetree/bindings/sound/ |
D | tdm-slot.txt | 1 TDM slot: 3 This specifies audio DAI's TDM slot. 5 TDM slot properties: 6 dai-tdm-slot-num : Number of slots in use. 7 dai-tdm-slot-width : Width in bits for each slot. 8 dai-tdm-slot-tx-mask : Transmit direction slot mask, optional 9 dai-tdm-slot-rx-mask : Receive direction slot mask, optional 12 dai-tdm-slot-num = <2>; 13 dai-tdm-slot-width = <8>; 14 dai-tdm-slot-tx-mask = <0 1>; [all …]
|
D | davinci-mcasp-audio.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/sound/davinci-mcasp-audio.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Jayesh Choudhary <j-choudhary@ti.com> 15 - ti,dm646x-mcasp-audio 16 - ti,da830-mcasp-audio 17 - ti,am33xx-mcasp-audio 18 - ti,dra7-mcasp-audio 19 - ti,omap4-mcasp-audio [all …]
|
D | amlogic,axg-sound-card.txt | 5 - compatible: "amlogic,axg-sound-card" 6 - model : User specified audio sound card name, one string 10 - audio-aux-devs : List of phandles pointing to auxiliary devices 11 - audio-widgets : Please refer to widgets.txt. 12 - audio-routing : A list of the connections between audio components. 16 - dai-link: Container for dai-link level properties and the CODEC 17 sub-nodes. There should be at least one (and probably more) 20 Required dai-link properties: 22 - sound-dai: phandle and port of the CPU DAI. 24 Required TDM Backend dai-link properties: [all …]
|
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 - $ref: /schemas/graph.yaml#/$defs/port-base 21 convert-rate: 22 $ref: "/schemas/sound/dai-params.yaml#/$defs/dai-sample-rate" 23 convert-channels: 24 $ref: "/schemas/sound/dai-params.yaml#/$defs/dai-channels" [all …]
|
/Linux-v6.1/sound/soc/fsl/ |
D | imx-card.c | 1 // SPDX-License-Identifier: GPL-2.0+ 2 // Copyright 2017-2021 NXP 15 #include <sound/soc-dapm.h> 46 * Mapping TDM mode and frame width 55 * struct imx_card_plat_data - specific info for codecs 58 * @tdm_fs_mul: ratio of mclk/fs for tdm mode 60 * @support_tdm_rates: supported sample rate for tdm mode 62 * @support_tdm_channels: supported channels for tdm mode 89 * struct dai_link_data - specific info for dai link 91 * @slots: slot number [all …]
|
/Linux-v6.1/sound/soc/ |
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> 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() 39 #define soc_dai_mark_push(dai, substream, tgt) ((dai)->mark_##tgt = substream) 40 #define soc_dai_mark_pop(dai, substream, tgt) ((dai)->mark_##tgt = NULL) [all …]
|
D | soc-utils.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 // soc-util.c -- ALSA SoC Audio Layer utility functions 57 * snd_soc_tdm_params_to_bclk - calculate bclk from params and tdm slot info. 59 * Calculate the bclk from the params sample rate, the tdm slot count and the 60 * tdm slot width. Optionally round-up the slot count to a given multiple. 68 * I2S mode, which has a left and right phase so the number of slots is always 75 * @tdm_width: Width in bits of the tdm slots. Must be >= 0. 76 * @tdm_slots: Number of tdm slots per frame. Must be >= 0. 126 if (component->driver == &dummy_platform) in dummy_dma_open() 131 if (!rtd->dai_link->no_pcm) in dummy_dma_open() [all …]
|
/Linux-v6.1/Documentation/devicetree/bindings/soc/fsl/cpm_qe/ |
D | network.txt | 4 - fsl,cpm1-scc-enet 5 - fsl,cpm2-scc-enet 6 - fsl,cpm1-fec-enet 7 - fsl,cpm2-fcc-enet (third resource is GFEMR) 8 - fsl,qe-enet 13 compatible = "fsl,mpc8272-fcc-enet", 14 "fsl,cpm2-fcc-enet"; 16 local-mac-address = [ 00 00 00 00 00 00 ]; 18 interrupt-parent = <&PIC>; 19 phy-handle = <&PHY0>; [all …]
|
/Linux-v6.1/sound/soc/qcom/qdsp6/ |
D | q6afe-dai.c | 1 // SPDX-License-Identifier: GPL-2.0 2 // Copyright (c) 2011-2017, The Linux Foundation. All rights reserved. 14 #include "q6dsp-lpass-ports.h" 40 struct q6afe_dai_data *dai_data = dev_get_drvdata(dai->dev); in q6slim_hw_params() 41 struct q6afe_slim_cfg *slim = &dai_data->port_config[dai->id].slim; in q6slim_hw_params() 43 slim->sample_rate = params_rate(params); in q6slim_hw_params() 48 slim->bit_width = 16; in q6slim_hw_params() 51 slim->bit_width = 24; in q6slim_hw_params() 54 slim->bit_width = 32; in q6slim_hw_params() 59 return -EINVAL; in q6slim_hw_params() [all …]
|
/Linux-v6.1/sound/soc/ti/ |
D | davinci-mcasp.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * Multi-channel Audio Serial Port Driver 7 * Author: Nirmal Pandey <n-pandey@ti.com>, 39 #include "edma-pcm.h" 40 #include "sdma-pcm.h" 41 #include "udma-pcm.h" 42 #include "davinci-mcasp.h" 136 void __iomem *reg = mcasp->base + offset; in mcasp_set_bits() 143 void __iomem *reg = mcasp->base + offset; in mcasp_clr_bits() 150 void __iomem *reg = mcasp->base + offset; in mcasp_mod_bits() [all …]
|
/Linux-v6.1/sound/soc/codecs/ |
D | pcm3168a.c | 1 // SPDX-License-Identifier: GPL-2.0-only 109 static const char *const pcm3168a_con[] = { "Differential", "Single-Ended" }; 127 /* -100db to 0db, register values 0-54 cause mute */ 128 static const DECLARE_TLV_DB_SCALE(pcm3168a_dac_tlv, -10050, 50, 1); 130 /* -100db to 20db, register values 0-14 cause mute */ 131 static const DECLARE_TLV_DB_SCALE(pcm3168a_adc_tlv, -10050, 50, 1); 134 SOC_SINGLE("DAC Power-Save Switch", PCM3168A_DAC_PWR_MST_FMT, 136 SOC_ENUM("DAC1 Digital Filter roll-off", pcm3168a_d1_roll_off), 137 SOC_ENUM("DAC2 Digital Filter roll-off", pcm3168a_d2_roll_off), 138 SOC_ENUM("DAC3 Digital Filter roll-off", pcm3168a_d3_roll_off), [all …]
|
D | adau7118.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // Analog Devices ADAU7118 8 channel PDM-to-I2S/TDM Converter driver 41 u32 slots; member 128 snd_soc_component_get_drvdata(dai->component); in adau7118_set_channel_map() 131 dev_dbg(st->dev, "Set channel map, %d", tx_num); in adau7118_set_channel_map() 134 ret = snd_soc_component_update_bits(dai->component, in adau7118_set_channel_map() 148 snd_soc_component_get_drvdata(dai->component); in adau7118_set_fmt() 152 dev_dbg(st->dev, "Set format, fmt:%d\n", fmt); in adau7118_set_fmt() 156 ret = snd_soc_component_update_bits(dai->component, in adau7118_set_fmt() 162 ret = snd_soc_component_update_bits(dai->component, in adau7118_set_fmt() [all …]
|
D | nau8540.c | 1 // SPDX-License-Identifier: GPL-2.0-only 24 #include <sound/soc-dapm.h> 183 static const DECLARE_TLV_DB_MINMAX(adc_vol_tlv, -12800, 3600); 184 static const DECLARE_TLV_DB_MINMAX(fepga_gain_tlv, -100, 3600); 236 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); in adc_power_control() 242 regmap_update_bits(nau8540->regmap, NAU8540_REG_PCM_CTRL1, in adc_power_control() 244 regmap_update_bits(nau8540->regmap, NAU8540_REG_PCM_CTRL2, in adc_power_control() 247 regmap_update_bits(nau8540->regmap, NAU8540_REG_PCM_CTRL1, in adc_power_control() 249 regmap_update_bits(nau8540->regmap, NAU8540_REG_PCM_CTRL2, in adc_power_control() 258 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); in aiftx_power_control() [all …]
|
D | pcm186x.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (C) 2015-2017 Texas Instruments Incorporated - https://www.ti.com 30 "avdd", /* Analog power supply. Connect to 3.3-V supply. */ 31 "dvdd", /* Digital power supply. Connect to 3.3-V supply. */ 32 "iovdd", /* I/O power supply. Connect to 3.3-V or 1.8-V. */ 45 static const DECLARE_TLV_DB_SCALE(pcm186x_pga_tlv, -1200, 50, 0); 49 PCM186X_PGA_VAL_CH1_R, 0, -24, 80, 7, 0, 55 PCM186X_PGA_VAL_CH1_R, 0, -24, 80, 7, 0, 58 PCM186X_PGA_VAL_CH2_R, 0, -24, 80, 7, 0, 265 struct snd_soc_component *component = dai->component; in pcm186x_hw_params() [all …]
|
/Linux-v6.1/sound/soc/ux500/ |
D | mop500_ab8500.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (C) ST-Ericsson SA 2012 7 * for ST-Ericsson. 17 #include <sound/soc-dapm.h> 24 #include "../codecs/ab8500-codec.h" 61 /* Private data for machine-part MOP500<->AB8500 */ 88 if (IS_ERR(drvdata->clk_ptr_intclk)) { in mop500_ab8500_set_mclk() 91 return -EIO; in mop500_ab8500_set_mclk() 94 switch (drvdata->mclk_sel) { in mop500_ab8500_set_mclk() 96 clk_ptr = drvdata->clk_ptr_sysclk; in mop500_ab8500_set_mclk() [all …]
|
/Linux-v6.1/sound/soc/atmel/ |
D | mchp-i2s-mcc.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // Driver for Microchip I2S Multi-channel controller 29 * ---- I2S Controller Register map ---- 75 * ---- Control Register (Write-only) ---- 86 * ---- Mode Register A (Read/Write) ---- 135 /* Number of TDM Channels - 1 */ 138 ((((ch) - 1) << 13) & MCHP_I2SMCC_MRA_NBCHAN_MASK) 145 /* TDM Frame Synchronization */ 169 * ---- Mode Register B (Read/Write) ---- 183 (((fls(no_words) - 1) << 8) & MCHP_I2SMCC_MRB_DMACHUNK_MASK) [all …]
|
/Linux-v6.1/sound/soc/sti/ |
D | sti_uniperif.c | 1 // SPDX-License-Identifier: GPL-2.0-only 15 * User frame size shall be 2, 4, 6 or 8 32-bits words length 80 { .compatible = "st,stih407-uni-player-hdmi", 83 { .compatible = "st,stih407-uni-player-pcm-out", 86 { .compatible = "st,stih407-uni-player-dac", 89 { .compatible = "st,stih407-uni-player-spdif", 92 { .compatible = "st,stih407-uni-reader-pcm_in", 95 { .compatible = "st,stih407-uni-reader-hdmi", 109 if (uni->ver < SND_ST_UNIPERIF_VERSION_UNI_PLR_TOP_1_0) { in sti_uniperiph_reset() 112 count--; in sti_uniperiph_reset() [all …]
|
/Linux-v6.1/sound/soc/mediatek/mt8186/ |
D | mt8186-dai-tdm.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // MediaTek ALSA SoC Audio DAI TDM Control 11 #include "mt8186-afe-clk.h" 12 #include "mt8186-afe-common.h" 13 #include "mt8186-afe-gpio.h" 14 #include "mt8186-interconnection.h" 65 return snd_pcm_format_physical_width(format) - 1; in get_tdm_lrck_width() 103 struct snd_soc_component *cmpnt = snd_soc_dapm_to_component(w->dapm); in mtk_tdm_en_event() 105 struct mt8186_afe_private *afe_priv = afe->platform_priv; in mtk_tdm_en_event() 106 int dai_id = get_tdm_id_by_name(w->name); in mtk_tdm_en_event() [all …]
|
/Linux-v6.1/sound/soc/intel/boards/ |
D | cht_bsw_nau8824.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * cht-bsw-nau8824.c - ASoc Machine driver for Intel Cherryview-based 10 * Co-author: John Hsu <KCHSU0@nuvoton.com> 11 * This file is based on cht_bsw_rt5672.c and cht-bsw-max98090.c 20 #include <sound/soc-acpi.h> 23 #include "../atom/sst-atom-controls.h" 82 dev_err(codec_dai->dev, "can't set FS clock %d\n", ret); in cht_aif1_hw_params() 88 dev_err(codec_dai->dev, "can't set FLL: %d\n", ret); in cht_aif1_hw_params() 97 struct cht_mc_private *ctx = snd_soc_card_get_drvdata(runtime->card); in cht_codec_init() 98 struct snd_soc_jack *jack = &ctx->jack; in cht_codec_init() [all …]
|
D | bdw-rt5650.c | 1 // SPDX-License-Identifier: GPL-2.0-only 17 #include <sound/soc-acpi.h> 91 /* The ADSP will covert the FE rate to 48k, max 4-channels */ in broadwell_ssp0_fixup() 92 rate->min = rate->max = 48000; in broadwell_ssp0_fixup() 93 chan->min = 2; in broadwell_ssp0_fixup() 94 chan->max = 4; in broadwell_ssp0_fixup() 116 dev_err(rtd->dev, "can't set codec pll: %d\n", ret); in bdw_rt5650_hw_params() 127 dev_err(rtd->dev, "can't set codec sysclk configuration\n"); in bdw_rt5650_hw_params() 150 struct snd_pcm_runtime *runtime = substream->runtime; in bdw_rt5650_fe_startup() 153 if (substream->stream != SNDRV_PCM_STREAM_CAPTURE) in bdw_rt5650_fe_startup() [all …]
|
/Linux-v6.1/sound/soc/pxa/ |
D | pxa-ssp.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * pxa-ssp.c -- ALSA Soc Audio Layer 30 #include <sound/pxa2xx-lib.h> 33 #include "pxa-ssp.h" 55 dev_dbg(ssp->dev, "SSCR0 0x%08x SSCR1 0x%08x SSTO 0x%08x\n", in dump_registers() 59 dev_dbg(ssp->dev, "SSPSP 0x%08x SSSR 0x%08x SSACD 0x%08x\n", in dump_registers() 67 dma->addr_width = width4 ? DMA_SLAVE_BUSWIDTH_4_BYTES : in pxa_ssp_set_dma_params() 69 dma->maxburst = 16; in pxa_ssp_set_dma_params() 70 dma->addr = ssp->phys_base + SSDR; in pxa_ssp_set_dma_params() 77 struct ssp_device *ssp = priv->ssp; in pxa_ssp_startup() [all …]
|
/Linux-v6.1/sound/soc/apple/ |
D | mca.c | 1 // SPDX-License-Identifier: GPL-2.0-only 12 // configurable manner. We mostly treat them as self-contained independent 13 // units and don't configure any cross-cluster connections except for the I2S 25 #include <linux/dma-mapping.h> 170 __iomem void *ptr = cl->base + regoffset; in mca_modify() 184 * FE DAIs are 0 ... nclusters - 1 in mca_dai_to_cluster() 185 * BE DAIs are nclusters ... 2*nclusters - 1 in mca_dai_to_cluster() 187 int cluster_no = dai->id % mca->nclusters; in mca_dai_to_cluster() 189 return &mca->clusters[cluster_no]; in mca_dai_to_cluster() 197 bool is_tx = substream->stream == SNDRV_PCM_STREAM_PLAYBACK; in mca_fe_early_trigger() [all …]
|