/Linux-v6.1/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-v6.1/Documentation/devicetree/bindings/net/ |
D | broadcom-bluetooth.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/net/broadcom-bluetooth.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Linus Walleij <linus.walleij@linaro.org> 13 This binding describes Broadcom UART-attached bluetooth chips. 18 - brcm,bcm20702a1 19 - brcm,bcm4329-bt 20 - brcm,bcm4330-bt 21 - brcm,bcm4334-bt [all …]
|
/Linux-v6.1/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-v6.1/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-v6.1/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-v6.1/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-v6.1/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-v6.1/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() 125 struct mtk_dai_pcmif_priv *pcmif_priv = afe_priv->dai_priv[dai->id]; in mtk_dai_pcm_configure() 126 unsigned int slave_mode = pcmif_priv->slave_mode; in mtk_dai_pcm_configure() [all …]
|
/Linux-v6.1/sound/soc/ti/ |
D | davinci-i2s.c | 1 // SPDX-License-Identifier: GPL-2.0-only 9 * based on davinci-mcasp.c DT support 25 #include <sound/pcm.h> 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 [all …]
|
/Linux-v6.1/sound/usb/ |
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 | usbaudio.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 10 /* handling of USB vendor/product ID pairs as 32-bit numbers */ 46 struct list_head pcm_list; /* list of pcm streams */ 47 struct list_head ep_list; /* list of audio-related endpoints */ 66 #define USB_AUDIO_IFACE_UNUSED ((void *)-1L) 69 dev_err(&(chip)->dev->dev, fmt, ##args) 71 dev_warn(&(chip)->dev->dev, fmt, ##args) 73 dev_info(&(chip)->dev->dev, fmt, ##args) 75 dev_dbg(&(chip)->dev->dev, fmt, ##args) 82 #define QUIRK_NODEV_INTERFACE -3 /* return -ENODEV */ [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-v6.1/sound/usb/line6/ |
D | pcm.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 5 * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.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-v6.1/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-v6.1/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 <maxime.coquelin@st.com> 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-v6.1/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. (otherwhise auto) [all …]
|
/Linux-v6.1/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-v6.1/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(sai->pdata)) [all …]
|
/Linux-v6.1/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 106 struct snd_pcm *pcm; member 141 * documented range of 8-0xfff8 samples. Given that they are 0-based, 142 * that places our period/buffer range at 9-0xfff9 samples. That makes the 193 void __iomem *base = voice->ctrl_base; in sis_update_sso() 195 voice->sso += period; in sis_update_sso() [all …]
|
/Linux-v6.1/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 …]
|
D | hdspm.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 9 * Modified 2006-06-01 for AES32 support by Remy Bruno 12 * Modified 2009-04-13 for proper metering by Florian Faber 15 * Modified 2009-04-14 for native float support by Florian Faber 18 * Modified 2009-04-26 fixed bug in rms metering by Florian Faber 21 * Modified 2009-04-30 added hw serial number support by Florian Faber 23 * Modified 2011-01-14 added S/PDIF input on RayDATs by Adrian Knoth 25 * Modified 2011-01-25 variable period sizes on RayDAT/AIO by Adrian Knoth 27 * Modified 2019-05-23 fix AIO single speed ADAT capture and playback 35 * --------- HDSPM_controlRegister --------- [all …]
|
/Linux-v6.1/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 15 #include <sound/pcm.h> 27 * This avoids spinlock messes and long-running irq contexts 42 * called at the trigger-start and in hrtimer callback 52 if (chip->thalf) { in pcsp_timer_update() 53 outb(chip->val61, 0x61); in pcsp_timer_update() [all …]
|
/Linux-v6.1/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 conerter control source selection. 39 0x00 - Control Port Value [all …]
|
/Linux-v6.1/sound/soc/cirrus/ |
D | ep93xx-ac97.c | 1 // SPDX-License-Identifier: GPL-2.0-only 7 * Based on s3c-ac97 ASoC driver by Jaswinder Singh. 23 #include <linux/platform_data/dma-ep93xx.h> 26 #include "ep93xx-pcm.h" 29 * Per channel (1-4) registers. 31 #define AC97CH(n) (((n) - 1) * 0x20) 88 * struct ep93xx_ac97_info - EP93xx AC97 controller info structure 107 .name = "ac97-pcm-out", 113 .name = "ac97-pcm-in", 121 return __raw_readl(info->regs + reg); in ep93xx_ac97_read_reg() [all …]
|