Home
last modified time | relevance | path

Searched +full:tdm +full:- +full:slots (Results 1 – 25 of 110) sorted by relevance

12345

/Linux-v6.1/sound/soc/meson/
Daxg-card.c1 // 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 …]
Daxg-tdm-interface.c1 // 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 …]
Daxg-tdm-formatter.c1 // 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/
Dtdm-slot.txt1 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 …]
Ddavinci-mcasp-audio.yaml1 # 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 …]
Damlogic,axg-sound-card.txt5 - 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 …]
Daudio-graph-port.yaml1 # 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/
Dimx-card.c1 // 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/
Dsoc-dai.c1 // 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 …]
Dsoc-utils.c1 // 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/
Dnetwork.txt4 - 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/
Dq6afe-dai.c1 // 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/
Ddavinci-mcasp.c1 // 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/
Dpcm3168a.c1 // 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 …]
Dadau7118.c1 // 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 …]
Dnau8540.c1 // 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 …]
Dpcm186x.c1 // 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/
Dmop500_ab8500.c1 // 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/
Dmchp-i2s-mcc.c1 // 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/
Dsti_uniperif.c1 // 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/
Dmt8186-dai-tdm.c1 // 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/
Dcht_bsw_nau8824.c1 // 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 …]
Dbdw-rt5650.c1 // 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/
Dpxa-ssp.c1 // 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/
Dmca.c1 // 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 …]

12345