You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge tag 'asoc-3.9-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next
ASoC: Final updates for v3.9 A few more updates from the past week - a new driver from Dialog and some small fixes and tweaks.
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* da7213.h - DA7213 ASoC Codec Driver Platform Data
|
||||
*
|
||||
* Copyright (c) 2013 Dialog Semiconductor
|
||||
*
|
||||
* Author: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef _DA7213_PDATA_H
|
||||
#define _DA7213_PDATA_H
|
||||
|
||||
enum da7213_micbias_voltage {
|
||||
DA7213_MICBIAS_1_6V = 0,
|
||||
DA7213_MICBIAS_2_2V = 1,
|
||||
DA7213_MICBIAS_2_5V = 2,
|
||||
DA7213_MICBIAS_3_0V = 3,
|
||||
};
|
||||
|
||||
enum da7213_dmic_data_sel {
|
||||
DA7213_DMIC_DATA_LRISE_RFALL = 0,
|
||||
DA7213_DMIC_DATA_LFALL_RRISE = 1,
|
||||
};
|
||||
|
||||
enum da7213_dmic_samplephase {
|
||||
DA7213_DMIC_SAMPLE_ON_CLKEDGE = 0,
|
||||
DA7213_DMIC_SAMPLE_BETWEEN_CLKEDGE = 1,
|
||||
};
|
||||
|
||||
enum da7213_dmic_clk_rate {
|
||||
DA7213_DMIC_CLK_3_0MHZ = 0,
|
||||
DA7213_DMIC_CLK_1_5MHZ = 1,
|
||||
};
|
||||
|
||||
struct da7213_platform_data {
|
||||
/* Mic Bias voltage */
|
||||
enum da7213_micbias_voltage micbias1_lvl;
|
||||
enum da7213_micbias_voltage micbias2_lvl;
|
||||
|
||||
/* DMIC config */
|
||||
enum da7213_dmic_data_sel dmic_data_sel;
|
||||
enum da7213_dmic_samplephase dmic_samplephase;
|
||||
enum da7213_dmic_clk_rate dmic_clk_rate;
|
||||
|
||||
/* MCLK squaring config */
|
||||
bool mclk_squaring;
|
||||
};
|
||||
|
||||
#endif /* _DA7213_PDATA_H */
|
||||
@@ -36,6 +36,7 @@ config SND_SOC_ALL_CODECS
|
||||
select SND_SOC_CS4271 if SND_SOC_I2C_AND_SPI
|
||||
select SND_SOC_CX20442
|
||||
select SND_SOC_DA7210 if I2C
|
||||
select SND_SOC_DA7213 if I2C
|
||||
select SND_SOC_DA732X if I2C
|
||||
select SND_SOC_DA9055 if I2C
|
||||
select SND_SOC_DFBMCS320
|
||||
@@ -247,6 +248,9 @@ config SND_SOC_L3
|
||||
config SND_SOC_DA7210
|
||||
tristate
|
||||
|
||||
config SND_SOC_DA7213
|
||||
tristate
|
||||
|
||||
config SND_SOC_DA732X
|
||||
tristate
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ snd-soc-cs4270-objs := cs4270.o
|
||||
snd-soc-cs4271-objs := cs4271.o
|
||||
snd-soc-cx20442-objs := cx20442.o
|
||||
snd-soc-da7210-objs := da7210.o
|
||||
snd-soc-da7213-objs := da7213.o
|
||||
snd-soc-da732x-objs := da732x.o
|
||||
snd-soc-da9055-objs := da9055.o
|
||||
snd-soc-dfbmcs320-objs := dfbmcs320.o
|
||||
@@ -147,6 +148,7 @@ obj-$(CONFIG_SND_SOC_CS4270) += snd-soc-cs4270.o
|
||||
obj-$(CONFIG_SND_SOC_CS4271) += snd-soc-cs4271.o
|
||||
obj-$(CONFIG_SND_SOC_CX20442) += snd-soc-cx20442.o
|
||||
obj-$(CONFIG_SND_SOC_DA7210) += snd-soc-da7210.o
|
||||
obj-$(CONFIG_SND_SOC_DA7213) += snd-soc-da7213.o
|
||||
obj-$(CONFIG_SND_SOC_DA732X) += snd-soc-da732x.o
|
||||
obj-$(CONFIG_SND_SOC_DA9055) += snd-soc-da9055.o
|
||||
obj-$(CONFIG_SND_SOC_DFBMCS320) += snd-soc-dfbmcs320.o
|
||||
|
||||
@@ -335,6 +335,23 @@ EXPORT_SYMBOL_GPL(arizona_ng_hold);
|
||||
int arizona_in_ev(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol,
|
||||
int event)
|
||||
{
|
||||
unsigned int reg;
|
||||
|
||||
if (w->shift % 2)
|
||||
reg = ARIZONA_ADC_DIGITAL_VOLUME_1L + ((w->shift / 2) * 8);
|
||||
else
|
||||
reg = ARIZONA_ADC_DIGITAL_VOLUME_1R + ((w->shift / 2) * 8);
|
||||
|
||||
switch (event) {
|
||||
case SND_SOC_DAPM_POST_PMU:
|
||||
snd_soc_update_bits(w->codec, reg, ARIZONA_IN1L_MUTE, 0);
|
||||
break;
|
||||
case SND_SOC_DAPM_PRE_PMD:
|
||||
snd_soc_update_bits(w->codec, reg, ARIZONA_IN1L_MUTE,
|
||||
ARIZONA_IN1L_MUTE);
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(arizona_in_ev);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -636,19 +636,6 @@ SOC_SINGLE_RANGE_TLV("IN3L Volume", ARIZONA_IN3L_CONTROL,
|
||||
SOC_SINGLE_RANGE_TLV("IN3R Volume", ARIZONA_IN3R_CONTROL,
|
||||
ARIZONA_IN3R_PGA_VOL_SHIFT, 0x40, 0x5f, 0, ana_tlv),
|
||||
|
||||
SOC_SINGLE("IN1L Digital Switch", ARIZONA_ADC_DIGITAL_VOLUME_1L,
|
||||
ARIZONA_IN1L_MUTE_SHIFT, 1, 1),
|
||||
SOC_SINGLE("IN1R Digital Switch", ARIZONA_ADC_DIGITAL_VOLUME_1R,
|
||||
ARIZONA_IN1R_MUTE_SHIFT, 1, 1),
|
||||
SOC_SINGLE("IN2L Digital Switch", ARIZONA_ADC_DIGITAL_VOLUME_2L,
|
||||
ARIZONA_IN2L_MUTE_SHIFT, 1, 1),
|
||||
SOC_SINGLE("IN2R Digital Switch", ARIZONA_ADC_DIGITAL_VOLUME_2R,
|
||||
ARIZONA_IN2R_MUTE_SHIFT, 1, 1),
|
||||
SOC_SINGLE("IN3L Digital Switch", ARIZONA_ADC_DIGITAL_VOLUME_3L,
|
||||
ARIZONA_IN3L_MUTE_SHIFT, 1, 1),
|
||||
SOC_SINGLE("IN3R Digital Switch", ARIZONA_ADC_DIGITAL_VOLUME_3R,
|
||||
ARIZONA_IN3R_MUTE_SHIFT, 1, 1),
|
||||
|
||||
SOC_SINGLE_TLV("IN1L Digital Volume", ARIZONA_ADC_DIGITAL_VOLUME_1L,
|
||||
ARIZONA_IN1L_DIG_VOL_SHIFT, 0xbf, 0, digital_tlv),
|
||||
SOC_SINGLE_TLV("IN1R Digital Volume", ARIZONA_ADC_DIGITAL_VOLUME_1R,
|
||||
|
||||
@@ -80,23 +80,6 @@ SOC_SINGLE_RANGE_TLV("IN3L Volume", ARIZONA_IN3L_CONTROL,
|
||||
SOC_SINGLE_RANGE_TLV("IN3R Volume", ARIZONA_IN3R_CONTROL,
|
||||
ARIZONA_IN3R_PGA_VOL_SHIFT, 0x40, 0x5f, 0, ana_tlv),
|
||||
|
||||
SOC_SINGLE("IN1L Digital Switch", ARIZONA_ADC_DIGITAL_VOLUME_1L,
|
||||
ARIZONA_IN1L_MUTE_SHIFT, 1, 1),
|
||||
SOC_SINGLE("IN1R Digital Switch", ARIZONA_ADC_DIGITAL_VOLUME_1R,
|
||||
ARIZONA_IN1R_MUTE_SHIFT, 1, 1),
|
||||
SOC_SINGLE("IN2L Digital Switch", ARIZONA_ADC_DIGITAL_VOLUME_2L,
|
||||
ARIZONA_IN2L_MUTE_SHIFT, 1, 1),
|
||||
SOC_SINGLE("IN2R Digital Switch", ARIZONA_ADC_DIGITAL_VOLUME_2R,
|
||||
ARIZONA_IN2R_MUTE_SHIFT, 1, 1),
|
||||
SOC_SINGLE("IN3L Digital Switch", ARIZONA_ADC_DIGITAL_VOLUME_3L,
|
||||
ARIZONA_IN3L_MUTE_SHIFT, 1, 1),
|
||||
SOC_SINGLE("IN3R Digital Switch", ARIZONA_ADC_DIGITAL_VOLUME_3R,
|
||||
ARIZONA_IN3R_MUTE_SHIFT, 1, 1),
|
||||
SOC_SINGLE("IN4L Digital Switch", ARIZONA_ADC_DIGITAL_VOLUME_4L,
|
||||
ARIZONA_IN4L_MUTE_SHIFT, 1, 1),
|
||||
SOC_SINGLE("IN4R Digital Switch", ARIZONA_ADC_DIGITAL_VOLUME_4R,
|
||||
ARIZONA_IN4R_MUTE_SHIFT, 1, 1),
|
||||
|
||||
SOC_SINGLE_TLV("IN1L Digital Volume", ARIZONA_ADC_DIGITAL_VOLUME_1L,
|
||||
ARIZONA_IN1L_DIG_VOL_SHIFT, 0xbf, 0, digital_tlv),
|
||||
SOC_SINGLE_TLV("IN1R Digital Volume", ARIZONA_ADC_DIGITAL_VOLUME_1R,
|
||||
|
||||
@@ -3737,7 +3737,7 @@ static irqreturn_t wm8958_mic_irq(int irq, void *data)
|
||||
{
|
||||
struct wm8994_priv *wm8994 = data;
|
||||
struct snd_soc_codec *codec = wm8994->hubs.codec;
|
||||
int reg, count;
|
||||
int reg, count, ret;
|
||||
|
||||
/*
|
||||
* Jack detection may have detected a removal simulataneously
|
||||
@@ -3783,11 +3783,11 @@ static irqreturn_t wm8958_mic_irq(int irq, void *data)
|
||||
|
||||
/* Avoid a transient report when the accessory is being removed */
|
||||
if (wm8994->jackdet) {
|
||||
reg = snd_soc_read(codec, WM1811_JACKDET_CTRL);
|
||||
if (reg < 0) {
|
||||
ret = snd_soc_read(codec, WM1811_JACKDET_CTRL);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev, "Failed to read jack status: %d\n",
|
||||
reg);
|
||||
} else if (!(reg & WM1811_JACKDET_LVL)) {
|
||||
ret);
|
||||
} else if (!(ret & WM1811_JACKDET_LVL)) {
|
||||
dev_dbg(codec->dev, "Ignoring removed jack\n");
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
@@ -176,7 +176,7 @@ static inline void audmux_debugfs_remove(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
enum imx_audmux_type {
|
||||
static enum imx_audmux_type {
|
||||
IMX21_AUDMUX,
|
||||
IMX31_AUDMUX,
|
||||
} audmux_type;
|
||||
|
||||
@@ -449,10 +449,6 @@ static int asoc_mcpdm_probe(struct platform_device *pdev)
|
||||
omap_mcpdm_dai_dma_params[0].port_addr = res->start + MCPDM_REG_DN_DATA;
|
||||
omap_mcpdm_dai_dma_params[1].port_addr = res->start + MCPDM_REG_UP_DATA;
|
||||
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
if (res == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "dn_link");
|
||||
if (!res)
|
||||
return -ENODEV;
|
||||
|
||||
Reference in New Issue
Block a user