/linux/sound/pci/hda/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 2 menu "HD-Audio" 23 This option enables the HD-audio controller. Don't forget 24 to choose the appropriate codec options below. 26 To compile this driver as a module, choose M here: the module 27 will be called snd-hda-intel. 42 To compile this driver as a module, choose M here: the module 43 will be called snd-hda-tegra. 48 bool "Build hwdep interface for HD-audio driver" 51 Say Y here to build a hwdep interface for HD-audio driver. [all …]
|
H A D | hda_bind.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * HD-audio codec driver binding 19 * find a matching codec id 23 struct hda_codec *codec = container_of(dev, struct hda_codec, core); in hda_codec_match() local 24 struct hda_codec_driver *driver = in hda_codec_match() local 28 u32 id = codec->probe_id ? codec->probe_id : codec->core.vendor_id; in hda_codec_match() 29 u32 rev_id = codec->core.revision_id; in hda_codec_match() 31 for (list = driver->id; list->vendor_id; list++) { in hda_codec_match() 32 if (list->vendor_id == id && in hda_codec_match() 33 (!list->rev_id || list->rev_id == rev_id)) { in hda_codec_match() [all …]
|
/linux/sound/soc/codecs/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 3 # modular, meaning we can't build the codec driver in with I2C support. 5 # setting - SPI can't be modular so that case doesn't need to be covered. 12 menu "CODEC drivers" 15 tristate "Build all ASoC CODEC drivers" 359 Normally ASoC codec drivers are only built if a machine driver which 361 driver. Selecting this option will allow these drivers to be built 362 without an explicit machine driver for test and development purposes. 421 tristate "Build generic ASoC AC97 CODEC driver" 458 tristate "Analog Devices ADAU1372 CODEC (I2C)" [all …]
|
H A D | cs40l50-codec.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // CS40L50 Advanced Haptic Driver with waveform memory, 4 // integrated DSP, and closed-loop algorithms 74 return -EINVAL; in cs40l50_get_clk_config() 77 static int cs40l50_swap_ext_clk(struct cs40l50_codec *codec, const unsigned int clk_src) in cs40l50_swap_ext_clk() argument 84 ret = cs40l50_get_clk_config(codec->bclk_ratio * codec->rate, &cfg); in cs40l50_swap_ext_clk() 92 return -EINVAL; in cs40l50_swap_ext_clk() 95 ret = regmap_update_bits(codec->regmap, CS40L50_REFCLK_INPUT, in cs40l50_swap_ext_clk() 102 ret = regmap_update_bits(codec->regmap, CS40L50_REFCLK_INPUT, in cs40l50_swap_ext_clk() 109 return regmap_update_bits(codec->regmap, CS40L50_REFCLK_INPUT, in cs40l50_swap_ext_clk() [all …]
|
H A D | hda.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // Copyright(c) 2021-2022 Intel Corporation 16 static int hda_codec_create_dais(struct hda_codec *codec, int pcm_count, in hda_codec_create_dais() argument 19 struct device *dev = &codec->core.dev; in hda_codec_create_dais() 26 return -ENOMEM; in hda_codec_create_dais() 28 pcm = list_first_entry(&codec->pcm_list_head, struct hda_pcm, list); in hda_codec_create_dais() 34 dev_info(dev, "creating for %s %d\n", pcm->name, i); in hda_codec_create_dais() 36 drvs[i].name = pcm->name; in hda_codec_create_dais() 41 if (!pcm->stream[dir].substreams) { in hda_codec_create_dais() 42 dev_info(dev, "skipping playback dai for %s\n", pcm->name); in hda_codec_create_dais() [all …]
|
/linux/sound/soc/intel/boards/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 50 tristate "Haswell with RT5640 I2S codec" 66 tristate "Broadwell with RT5650 codec" 72 This adds the ASoC machine driver for Intel Broadwell platforms with 73 the RT5650 codec. 78 tristate "Broadwell with RT5677 codec" 89 the RT5677 audio codec. This is a recommended option. 94 tristate "Broadwell with RT286 I2S codec" 109 tristate "Baytrail and Baytrail-CR with RT5640 codec" 116 This adds support for ASoC machine driver for Intel(R) Baytrail and Baytrail-CR [all …]
|
H A D | cht_bsw_rt5672.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * cht_bsw_rt5672.c - ASoc Machine driver for Intel Cherryview-based platforms 4 * Cherrytrail and Braswell, with RT5672 codec. 21 #include <sound/soc-acpi.h> 23 #include "../atom/sst-atom-controls.h" 24 #include "../common/soc-intel-quirks.h" 27 /* The platform clock #3 outputs 19.2Mhz clock to codec as I2S MCLK */ 29 #define CHT_CODEC_DAI "rt5670-aif1" 53 struct snd_soc_dapm_context *dapm = w->dapm; in platform_clock_control() 54 struct snd_soc_card *card = dapm->card; in platform_clock_control() [all …]
|
/linux/Documentation/sound/soc/ |
H A D | codec.rst | 2 ASoC Codec Class Driver 5 The codec class driver is generic and hardware independent code that configures 6 the codec, FM, MODEM, BT or external DSP to provide audio capture and playback. 11 Each codec class driver *must* provide the following features:- 13 1. Codec DAI and PCM configuration 14 2. Codec control IO - using RegMap API 16 4. Codec audio operations 20 Optionally, codec drivers can also provide:- 24 Its probably best to use this guide in conjunction with the existing codec 25 driver code in sound/soc/codecs/ [all …]
|
H A D | overview.rst | 6 provide better ALSA support for embedded system-on-chip processors (e.g. 9 had some limitations:- 11 * Codec drivers were often tightly coupled to the underlying SoC 12 CPU. This is not ideal and leads to code duplication - for example, 18 machine specific code to re-route audio, enable amps, etc., after such an 21 * Drivers tended to power up the entire codec when playing (or 24 power via changing codec oversampling rates, bias currents, etc. 31 features :- 33 * Codec independence. Allows reuse of codec drivers on other platforms 36 * Easy I2S/PCM audio interface setup between codec and SoC. Each SoC [all …]
|
/linux/sound/soc/mediatek/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 11 This adds ASoC driver for Mediatek MT2701 boards 17 tristate "ASoc Audio driver for MT2701 with CS42448 codec" 22 This adds ASoC driver for Mediatek MT2701 boards 28 tristate "ASoc Audio driver for MT2701 with WM8960 codec" 32 This adds ASoC driver for Mediatek MT2701 boards 42 This adds ASoC driver for Mediatek MT6797 boards 48 tristate "ASoc Audio driver for MT6797 with MT6351 codec" 52 This adds ASoC driver for Mediatek MT6797 boards 62 This adds ASoC platform driver support for MediaTek MT7986 chip [all …]
|
/linux/sound/soc/intel/avs/boards/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 13 This adds support for AVS with DA7219 I2S codec configuration. 31 This adds support for AVS with ES8336 I2S codec configuration. 36 tristate "HD-Audio generic board" 39 This adds support for AVS with HDAudio codec configuration. 46 This adds support for I2S test-board which can be used to verify 55 This adds support for AVS with MAX98927 I2S codec configuration. 65 This adds support for AVS with MAX98357A I2S codec configuration. 75 This adds support for AVS with MAX98373 I2S codec configuration. 85 This adds support for ASoC machine driver with NAU8825 I2S audio codec. [all …]
|
/linux/sound/aoa/codecs/ |
H A D | toonie.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Apple Onboard Audio driver for Toonie codec 7 * This is a driver for the toonie codec chip. This chip is present 15 MODULE_DESCRIPTION("toonie codec driver for snd-aoa"); 21 #define PFX "snd-aoa-codec-toonie: " 24 struct aoa_codec codec; member 26 #define codec_to_toonie(c) container_of(c, struct toonie, codec) 85 static int toonie_init_codec(struct aoa_codec *codec) in toonie_init_codec() argument 87 struct toonie *toonie = codec_to_toonie(codec); in toonie_init_codec() 90 if (toonie->codec.connected != 1) in toonie_init_codec() [all …]
|
/linux/include/sound/ac97/ |
H A D | codec.h | 1 /* SPDX-License-Identifier: GPL-2.0 22 * struct ac97_id - matches a codec device and driver on an ac97 bus 23 * @id: The significant bits if the codec vendor ID1 and ID2 25 * matching. A driver binds to a device when : 27 * @data: Private data used by the driver. 36 * ac97_codec_device - a ac97 codec 38 * @vendor_id: the vendor_id of the codec, as sensed on the AC-link 39 * @num: the codec number, 0 is primary, 1 is first slave, etc ... 40 * @clk: the clock BIT_CLK provided by the codec 41 * @ac97_ctrl: ac97 digital controller on the same AC-link [all …]
|
/linux/sound/hda/ |
H A D | hdac_component.c | 1 // SPDX-License-Identifier: GPL-2.0 2 // hdac_component.c - routines for sync between HD-A core and DRM driver 24 * snd_hdac_set_codec_wakeup - Enable / disable HDMI/DP codec wakeup 28 * This function is supposed to be used only by a HD-audio controller 29 * driver tha 121 snd_hdac_sync_audio_rate(struct hdac_device * codec,hda_nid_t nid,int dev_id,int rate) snd_hdac_sync_audio_rate() argument 162 snd_hdac_acomp_get_eld(struct hdac_device * codec,hda_nid_t nid,int dev_id,bool * audio_enabled,char * buffer,int max_bytes) snd_hdac_acomp_get_eld() argument [all...] |
/linux/sound/soc/tegra/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 3 tristate "SoC Audio for the Tegra System-on-Chip" 83 Config to enable the Inter-IC Sound (I2S) Controller which 84 implements full-duplex and bidirectional and single direction 85 point-to-point serial interfaces. It can interface with I2S 114 converts the multi-bit Pulse Code Modulation (PCM) audio input to 115 oversampled 1-bit Pulse Density Modulation (PDM) output. From the 117 that up-samples the input to the desired sampling rate by 119 the desired 1-bit output via Delta Sigma Modulation (DSM). 139 per-stream volume control or for master volume control. [all …]
|
/linux/sound/hda/ext/ |
H A D | hdac_ext_bus.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * hdac-ext-bus.c - HD-audio extended core bus functions. 5 * Copyright (C) 2014-2015 Intel Corp 21 * snd_hdac_ext_bus_init - initialize a HD-audio extended bus 25 * @ext_ops: operators used for ASoC HDA codec drivers 39 bus->ext_ops = ext_ops; in snd_hdac_ext_bus_init() 42 * buses, bus->idx should be greater than 0, but there needs to be a in snd_hdac_ext_bus_init() 45 bus->idx = 0; in snd_hdac_ext_bus_init() 46 bus->cmd_dma_state = true; in snd_hdac_ext_bus_init() 53 * snd_hdac_ext_bus_exit - clean up a HD-audio extended bus [all …]
|
/linux/sound/aoa/core/ |
H A D | core.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Apple Onboard Audio driver core 14 MODULE_DESCRIPTION("Apple Onboard Audio Sound Driver"); 27 if (!try_module_get(c->owner)) in attach_codec_to_fabric() 28 return -EBUSY; in attach_codec_to_fabric() 30 err = -ENOENT; in attach_codec_to_fabric() 31 if (fabric->found_codec) in attach_codec_to_fabric() 32 err = fabric->found_codec(c); in attach_codec_to_fabric() 34 module_put(c->owner); in attach_codec_to_fabric() 35 printk(KERN_ERR "snd-aoa: fabric didn't like codec %s\n", in attach_codec_to_fabric() [all …]
|
/linux/sound/soc/intel/atom/ |
H A D | sst-mfld-platform-compress.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * sst_mfld_platform.c - Intel MID Platform driver 5 * Copyright (C) 2010-2014 Intel Corp 21 #include "sst-mfld-platform.h" 28 pr_debug("fragment elapsed by driver\n"); in sst_compr_fragment_elapsed() 37 pr_debug("drain notify by driver\n"); in sst_drain_notify() 46 struct snd_compr_runtime *runtime = cstream->runtime; in sst_platform_compr_open() 51 return -ENOMEM; in sst_platform_compr_open() 53 spin_lock_init(&stream->status_lock); in sst_platform_compr_open() 56 if (!sst || !try_module_get(sst->dev->driver->owner)) { in sst_platform_compr_open() [all …]
|
/linux/drivers/staging/greybus/ |
H A D | audio_codec.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * APBridge ALSA SoC dummy codec driver 26 list_for_each_entry(data, &module->data_list, list) { in find_data() 27 if (id == data->id) in find_data() 34 find_dai_stream_params(struct gbaudio_codec_info *codec, int id, int stream) in find_dai_stream_params() argument 38 list_for_each_entry(dai, &codec->dai_list, list) { in find_dai_stream_params() 39 if (dai->id == id) in find_dai_stream_params() 40 return &dai->params[stream]; in find_dai_stream_params() 45 static int gbaudio_module_enable_tx(struct gbaudio_codec_info *codec, in gbaudio_module_enable_tx() argument 58 dev_err(module->dev, "%d:DATA connection missing\n", id); in gbaudio_module_enable_tx() [all …]
|
/linux/sound/soc/rockchip/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 11 tristate "Rockchip I2S Device Driver" 15 Say Y or M if you want to add support for I2S driver for 20 tristate "Rockchip I2S/TDM Device Driver" 24 Say Y or M if you want to add support for the I2S/TDM driver for 31 tristate "Rockchip PDM Controller Driver" 36 Say Y or M if you want to add support for PDM driver for 41 tristate "Rockchip SPDIF Device Driver" 45 Say Y or M if you want to add support for SPDIF driver for 49 tristate "ASoC support for Rockchip boards using a MAX98090 codec" [all …]
|
/linux/sound/soc/sof/intel/ |
H A D | hda-codec.c | 1 // SPDX-License-Identifier: GPL-2.0-only 24 static int hda_codec_mask = -1; 26 MODULE_PARM_DESC(codec_mask, "SOF HDA codec mask for probing"); 28 /* load the legacy HDA codec driver */ 29 static int request_codec_module(struct hda_codec *codec) in request_codec_module() argument 35 switch (codec->probe_id) { in request_codec_module() 38 mod = "snd-hda-codec-generic"; in request_codec_module() 42 snd_hdac_codec_modalias(&codec->core, alias, sizeof(alias)); in request_codec_module() 48 dev_dbg(&codec->core.dev, "loading codec module: %s\n", mod); in request_codec_module() 52 return device_attach(hda_codec_dev(codec)); in request_codec_module() [all …]
|
/linux/sound/soc/fsl/ |
H A D | p1022_ds.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // Freescale P1022DS ALSA SoC Machine driver 21 /* P1022-specific PMUXCR and DMUXCR bit definitions */ 49 unsigned int shift = 16 + (8 * (1 - co) + 2 * (3 - ch)); in guts_set_dmuxcr() 51 clrsetbits_be32(&guts->dmuxcr, 3 << shift, device << shift); in guts_set_dmuxcr() 58 * machine_data: machine-specific ASoC device data 79 * This function is used to initialize the board-specific hardware. 91 dev_err(card->dev, "could not map global utilities\n"); in p1022_ds_machine_probe() 92 return -ENOMEM; in p1022_ds_machine_probe() 96 clrsetbits_be32(&guts->pmuxcr, CCSR_GUTS_PMUXCR_UART0_I2C1_MASK, in p1022_ds_machine_probe() [all …]
|
H A D | p1022_rdk.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // Freescale P1022RDK ALSA SoC Machine driver 28 /* P1022-specific PMUXCR and DMUXCR bit definitions */ 56 unsigned int shift = 16 + (8 * (1 - co) + 2 * (3 - ch)); in guts_set_dmuxcr() 58 clrsetbits_be32(&guts->dmuxcr, 3 << shift, device << shift); in guts_set_dmuxcr() 65 * machine_data: machine-specific ASoC device data 83 * p1022_rdk_machine_probe - initialize the board 86 * This function is used to initialize the board-specific hardware. 100 dev_err(card->dev, "could not map global utilities\n"); in p1022_rdk_machine_probe() 101 return -ENOMEM; in p1022_rdk_machine_probe() [all …]
|
/linux/Documentation/devicetree/bindings/sound/ |
H A D | ux500-mop500.txt | 1 * MOP500 Audio Machine Driver 3 This node is responsible for linking together all ux500 Audio Driver components. 6 - compatible : "stericsson,snd-soc-mop500" 8 Non-standard properties: 9 - stericsson,cpu-dai : Phandle to the CPU-side DAI 10 - stericsson,audio-codec : Phandle to the Audio CODEC 11 - stericsson,card-name : Over-ride default card name 16 compatible = "stericsson,snd-soc-mop500"; 18 stericsson,cpu-dai = <&msp1 &msp3>; 19 stericsson,audio-codec = <&codec>; [all …]
|
H A D | mt8195-mt6359.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/sound/mt8195-mt6359.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: MediaTek MT8195 ASoC sound card driver 10 - Trevor Wu <trevor.wu@mediatek.com> 16 - $ref: sound-card-common.yaml# 21 - mediatek,mt8195_mt6359_rt1019_rt5682 22 - mediatek,mt8195_mt6359_rt1011_rt5682 23 - mediatek,mt8195_mt6359_max98390_rt5682 [all …]
|