| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * cs42l56.c -- CS42L56 ALSA SoC audio driver |
|---|
| 3 | 4 | * |
|---|
| 4 | 5 | * Copyright 2014 CirrusLogic, Inc. |
|---|
| 5 | 6 | * |
|---|
| 6 | 7 | * Author: Brian Austin <brian.austin@cirrus.com> |
|---|
| 7 | | - * |
|---|
| 8 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 9 | | - * it under the terms of the GNU General Public License version 2 as |
|---|
| 10 | | - * published by the Free Software Foundation. |
|---|
| 11 | | - * |
|---|
| 12 | 8 | */ |
|---|
| 13 | 9 | |
|---|
| 14 | 10 | #include <linux/module.h> |
|---|
| .. | .. |
|---|
| 203 | 199 | SOC_ENUM_SINGLE(CS42L56_BEEP_TONE_CFG, 1, |
|---|
| 204 | 200 | ARRAY_SIZE(beep_bass_text), beep_bass_text); |
|---|
| 205 | 201 | |
|---|
| 206 | | -static const char * const adc_swap_text[] = { |
|---|
| 207 | | - "None", "A+B/2", "A-B/2", "Swap" |
|---|
| 208 | | -}; |
|---|
| 209 | | - |
|---|
| 210 | | -static const struct soc_enum adc_swap_enum = |
|---|
| 211 | | - SOC_ENUM_SINGLE(CS42L56_MISC_ADC_CTL, 3, |
|---|
| 212 | | - ARRAY_SIZE(adc_swap_text), adc_swap_text); |
|---|
| 213 | | - |
|---|
| 214 | 202 | static const char * const pgaa_mux_text[] = { |
|---|
| 215 | 203 | "AIN1A", "AIN2A", "AIN3A"}; |
|---|
| 216 | 204 | |
|---|
| .. | .. |
|---|
| 403 | 391 | SOC_DOUBLE("ADC Boost Switch", CS42L56_GAIN_BIAS_CTL, 3, 2, 1, 1), |
|---|
| 404 | 392 | |
|---|
| 405 | 393 | SOC_DOUBLE_R_SX_TLV("Headphone Volume", CS42L56_HPA_VOLUME, |
|---|
| 406 | | - CS42L56_HPB_VOLUME, 0, 0x84, 0x48, hl_tlv), |
|---|
| 394 | + CS42L56_HPB_VOLUME, 0, 0x44, 0x48, hl_tlv), |
|---|
| 407 | 395 | SOC_DOUBLE_R_SX_TLV("LineOut Volume", CS42L56_LOA_VOLUME, |
|---|
| 408 | | - CS42L56_LOB_VOLUME, 0, 0x84, 0x48, hl_tlv), |
|---|
| 396 | + CS42L56_LOB_VOLUME, 0, 0x44, 0x48, hl_tlv), |
|---|
| 409 | 397 | |
|---|
| 410 | 398 | SOC_SINGLE_TLV("Bass Shelving Volume", CS42L56_TONE_CTL, |
|---|
| 411 | 399 | 0, 0x00, 1, tone_tlv), |
|---|
| .. | .. |
|---|
| 812 | 800 | return 0; |
|---|
| 813 | 801 | } |
|---|
| 814 | 802 | |
|---|
| 815 | | -static int cs42l56_digital_mute(struct snd_soc_dai *dai, int mute) |
|---|
| 803 | +static int cs42l56_mute(struct snd_soc_dai *dai, int mute, int direction) |
|---|
| 816 | 804 | { |
|---|
| 817 | 805 | struct snd_soc_component *component = dai->component; |
|---|
| 818 | 806 | |
|---|
| .. | .. |
|---|
| 941 | 929 | |
|---|
| 942 | 930 | static const struct snd_soc_dai_ops cs42l56_ops = { |
|---|
| 943 | 931 | .hw_params = cs42l56_pcm_hw_params, |
|---|
| 944 | | - .digital_mute = cs42l56_digital_mute, |
|---|
| 932 | + .mute_stream = cs42l56_mute, |
|---|
| 945 | 933 | .set_fmt = cs42l56_set_dai_fmt, |
|---|
| 946 | 934 | .set_sysclk = cs42l56_set_sysclk, |
|---|
| 935 | + .no_capture_mute = 1, |
|---|
| 947 | 936 | }; |
|---|
| 948 | 937 | |
|---|
| 949 | 938 | static struct snd_soc_dai_driver cs42l56_dai = { |
|---|