| /linux/Documentation/devicetree/bindings/sound/ |
| H A D | rockchip,rk3328-codec.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/sound/rockchip,rk3328-codec.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Heiko Stuebner <heiko@sntech.de> 12 - $ref: dai-common.yaml# 17 const: rockchip,rk3328-codec 24 - description: clock for audio codec 25 - description: clock for I2S master clock 27 clock-names: [all …]
|
| H A D | wlf,arizona.yaml | 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 3 --- 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - patches@opensource.cirrus.com 20 - $ref: dai-common.yaml# 23 '#sound-dai-cells': 31 signals. Valid values are 0 (Differential), 1 (Single-ended) and 38 $ref: /schemas/types.yaml#/definitions/uint32-array 46 wlf,out-mono: 50 (eg. First entry in the list corresponds to output 1). A non-zero [all …]
|
| /linux/sound/soc/codecs/ |
| H A D | cs42l73.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 15 /* I2C Address: 1001010[R/W] - 10010100 = 0x94(Write); 10010101 = 0x95(Read) */ 57 #define CS42L73_LIMRRATESPK 0x2A /* Lmtr Ctl,Release Rate Spk. [A]. */ 101 #define CS42L73_SPKMIPMA 0x56 /* SPK Mono Mixer: In. Path */ 102 #define CS42L73_SPKMXSPA 0x57 /* SPK Mono Mixer: XSP Mono/L/R Att. */ 103 #define CS42L73_SPKMASPA 0x58 /* SPK Mono Mixer: ASP Mono/L/R Att. */ 104 #define CS42L73_SPKMVSPMA 0x59 /* SPK Mono Mixer: VSP Mono Atten. */ 193 /* HP A/B Analog Mute */ 195 /* LO A/B Analog Mute */ 197 /* Digital Mute */
|
| H A D | ak4535.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * ak4535.c -- AK4535 ALSA Soc Audio driver 65 static const char *ak4535_mono_gain[] = {"+6dB", "-17dB"}; 66 static const char *ak4535_mono_out[] = {"(L + R)/2", "Hi-Z"}; 174 SND_SOC_DAPM_PGA("Spk Amp", AK4535_PM2, 3, 0, NULL, 0), 232 {"Speaker Enable", "Switch", "Spk Amp"}, 233 {"Spk Amp", NULL, "MIN"}, 251 struct snd_soc_component *component = codec_dai->component; in ak4535_set_dai_sysclk() 254 ak4535->sysclk = freq; in ak4535_set_dai_sysclk() 262 struct snd_soc_component *component = dai->component; in ak4535_hw_params() [all …]
|
| H A D | rk3328_codec.c | 1 // SPDX-License-Identifier: GPL-2.0 22 * 0: -39dB 34 struct gpio_desc *mute; member 58 regmap_write(rk3328->regmap, CODEC_RESET, 0x00); in rk3328_codec_reset() 60 regmap_write(rk3328->regmap, CODEC_RESET, 0x03); in rk3328_codec_reset() 68 snd_soc_component_get_drvdata(dai->component); in rk3328_set_dai_fmt() 79 return -EINVAL; in rk3328_set_dai_fmt() 82 regmap_update_bits(rk3328->regmap, DAC_INIT_CTRL1, in rk3328_set_dai_fmt() 100 return -EINVAL; in rk3328_set_dai_fmt() 103 regmap_update_bits(rk3328->regmap, DAC_INIT_CTRL2, in rk3328_set_dai_fmt() [all …]
|
| H A D | rt700.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // rt700.c -- rt700 ALSA SoC audio driver 24 #include <sound/soc-dapm.h> 66 ret = rt700_index_read(rt700->regmap, RT700_IRQ_FLAG_TABLE1, &val80); in rt700_button_detect() 69 ret = rt700_index_read(rt700->regmap, RT700_IRQ_FLAG_TABLE2, &val81); in rt700_button_detect() 112 ret = rt700_index_read(rt700->regmap, in rt700_headset_detect() 122 ret = rt700_index_read(rt700->regmap, in rt700_headset_detect() 128 ret = regmap_read(rt700->regmap, reg, &jack_status); in rt700_headset_detect() 137 rt700->jack_type = SND_JACK_HEADPHONE; in rt700_headset_detect() 140 rt700->jack_type = SND_JACK_HEADSET; in rt700_headset_detect() [all …]
|
| H A D | cs42l52.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * cs42l52.c -- CS42L52 ALSA SoC audio driver 29 #include <sound/soc-dapm.h> 43 /* MICA mode selection Differential or Single-ended */ 46 /* MICB mode selection Differential or Single-ended */ 147 static DECLARE_TLV_DB_SCALE(hl_tlv, -10200, 50, 0); 149 static DECLARE_TLV_DB_SCALE(hpd_tlv, -9600, 50, 1); 151 static DECLARE_TLV_DB_SCALE(ipd_tlv, -9600, 100, 0); 155 static DECLARE_TLV_DB_SCALE(pga_tlv, -600, 50, 0); 157 static DECLARE_TLV_DB_SCALE(pass_tlv, -6000, 50, 0); [all …]
|
| H A D | rt721-sdca.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 // rt721-sdca.c -- rt721 SDCA ALSA SoC audio driver 23 #include <sound/soc-dapm.h> 26 #include "rt721-sdca.h" 27 #include "rt-sdw-common.h" 35 if (!rt721->hs_jack) in rt721_sdca_jack_detect_handler() 38 if (!rt721->component->card || !rt721->component->card->instantiated) in rt721_sdca_jack_detect_handler() 42 if (rt721->scp_sdca_stat1 & SDW_SCP_SDCA_INT_SDCA_0) { in rt721_sdca_jack_detect_handler() 43 rt721->jack_type = rt_sdca_headset_detect(rt721->regmap, in rt721_sdca_jack_detect_handler() 45 if (rt721->jack_type < 0) in rt721_sdca_jack_detect_handler() [all …]
|
| H A D | sma1303.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 // sma1303.c -- sma1303 ALSA SoC Audio driver 236 static const DECLARE_TLV_DB_SCALE(sma1303_spk_tlv, -6000, 50, 0); 242 int cnt = sma1303->retry_cnt; in sma1303_regmap_write() 244 while (cnt--) { in sma1303_regmap_write() 245 ret = regmap_write(sma1303->regmap, reg, val); in sma1303_regmap_write() 247 dev_err(sma1303->dev, in sma1303_regmap_write() 259 int cnt = sma1303->retry_cnt; in sma1303_regmap_update_bits() 261 while (cnt--) { in sma1303_regmap_update_bits() 262 ret = regmap_update_bits_check(sma1303->regmap, reg, in sma1303_regmap_update_bits() [all …]
|
| H A D | tas2783-sdw.c | 1 // SPDX-License-Identifier: GPL-2.0 13 // Author: Kevin Lu <kevin-lu@ti.com> 33 #include <sound/tas2781-tlv.h> 609 dev_err(tas_dev->dev, "cal data magic number mismatch"); in tas2783_validate_calibdata() 610 return -EINVAL; in tas2783_validate_calibdata() 615 dev_err(tas_dev->dev, "cal data spk_count too large"); in tas2783_validate_calibdata() 616 return -EINVAL; in tas2783_validate_calibdata() 621 dev_dbg(tas_dev->dev, "cal data timestamp: %ld-%d-%d %d:%d:%d", in tas2783_validate_calibdata() 629 dev_err(tas_dev->dev, "cali data sz too large"); in tas2783_validate_calibdata() 630 return -EINVAL; in tas2783_validate_calibdata() [all …]
|
| H A D | rt722-sdca.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 // rt722-sdca.c -- rt722 SDCA ALSA SoC audio driver 23 #include <sound/soc-dapm.h> 26 #include "rt722-sdca.h" 33 struct regmap *regmap = rt722->regmap; in rt722_sdca_index_write() 39 dev_err(&rt722->slave->dev, in rt722_sdca_index_write() 50 struct regmap *regmap = rt722->regmap; in rt722_sdca_index_read() 55 dev_err(&rt722->slave->dev, in rt722_sdca_index_read() 101 ret = regmap_read(rt722->regmap, in rt722_sdca_button_detect() 112 ret = regmap_read(rt722->regmap, in rt722_sdca_button_detect() [all …]
|
| H A D | sma1307.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 2 // sma1307.c -- sma1307 ALSA SoC Audio driver 114 /* Initial register value - 6.0W SPK (8ohm load) */ 255 static const DECLARE_TLV_DB_SCALE(sma1307_spk_tlv, -6000, 50, 0); 310 ucontrol->value.integer.value[0] = (int)sma1307->force_mute_status; in sma1307_force_mute_get() 321 bool change = false, val = (bool)ucontrol->value.integer.value[0]; in sma1307_force_mute_put() 323 if (sma1307->force_mute_status == val) { in sma1307_force_mute_put() 327 sma1307->force_mute_status = val; in sma1307_force_mute_put() 341 regmap_read(sma1307->regmap, SMA1307_A5_TDM1, &val1); in sma1307_tdm_slot_get() 342 regmap_read(sma1307->regmap, SMA1307_A6_TDM2, &val2); in sma1307_tdm_slot_get() [all …]
|
| H A D | cs35l45.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // cs35l45.c - CS35L45 ALSA SoC audio driver 5 // Copyright 2019-2022 Cirrus Logic, Inc. 53 if (!cs35l45->dsp.cs_dsp.running) { in cs35l45_set_cspl_mbox_cmd() 54 dev_err(cs35l45->dev, "DSP not running\n"); in cs35l45_set_cspl_mbox_cmd() 55 return -EPERM; in cs35l45_set_cspl_mbox_cmd() 62 dev_err(cs35l45->dev, "Failed to write MBOX: %d\n", ret); in cs35l45_set_cspl_mbox_cmd() 72 dev_err(cs35l45->dev, "Failed to read MBOX STS: %d\n", ret); in cs35l45_set_cspl_mbox_cmd() 77 dev_dbg(cs35l45->dev, "[%u] cmd %u returned invalid sts %u", i, cmd, sts); in cs35l45_set_cspl_mbox_cmd() 83 dev_err(cs35l45->dev, "Failed to set mailbox cmd %u (status %u)\n", cmd, sts); in cs35l45_set_cspl_mbox_cmd() [all …]
|
| H A D | wm8903.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * wm8903.c -- WM8903 ALSA SoC Audio driver 5 * Copyright 2008-12 Wolfson Microelectronics 6 * Copyright 2011-2012 NVIDIA, Inc. 11 * - TDM mode configuration. 41 { 4, 0x0018 }, /* R4 - Bias Control 0 */ 42 { 5, 0x0000 }, /* R5 - VMID Control 0 */ 43 { 6, 0x0000 }, /* R6 - Mic Bias Control 0 */ 44 { 8, 0x0001 }, /* R8 - Analogue DAC 0 */ 45 { 10, 0x0001 }, /* R10 - Analogue ADC 0 */ [all …]
|
| H A D | max98090.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * max98090.c -- MAX98090 ALSA SoC Audio driver 5 * Copyright 2011-2012 Maxim Integrated Products 73 { 0x2E, 0x00 }, /* 2E Left Spk Mixer */ 74 { 0x2F, 0x00 }, /* 2F Right Spk Mixer */ 76 { 0x30, 0x00 }, /* 30 Spk Control */ 77 { 0x31, 0x2C }, /* 31 Left Spk Volume */ 78 { 0x32, 0x2C }, /* 32 Right Spk Volume */ 279 /* Reset the codec by writing to this write-only reset register */ in max98090_reset() 280 ret = regmap_write(max98090->regmap, M98090_REG_SOFTWARE_RESET, in max98090_reset() [all …]
|
| H A D | cs42l43.c | 1 // SPDX-License-Identifier: GPL-2.0 5 // Copyright (C) 2022-2023 Cirrus Logic, Inc. and 21 #include <linux/mfd/cs42l43-regs.h> 33 #include <sound/soc-component.h> 34 #include <sound/soc-dapm.h> 35 #include <sound/soc-dai.h> 137 dev_err(priv->dev, "Error " #name " IRQ\n"); \ 157 struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(priv->componen in CS42L43_IRQ_ERROR() 1600 unsigned int reg, ramp, mute; cs42l43_mic_ev() local [all...] |
| H A D | rt5645.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * rt5645.c -- RT5645 ALSA SoC audio codec driver 26 #include <sound/soc-dapm.h> 41 static unsigned int quirk = -1; 439 /* Some (package) variants have the headset-mic pin not-connected */ 671 static const DECLARE_TLV_DB_SCALE(out_vol_tlv, -4650, 150, 0); 672 static const DECLARE_TLV_DB_SCALE(dac_vol_tlv, -6525, 75, 0); 673 static const DECLARE_TLV_DB_SCALE(in_vol_tlv, -3450, 150, 0); 674 static const DECLARE_TLV_DB_SCALE(adc_vol_tlv, -1725, 75, 0); 688 /* {-6, -4.5, -3, -1.5, 0, 0.82, 1.58, 2.28} dB */ [all …]
|
| /linux/Documentation/sound/hd-audio/ |
| H A D | models.rst | 2 HD-Audio Codec-Specific Models 8 3-jack in back and a headphone out 9 3stack-digout 10 3-jack in back, a HP out and a SPDIF out 12 5-jack in back, 2-jack in front 13 5stack-digout 14 5-jack in back, 2-jack in front, a SPDIF out 16 6-jack in back, 2-jack in front 17 6stack-digout 18 6-jack with a SPDIF out [all …]
|
| /linux/sound/hda/codecs/side-codecs/ |
| H A D | cs35l41_hda.c | 1 // SPDX-License-Identifier: GPL-2.0 36 #define CS35L41_UUID "50d90cdc-3de4-4f18-b528-c7fe3b71f40d" 85 [CS35L41_HDA_FW_SPK_PROT] = "spk-prot", 86 [CS35L41_HDA_FW_SPK_CALI] = "spk 712 cs35l41_mute(struct device * dev,bool mute) cs35l41_mute() argument 1423 int mute = -ENODEV; cs35l41_get_acpi_mute_state() local 1441 int mute; cs35l41_acpi_device_notify() local [all...] |
| /linux/sound/hda/codecs/ |
| H A D | generic.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 3 * Generic BIOS auto-parser helper functions for HD-audio 16 /* table entry for multi-io paths */ 18 hda_nid_t pin; /* multi-io widget pin NID */ 20 unsigned int ctl_in; /* cached input-pin control value */ 25 * For output, stored in the order of DAC -> ... -> pin, 26 * for input, pin -> ... -> ADC. 30 * multi[] indicates whether it's a selector widget with multi-connectors 56 /* mic/line-in auto switching entry */ 62 int idx; /* imux index, -1 = invalid */ [all …]
|
| H A D | conexant.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 7 * Tobin Davis <tdavis@dsl-only.net> 63 spec->gen.beep_nid = nid; in set_beep_amp() 65 knew = snd_hda_gen_add_kctl(&spec->gen, NULL, in set_beep_amp() 68 return -ENOMEM; in set_beep_amp() 69 knew->private_valu in set_beep_amp() 756 cxt_setup_mute_led(struct hda_codec * codec,unsigned int mute,unsigned int mic_mute) cxt_setup_mute_led() argument [all...] |
| /linux/sound/soc/qcom/ |
| H A D | sdm845.c | 1 // SPDX-License-Identifier: GPL-2.0 6 #include <dt-bindings/sound/qcom,q6afe.h> 15 #include <uapi/linux/input-event-codes.h> 65 struct sdm845_snd_data *pdata = snd_soc_card_get_drvdata(rtd->card); in sdm845_slim_snd_hw_params() 73 substream->stream); in sdm845_slim_snd_hw_params() 74 if (sruntime != ERR_PTR(-ENOTSUPP)) in sdm845_slim_snd_hw_params() 75 pdata->sruntime[cpu_dai->id] = sruntime; in sdm845_slim_snd_hw_params() 80 if (ret != 0 && ret != -ENOTSUPP) { in sdm845_slim_snd_hw_params() 83 } else if (ret == -ENOTSUPP) { in sdm845_slim_snd_hw_params() 88 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) in sdm845_slim_snd_hw_params() [all …]
|
| /linux/sound/hda/codecs/cirrus/ |
| H A D | cs421x.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Cirrus Logic CS421x HD-audio codec 45 /* Vendor-specific processing widget */ 57 * 1 = digital immediate, analog zero-cross 58 * 2 = digtail & analog soft-ramp 59 * 3 = digital soft-ramp, analog zero-cross 63 #define CS_COEF_ADC_LI_SZC_MODE (3 << 0) /* SZC setup for line-in */ 64 /* PGA mode: 0 = differential, 1 = signle-ended */ 66 #define CS_COEF_ADC_LI_PGA_MODE (1 << 6) /* PGA setup for line-in */ 70 * 1 = zero-cross [all …]
|
| H A D | cs420x.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Cirrus Logic CS420x HD-audio codec 52 /* Vendor-specific processing widget */ 65 * 1 = digital immediate, analog zero-cross 66 * 2 = digtail & analog soft-ramp 67 * 3 = digital soft-ramp, analog zero-cross 71 #define CS_COEF_ADC_LI_SZC_MODE (3 << 0) /* SZC setup for line-in */ 72 /* PGA mode: 0 = differential, 1 = signle-ended */ 74 #define CS_COEF_ADC_LI_PGA_MODE (1 << 6) /* PGA setup for line-in */ 78 * 1 = zero-cross [all …]
|
| /linux/sound/hda/codecs/hdmi/ |
| H A D | atihdmi.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 18 ((codec)->core.vendor_id == 0x1002aa01 && \ 19 ((codec)->core.revision_id & 0xff00) >= 0x0300) 106 return -EINVAL; in get_eld_ati() 170 /* format is supported, copy SAD as-is */ in get_eld_ati() 189 return -EINVAL; in get_eld_ati() 196 * [1..251] msecs = (x-1)*2 (max 500ms with x = 251 = 0xfb) in get_eld_ati() 212 buf[6] = video_latency_hdmi - audio_latency_hdmi; in get_eld_ati() 217 buf[5] |= ((pos - ELD_FIXED_BYTES - sink_desc_len) / 3) << 4; in get_eld_ati() 219 /* Baseline ELD block length is 4-byte aligned */ in get_eld_ati() [all …]
|