/linux-6.14.4/Documentation/sound/soc/ |
D | dai.rst | 6 SoC controllers and portable audio CODECs today, namely AC97, I2S and PCM. 35 I2S has several different operating modes:- 47 PCM chapter 50 PCM is another 4 wire interface, very similar to I2S, which can support a more 51 flexible protocol. It has bit clock (BCLK) and sync (SYNC) lines that are used 54 while sync runs at the sample rate. PCM also supports Time Division 56 is sometimes referred to as network mode). 58 Common PCM operating modes:- 60 Mode A 61 MSB is transmitted on falling edge of first BCLK after FRAME/SYNC. [all …]
|
/linux-6.14.4/sound/soc/bcm/ |
D | bcm2835-i2s.c | 1 // SPDX-License-Identifier: GPL-2.0-only 9 * Raspberry Pi PCM I2S ALSA Driver 23 * Copyright 2007-2010 Freescale Semiconductor, Inc. 39 #include <sound/pcm.h> 130 unsigned int provider = dev->fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK; in bcm2835_i2s_start_clock() 132 if (dev->clk_prepared) in bcm2835_i2s_start_clock() 138 clk_prepare_enable(dev->clk); in bcm2835_i2s_start_clock() 139 dev->clk_prepared = true; in bcm2835_i2s_start_clock() 148 if (dev->clk_prepared) in bcm2835_i2s_stop_clock() 149 clk_disable_unprepare(dev->clk); in bcm2835_i2s_stop_clock() [all …]
|
/linux-6.14.4/sound/soc/mediatek/mt8183/ |
D | mt8183-dai-pcm.c | 1 // SPDX-License-Identifier: GPL-2.0 10 #include "mt8183-afe-common.h" 11 #include "mt8183-interconnection.h" 12 #include "mt8183-reg.h" 30 /* bck sync length = 1 */ 32 /* bck sync length = PCM_INTF_CON1[9:13] */ 42 /* slave mode & external modem uses different crystal */ 44 /* slave mode & external modem uses the same crystal */ 122 /* inter-connections */ 155 {"PCM 1 Playback", NULL, "PCM_1_PB_CH1"}, [all …]
|
/linux-6.14.4/sound/soc/mediatek/mt6797/ |
D | mt6797-dai-pcm.c | 1 // SPDX-License-Identifier: GPL-2.0 10 #include "mt6797-afe-common.h" 11 #include "mt6797-interconnection.h" 12 #include "mt6797-reg.h" 30 /* bck sync length = 1 */ 32 /* bck sync length = PCM_INTF_CON1[9:13] */ 42 /* slave mode & external modem uses different crystal */ 44 /* slave mode & external modem uses the same crystal */ 122 /* inter-connections */ 155 {"PCM 1 Playback", NULL, "PCM_1_PB_CH1"}, [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/net/bluetooth/ |
D | brcm,bluetooth.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Linus Walleij <[email protected]> 13 This binding describes Broadcom UART-attached bluetooth chips. 18 - items: 19 - enum: 20 - infineon,cyw43439-bt 21 - const: brcm,bcm4329-bt 22 - enum: [all …]
|
/linux-6.14.4/sound/soc/mediatek/mt8186/ |
D | mt8186-dai-pcm.c | 1 // SPDX-License-Identifier: GPL-2.0 10 #include "mt8186-afe-common.h" 11 #include "mt8186-afe-gpio.h" 12 #include "mt8186-interconnection.h" 37 /* bck sync length = 1 */ 39 /* bck sync length = PCM_INTF_CON1[9:13] */ 49 /* slave mode & external modem uses different crystal */ 51 /* slave mode & external modem uses the same crystal */ 122 struct snd_soc_component *cmpnt = snd_soc_dapm_to_component(w->dapm); in mtk_pcm_en_event() 125 dev_dbg(afe->dev, "%s(), name %s, event 0x%x\n", in mtk_pcm_en_event() [all …]
|
/linux-6.14.4/sound/soc/mediatek/mt8192/ |
D | mt8192-dai-pcm.c | 1 // SPDX-License-Identifier: GPL-2.0 12 #include "mt8192-afe-common.h" 13 #include "mt8192-interconnection.h" 31 /* bck sync length = 1 */ 33 /* bck sync length = PCM_INTF_CON1[9:13] */ 43 /* slave mode & external modem uses different crystal */ 45 /* slave mode & external modem uses the same crystal */ 178 struct snd_soc_component *cmpnt = snd_soc_dapm_to_component(w->dapm); in mtk_pcm_en_event() 181 dev_info(afe->dev, "%s(), name %s, event 0x%x\n", in mtk_pcm_en_event() 182 __func__, w->name, event); in mtk_pcm_en_event() [all …]
|
/linux-6.14.4/sound/soc/mediatek/mt8195/ |
D | mt8195-dai-pcm.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * MediaTek ALSA SoC Audio DAI PCM I/F Control 12 #include "mt8195-afe-clk.h" 13 #include "mt8195-afe-common.h" 14 #include "mt8195-reg.h" 60 return -EINVAL; in mtk_dai_pcm_mode() 122 struct snd_pcm_runtime * const runtime = substream->runtime; in mtk_dai_pcm_configure() 124 struct mt8195_afe_private *afe_priv = afe->platform_priv; in mtk_dai_pcm_configure() 130 unsigned int bit_width = dai->symmetric_sample_bits; in mtk_dai_pcm_configure() 134 int mode = 0; in mtk_dai_pcm_configure() local [all …]
|
/linux-6.14.4/sound/soc/mediatek/mt8188/ |
D | mt8188-dai-pcm.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * MediaTek ALSA SoC Audio DAI PCM I/F Control 8 * Chun-Chia Chiu <chun-[email protected]> 14 #include "mt8188-afe-clk.h" 15 #include "mt8188-afe-common.h" 16 #include "mt8188-reg.h" 62 return -EINVAL; in mtk_dai_pcm_mode() 123 struct snd_pcm_runtime * const runtime = substream->runtime; in mtk_dai_pcm_configure() 125 struct mt8188_afe_private *afe_priv = afe->platform_priv; in mtk_dai_pcm_configure() 131 unsigned int bit_width = dai->symmetric_sample_bits; in mtk_dai_pcm_configure() [all …]
|
/linux-6.14.4/sound/usb/ |
D | usbaudio.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 10 /* handling of USB vendor/product ID pairs as 32-bit numbers */ 55 struct list_head pcm_list; /* list of pcm streams */ 56 struct list_head ep_list; /* list of audio-related endpoints */ 80 #define USB_AUDIO_IFACE_UNUSED ((void *)-1L) 83 dev_err(&(chip)->dev->dev, fmt, ##args) 85 dev_err_ratelimited(&(chip)->dev->dev, fmt, ##args) 87 dev_warn(&(chip)->dev->dev, fmt, ##args) 89 dev_info(&(chip)->dev->dev, fmt, ##args) 91 dev_dbg(&(chip)->dev->dev, fmt, ##args) [all …]
|
D | pcm.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 11 #include <linux/usb/audio-v2.h> 14 #include <sound/pcm.h> 22 #include "pcm.h" 40 if (subs->direction == SNDRV_PCM_STREAM_PLAYBACK) { in snd_usb_pcm_delay() 41 queued = bytes_to_frames(runtime, subs->inflight_bytes); in snd_usb_pcm_delay() 44 } else if (!subs->running) { in snd_usb_pcm_delay() 48 current_frame_number = usb_get_current_frame_number(subs->dev); in snd_usb_pcm_delay() 54 frame_diff = (current_frame_number - subs->last_frame_number) & 0xff; in snd_usb_pcm_delay() 58 est_delay = frame_diff * runtime->rate / 1000; in snd_usb_pcm_delay() [all …]
|
D | proc.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 10 #include <sound/pcm.h> 35 struct snd_usb_audio *chip = entry->private_data; in proc_audio_usbbus_read() 36 if (!atomic_read(&chip->shutdown)) in proc_audio_usbbus_read() 37 snd_iprintf(buffer, "%03d/%03d\n", chip->dev->bus->busnum, chip->dev->devnum); in proc_audio_usbbus_read() 42 struct snd_usb_audio *chip = entry->private_data; in proc_audio_usbid_read() 43 if (!atomic_read(&chip->shutdown)) in proc_audio_usbid_read() 45 USB_ID_VENDOR(chip->usb_id), in proc_audio_usbid_read() 46 USB_ID_PRODUCT(chip->usb_id)); in proc_audio_usbid_read() 51 snd_card_ro_proc_new(chip->card, "usbbus", chip, in snd_usb_audio_create_proc() [all …]
|
D | card.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 7 #define MAX_PACKS_HS (MAX_PACKS * 8) /* in high speed mode */ 9 #define SYNC_URBS 4 /* always four urbs for sync */ 16 unsigned int fmt_type; /* USB audio format type (1-3) */ 18 unsigned int frame_size; /* samples per frame for non-audio */ 27 unsigned char sync_ep; /* sync endpoint number */ 28 unsigned char sync_iface; /* sync EP interface */ 29 unsigned char sync_altsetting; /* sync EP alternate setting */ 30 unsigned char sync_ep_idx; /* sync EP array index */ 68 int opened; /* open refcount; protect with chip->mutex */ [all …]
|
/linux-6.14.4/sound/usb/line6/ |
D | pcm.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 5 * Copyright (C) 2004-2010 Markus Grabner (line6@grabner-graz.at) 9 PCM interface to POD series devices. 15 #include <sound/pcm.h> 35 Get substream from Line 6 PCM data structure 38 (line6pcm->pcm->streams[stream].substream) 41 PCM mode bits. 43 There are several features of the Line 6 USB driver which require PCM 45 *) PCM playback and capture via ALSA 51 subsystems with respect to PCM usage. [all …]
|
/linux-6.14.4/drivers/accessibility/speakup/ |
D | speakup_dtlk.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* speakup_dtlk.h - header file for speakups DoubleTalk driver. */ 10 #define TTS_SPEAKING 0x40 /* mask for SYNC bit, which is nonzero 12 * output with TTS, PCM or CVSD 23 * bit goes zero 2-3 usec after 24 * writing, and goes 1 again 180-190 30 * buffer. AF is always 0 in the PCM, 36 * (TTS or PCM) buffer. AE is always 1 42 u_short serial_number; /* 0-7Fh:0-7Fh */ 44 u_char mode; /* 0=Character; 1=Phoneme; 2=Text */ member [all …]
|
/linux-6.14.4/drivers/clk/st/ |
D | clk-flexgen.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * clk-flexgen.c 5 * Copyright (C) ST-Microelectronics SA 2013 6 * Author: Maxime Coquelin <[email protected]> for ST-Microelectronics. 10 #include <linux/clk-provider.h> 26 bool mode; member 36 /* Pre-divisor's gate */ 38 /* Pre-divisor */ 44 /* Asynchronous mode control */ 45 struct clk_gate sync; member [all …]
|
/linux-6.14.4/sound/soc/ti/ |
D | davinci-i2s.c | 1 // SPDX-License-Identifier: GPL-2.0-only 9 * based on davinci-mcasp.c DT support 24 #include <sound/pcm.h> 30 #include "edma-pcm.h" 31 #include "davinci-i2s.h" 33 #define DRV_NAME "davinci-i2s" 38 * - This driver supports the "Audio Serial Port" (ASP), 41 * - But it labels it a "Multi-channel Buffered Serial Port" 43 * backward-compatible, possibly explaining that confusion. 45 * - OMAP chips have a controller called McBSP, which is [all …]
|
/linux-6.14.4/drivers/isdn/hardware/mISDN/ |
D | hfcmulti.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * hfcmulti.c low level driver for hfc-4s/hfc-8s/hfc-e1 based cards 7 * Peter Sprenger (sprengermoving-bytes.de) 9 * inspired by existing hfc-pci driver: 10 * Copyright 1999 by Werner Cornelius (werner@isdn-development.de) 22 * Bit 0-7 = 0x00001 = HFC-E1 (1 port) 23 * or Bit 0-7 = 0x00004 = HFC-4S (4 ports) 24 * or Bit 0-7 = 0x00008 = HFC-8S (8 ports) 26 * Bit 9 = 0x00200 = Disable DTMF detect on all B-channels via hardware 28 * Bit 11 = 0x00800 = Force PCM bus into slave mode. (otherwise auto) [all …]
|
/linux-6.14.4/include/linux/ |
D | dtlk.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 17 #define TTS_SPEAKING 0x40 /* mask for SYNC bit, which is nonzero 19 output with TTS, PCM or CVSD 28 bit goes zero 2-3 usec after 29 writing, and goes 1 again 180-190 35 PCM, TGN and CVSD modes. */ 39 input (TTS or PCM) buffer. AE is 67 unsigned short serial_number; /* 0-7Fh:0-7Fh */ 69 unsigned char mode; /* 0=Character; 1=Phoneme; 2=Text */ member 70 unsigned char punc_level; /* nB; 0-7 */ [all …]
|
/linux-6.14.4/sound/pci/ |
D | sis7019.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * Copyright (C) 2004-2007, David Dillow 7 * Inspired by the Trident 4D-WaveDX/NX driver. 28 static int index = SNDRV_DEFAULT_IDX1; /* Index 0-MAX */ 52 * we use the hardware's built-in Mid-Loop Interrupt and End-Loop Interrupt 102 struct snd_pcm *pcm; member 137 * documented range of 8-0xfff8 samples. Given that they are 0-based, 138 * that places our period/buffer range at 9-0xfff9 samples. That makes the 189 void __iomem *base = voice->ctrl_base; in sis_update_sso() 191 voice->sso += period; in sis_update_sso() [all …]
|
/linux-6.14.4/sound/pci/rme9652/ |
D | rme9652.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 5 * Copyright (c) 1999 IEM - Winfried Ritsch 6 * Copyright (c) 1999-2001 Paul Davis 19 #include <sound/pcm.h> 26 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ 55 /* Preferred sync source choices - used by "sync_pref" control switch */ 68 /* ------------- Status-Register bits --------------------- */ 71 #define RME9652_lock_2 (1<<1) /* ADAT 3-PLL: 1=locked, 0=unlocked */ 72 #define RME9652_lock_1 (1<<2) /* ADAT 2-PLL: 1=locked, 0=unlocked */ 73 #define RME9652_lock_0 (1<<3) /* ADAT 1-PLL: 1=locked, 0=unlocked */ [all …]
|
/linux-6.14.4/include/sound/ |
D | pcm.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 6 * Digital Audio (PCM) abstract layer 8 * Abramo Bagnara <abramo@alsa-project.org> 21 #define snd_pcm_substream_chip(substream) ((substream)->private_data) 22 #define snd_pcm_chip(pcm) ((pcm)->private_data) argument 86 #define SNDRV_PCM_DEVICES (SNDRV_OS_MINORS-2) 106 #define SNDRV_PCM_POS_XRUN ((snd_pcm_uframes_t)-1) 132 #define SNDRV_PCM_RATE_KNOT (1U<<31) /* supports more non-continuous rates */ 160 // available bit count in most significant bit. It's for the case of so-called 'left-justified' or 161 // `right-padding` sample which has less width than 32 bit. [all …]
|
/linux-6.14.4/sound/soc/stm/ |
D | stm32_sai_sub.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * Copyright (C) 2016, STMicroelectronics - All Rights Reserved 10 #include <linux/clk-provider.h> 41 #define STM_SAI_IS_PLAYBACK(ip) ((ip)->dir == SNDRV_PCM_STREAM_PLAYBACK) 42 #define STM_SAI_IS_CAPTURE(ip) ((ip)->dir == SNDRV_PCM_STREAM_CAPTURE) 47 #define STM_SAI_IS_SUB_A(x) ((x)->id == STM_SAI_A_ID) 53 #define STM_SAI_PROTOCOL_IS_SPDIF(ip) ((ip)->spdif) 54 #define STM_SAI_HAS_SPDIF(x) ((x)->pdata->conf.has_spdif_pdm) 55 #define STM_SAI_HAS_PDM(x) ((x)->pdata->conf.has_spdif_pdm) 56 #define STM_SAI_HAS_EXT_SYNC(x) (!STM_SAI_IS_F4((x)->pdata)) [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/sound/ |
D | cs35l36.txt | 5 - compatible : "cirrus,cs35l36" 7 - reg : the I2C address of the device for I2C 9 - VA-supply, VP-supply : power supplies for the device, 13 - cirrus,boost-ctl-millivolt : Boost Voltage Value. Configures the boost 18 - cirrus,boost-peak-milliamp : Boost-converter peak current limit in mA. 24 - cirrus,boost-ind-nanohenry : Inductor estimation LBST reference value. 32 - cirrus,multi-amp-mode : Boolean to determine if there are more than 33 one amplifier in the system. If more than one it is best to Hi-Z the ASP 36 - cirrus,boost-ctl-select : Boost converter control source selection. 39 0x00 - Control Port Value [all …]
|
/linux-6.14.4/sound/drivers/pcsp/ |
D | pcsp_lib.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * PC-Speaker driver for Linux 5 * Copyright (C) 1993-1997 Michael Beck 6 * Copyright (C) 1997-2001 David Woodhouse 7 * Copyright (C) 2001-2008 Stas Sergeev 16 #include <sound/pcm.h> 28 * This avoids spinlock messes and long-running irq contexts 43 * called at the trigger-start and in hrtimer callback 53 if (chip->thalf) { in pcsp_timer_update() 54 outb(chip->val61, 0x61); in pcsp_timer_update() [all …]
|