diff options
Diffstat (limited to 'include/sound')
-rw-r--r-- | include/sound/compress_driver.h | 2 | ||||
-rw-r--r-- | include/sound/dmaengine_pcm.h | 3 | ||||
-rw-r--r-- | include/sound/max97236.h | 21 | ||||
-rw-r--r-- | include/sound/max98088.h | 4 | ||||
-rw-r--r-- | include/sound/max98090.h | 33 | ||||
-rw-r--r-- | include/sound/soc-dpcm.h | 22 | ||||
-rw-r--r-- | include/sound/soc.h | 1 | ||||
-rw-r--r-- | include/sound/tegra_wm8903.h | 26 | ||||
-rw-r--r-- | include/sound/tlv320aic325x.h | 0 | ||||
-rw-r--r-- | include/sound/tlv320aic326x.h | 23 |
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 |