summaryrefslogtreecommitdiff
path: root/include/sound
diff options
context:
space:
mode:
Diffstat (limited to 'include/sound')
-rw-r--r--include/sound/compress_driver.h2
-rw-r--r--include/sound/dmaengine_pcm.h3
-rw-r--r--include/sound/max97236.h21
-rw-r--r--include/sound/max98088.h4
-rw-r--r--include/sound/max98090.h33
-rw-r--r--include/sound/soc-dpcm.h22
-rw-r--r--include/sound/soc.h1
-rw-r--r--include/sound/tegra_wm8903.h26
-rw-r--r--include/sound/tlv320aic325x.h0
-rw-r--r--include/sound/tlv320aic326x.h23
10 files changed, 135 insertions, 0 deletions
diff --git a/include/sound/compress_driver.h b/include/sound/compress_driver.h
index ae6c3b8ed2f5..2b2d2fb1e8cd 100644
--- a/include/sound/compress_driver.h
+++ b/include/sound/compress_driver.h
@@ -32,6 +32,7 @@
#include <sound/pcm.h>
struct snd_compr_ops;
+struct snd_pcm_substream;
/**
* struct snd_compr_runtime: runtime stream description
@@ -59,6 +60,7 @@ struct snd_compr_runtime {
u64 total_bytes_available;
u64 total_bytes_transferred;
wait_queue_head_t sleep;
+ struct snd_pcm_substream *fe_substream;
void *private_data;
};
diff --git a/include/sound/dmaengine_pcm.h b/include/sound/dmaengine_pcm.h
index f11c35cd5532..7bcbf5d0ccae 100644
--- a/include/sound/dmaengine_pcm.h
+++ b/include/sound/dmaengine_pcm.h
@@ -33,6 +33,9 @@ snd_pcm_substream_to_dma_direction(const struct snd_pcm_substream *substream)
return DMA_DEV_TO_MEM;
}
+void snd_dmaengine_pcm_set_data(struct snd_pcm_substream *substream, void *data);
+void *snd_dmaengine_pcm_get_data(struct snd_pcm_substream *substream);
+
int snd_hwparams_to_dma_slave_config(const struct snd_pcm_substream *substream,
const struct snd_pcm_hw_params *params, struct dma_slave_config *slave_config);
int snd_dmaengine_pcm_trigger(struct snd_pcm_substream *substream, int cmd);
diff --git a/include/sound/max97236.h b/include/sound/max97236.h
new file mode 100644
index 000000000000..b894b6839656
--- /dev/null
+++ b/include/sound/max97236.h
@@ -0,0 +1,21 @@
+/*
+ * Platform data for MAX97236
+ *
+ * Copyright 2012 Maxim Integrated Products
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ */
+
+#ifndef __SOUND_MAX97236_PDATA_H__
+#define __SOUND_MAX97236_PDATA_H__
+
+/* jack detection and amplifier platform data */
+struct max97236_pdata {
+ int irq;
+};
+
+#endif
diff --git a/include/sound/max98088.h b/include/sound/max98088.h
index c3ba8239182d..9b4fceb360ac 100644
--- a/include/sound/max98088.h
+++ b/include/sound/max98088.h
@@ -31,6 +31,10 @@ struct max98088_pdata {
struct max98088_eq_cfg *eq_cfg;
unsigned int eq_cfgcnt;
+ /* has to be one of 25,50,100 or 200 ms
+ as per the data sheet */
+ unsigned int debounce_time_ms;
+
/* Receiver output can be configured as power amplifier or LINE out */
/* Set receiver_mode to:
* 0 = amplifier output, or
diff --git a/include/sound/max98090.h b/include/sound/max98090.h
index 95efb13f8478..ab47aae90d38 100644
--- a/include/sound/max98090.h
+++ b/include/sound/max98090.h
@@ -13,9 +13,42 @@
#ifndef __SOUND_MAX98090_PDATA_H__
#define __SOUND_MAX98090_PDATA_H__
+/* Equalizer filter response configuration
+ * There are 5 coefs per band, 3 bytes per coef, and up to 7 bands
+ */
+struct max98090_eq_cfg {
+ const char *name;
+ unsigned int rate;
+ unsigned int bands;
+ u8 coef[5 * 3 * 7];
+};
+
+/* Biquad filter response configuration
+ * There are 5 coefs per band, 3 bytes per coef
+ */
+struct max98090_biquad_cfg {
+ const char *name;
+ unsigned int rate;
+ u8 coef[5 * 3];
+};
+
/* codec platform data */
struct max98090_pdata {
+ int irq;
+
+ /* Equalizers for DAC */
+ struct max98090_eq_cfg *eq_cfg;
+ unsigned int eq_cfgcnt;
+
+ /* Biquad filter for ADC */
+ struct max98090_biquad_cfg *bq_cfg;
+ unsigned int bq_cfgcnt;
+
+ /* DMIC34 Biquad filter for ADC */
+ struct max98090_biquad_cfg *dmic34bq_cfg;
+ unsigned int dmic34bq_cfgcnt;
+
/* Analog/digital microphone configuration:
* 0 = analog microphone input (normal setting)
* 1 = digital microphone input
diff --git a/include/sound/soc-dpcm.h b/include/sound/soc-dpcm.h
index 04598f1efd77..603a2f31af94 100644
--- a/include/sound/soc-dpcm.h
+++ b/include/sound/soc-dpcm.h
@@ -11,6 +11,7 @@
#ifndef __LINUX_SND_SOC_DPCM_H
#define __LINUX_SND_SOC_DPCM_H
+#include <linux/slab.h>
#include <linux/list.h>
#include <sound/pcm.h>
@@ -130,6 +131,27 @@ enum snd_soc_dpcm_state
void snd_soc_dpcm_be_set_state(struct snd_soc_pcm_runtime *be, int stream,
enum snd_soc_dpcm_state state);
+
+int dpcm_path_get(struct snd_soc_pcm_runtime *fe,
+ int stream, struct snd_soc_dapm_widget_list **list_);
+int dpcm_process_paths(struct snd_soc_pcm_runtime *fe,
+ int stream, struct snd_soc_dapm_widget_list **list, int new);
+int dpcm_be_dai_startup(struct snd_soc_pcm_runtime *fe, int stream);
+int dpcm_be_dai_shutdown(struct snd_soc_pcm_runtime *fe, int stream);
+void dpcm_be_disconnect(struct snd_soc_pcm_runtime *fe, int stream);
+void dpcm_clear_pending_state(struct snd_soc_pcm_runtime *fe, int stream);
+int dpcm_be_dai_hw_free(struct snd_soc_pcm_runtime *fe, int stream);
+int dpcm_be_dai_hw_params(struct snd_soc_pcm_runtime *fe, int tream);
+int dpcm_be_dai_trigger(struct snd_soc_pcm_runtime *fe, int stream, int cmd);
+int dpcm_be_dai_prepare(struct snd_soc_pcm_runtime *fe, int stream);
+int dpcm_dapm_stream_event(struct snd_soc_pcm_runtime *fe,
+ int dir, int event);
+
+static inline void dpcm_path_put(struct snd_soc_dapm_widget_list **list)
+{
+ kfree(*list);
+}
+
/* internal use only */
int soc_dpcm_be_digital_mute(struct snd_soc_pcm_runtime *fe, int mute);
int soc_dpcm_debugfs_add(struct snd_soc_pcm_runtime *rtd);
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 85c15226103b..5bbdc653a826 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -1063,6 +1063,7 @@ struct snd_soc_pcm_runtime {
/* Dynamic PCM BE runtime data */
struct snd_soc_dpcm_runtime dpcm[2];
+ int fe_compr;
long pmdown_time;
unsigned char pop_wait:1;
diff --git a/include/sound/tegra_wm8903.h b/include/sound/tegra_wm8903.h
new file mode 100644
index 000000000000..57b202ee97c3
--- /dev/null
+++ b/include/sound/tegra_wm8903.h
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2011 NVIDIA, Inc.
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef __SOUND_TEGRA_WM38903_H
+#define __SOUND_TEGRA_WM38903_H
+
+struct tegra_wm8903_platform_data {
+ int gpio_spkr_en;
+ int gpio_hp_det;
+ int gpio_hp_mute;
+ int gpio_int_mic_en;
+ int gpio_ext_mic_en;
+};
+
+#endif
diff --git a/include/sound/tlv320aic325x.h b/include/sound/tlv320aic325x.h
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/include/sound/tlv320aic325x.h
diff --git a/include/sound/tlv320aic326x.h b/include/sound/tlv320aic326x.h
new file mode 100644
index 000000000000..97e5841f9044
--- /dev/null
+++ b/include/sound/tlv320aic326x.h
@@ -0,0 +1,23 @@
+/*
+ * Platform data for Texas Instruments TLV320AIC326x codec
+ *
+ * Copyright 2010 TI Products
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ */
+#ifndef __LINUX_SND_TLV320AIC326x_H__
+#define __LINUX_SND_TLV320AIC326x_H__
+
+/* codec platform data */
+struct aic326x_pdata {
+
+ /* has to be one of 16,32,64,128,256,512 ms
+ as per the data sheet */
+ unsigned int debounce_time_ms;
+};
+
+#endif