| OLD | NEW |
| 1 /* | 1 /* |
| 2 * zoom2.c -- SoC audio for Zoom2 | 2 * zoom2.c -- SoC audio for Zoom2 |
| 3 * | 3 * |
| 4 * Author: Misael Lopez Cruz <x0052729@ti.com> | 4 * Author: Misael Lopez Cruz <x0052729@ti.com> |
| 5 * | 5 * |
| 6 * This program is free software; you can redistribute it and/or | 6 * This program is free software; you can redistribute it and/or |
| 7 * modify it under the terms of the GNU General Public License | 7 * modify it under the terms of the GNU General Public License |
| 8 * version 2 as published by the Free Software Foundation. | 8 * version 2 as published by the Free Software Foundation. |
| 9 * | 9 * |
| 10 * This program is distributed in the hope that it will be useful, but | 10 * This program is distributed in the hope that it will be useful, but |
| 11 * WITHOUT ANY WARRANTY; without even the implied warranty of | 11 * WITHOUT ANY WARRANTY; without even the implied warranty of |
| 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 13 * General Public License for more details. | 13 * General Public License for more details. |
| 14 * | 14 * |
| 15 * You should have received a copy of the GNU General Public License | 15 * You should have received a copy of the GNU General Public License |
| 16 * along with this program; if not, write to the Free Software | 16 * along with this program; if not, write to the Free Software |
| 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA | 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA |
| 18 * 02110-1301 USA | 18 * 02110-1301 USA |
| 19 * | 19 * |
| 20 */ | 20 */ |
| 21 | 21 |
| 22 #include <linux/clk.h> | 22 #include <linux/clk.h> |
| 23 #include <linux/platform_device.h> | 23 #include <linux/platform_device.h> |
| 24 #include <sound/core.h> | 24 #include <sound/core.h> |
| 25 #include <sound/pcm.h> | 25 #include <sound/pcm.h> |
| 26 #include <sound/soc.h> | 26 #include <sound/soc.h> |
| 27 #include <sound/soc-dapm.h> | |
| 28 | 27 |
| 29 #include <asm/mach-types.h> | 28 #include <asm/mach-types.h> |
| 30 #include <mach/hardware.h> | 29 #include <mach/hardware.h> |
| 31 #include <mach/gpio.h> | 30 #include <mach/gpio.h> |
| 32 #include <mach/board-zoom.h> | 31 #include <mach/board-zoom.h> |
| 33 #include <plat/mcbsp.h> | 32 #include <plat/mcbsp.h> |
| 34 | 33 |
| 35 /* Register descriptions for twl4030 codec part */ | 34 /* Register descriptions for twl4030 codec part */ |
| 36 #include <linux/mfd/twl4030-codec.h> | 35 #include <linux/mfd/twl4030-codec.h> |
| 37 | 36 |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 {"Headset Mic Bias", NULL, "Headset Mic"}, | 154 {"Headset Mic Bias", NULL, "Headset Mic"}, |
| 156 | 155 |
| 157 /* Aux In: AUXL, AUXR */ | 156 /* Aux In: AUXL, AUXR */ |
| 158 {"Aux In", NULL, "AUXL"}, | 157 {"Aux In", NULL, "AUXL"}, |
| 159 {"Aux In", NULL, "AUXR"}, | 158 {"Aux In", NULL, "AUXR"}, |
| 160 }; | 159 }; |
| 161 | 160 |
| 162 static int zoom2_twl4030_init(struct snd_soc_pcm_runtime *rtd) | 161 static int zoom2_twl4030_init(struct snd_soc_pcm_runtime *rtd) |
| 163 { | 162 { |
| 164 struct snd_soc_codec *codec = rtd->codec; | 163 struct snd_soc_codec *codec = rtd->codec; |
| 164 struct snd_soc_dapm_context *dapm = &codec->dapm; |
| 165 int ret; | 165 int ret; |
| 166 | 166 |
| 167 /* Add Zoom2 specific widgets */ | 167 /* Add Zoom2 specific widgets */ |
| 168 » ret = snd_soc_dapm_new_controls(codec, zoom2_twl4030_dapm_widgets, | 168 » ret = snd_soc_dapm_new_controls(dapm, zoom2_twl4030_dapm_widgets, |
| 169 ARRAY_SIZE(zoom2_twl4030_dapm_widgets)); | 169 ARRAY_SIZE(zoom2_twl4030_dapm_widgets)); |
| 170 if (ret) | 170 if (ret) |
| 171 return ret; | 171 return ret; |
| 172 | 172 |
| 173 /* Set up Zoom2 specific audio path audio_map */ | 173 /* Set up Zoom2 specific audio path audio_map */ |
| 174 » snd_soc_dapm_add_routes(codec, audio_map, ARRAY_SIZE(audio_map)); | 174 » snd_soc_dapm_add_routes(dapm, audio_map, ARRAY_SIZE(audio_map)); |
| 175 | 175 |
| 176 /* Zoom2 connected pins */ | 176 /* Zoom2 connected pins */ |
| 177 » snd_soc_dapm_enable_pin(codec, "Ext Mic"); | 177 » snd_soc_dapm_enable_pin(dapm, "Ext Mic"); |
| 178 » snd_soc_dapm_enable_pin(codec, "Ext Spk"); | 178 » snd_soc_dapm_enable_pin(dapm, "Ext Spk"); |
| 179 » snd_soc_dapm_enable_pin(codec, "Headset Mic"); | 179 » snd_soc_dapm_enable_pin(dapm, "Headset Mic"); |
| 180 » snd_soc_dapm_enable_pin(codec, "Headset Stereophone"); | 180 » snd_soc_dapm_enable_pin(dapm, "Headset Stereophone"); |
| 181 » snd_soc_dapm_enable_pin(codec, "Aux In"); | 181 » snd_soc_dapm_enable_pin(dapm, "Aux In"); |
| 182 | 182 |
| 183 /* TWL4030 not connected pins */ | 183 /* TWL4030 not connected pins */ |
| 184 » snd_soc_dapm_nc_pin(codec, "CARKITMIC"); | 184 » snd_soc_dapm_nc_pin(dapm, "CARKITMIC"); |
| 185 » snd_soc_dapm_nc_pin(codec, "DIGIMIC0"); | 185 » snd_soc_dapm_nc_pin(dapm, "DIGIMIC0"); |
| 186 » snd_soc_dapm_nc_pin(codec, "DIGIMIC1"); | 186 » snd_soc_dapm_nc_pin(dapm, "DIGIMIC1"); |
| 187 » snd_soc_dapm_nc_pin(codec, "EARPIECE"); | 187 » snd_soc_dapm_nc_pin(dapm, "EARPIECE"); |
| 188 » snd_soc_dapm_nc_pin(codec, "PREDRIVEL"); | 188 » snd_soc_dapm_nc_pin(dapm, "PREDRIVEL"); |
| 189 » snd_soc_dapm_nc_pin(codec, "PREDRIVER"); | 189 » snd_soc_dapm_nc_pin(dapm, "PREDRIVER"); |
| 190 » snd_soc_dapm_nc_pin(codec, "CARKITL"); | 190 » snd_soc_dapm_nc_pin(dapm, "CARKITL"); |
| 191 » snd_soc_dapm_nc_pin(codec, "CARKITR"); | 191 » snd_soc_dapm_nc_pin(dapm, "CARKITR"); |
| 192 | 192 |
| 193 » ret = snd_soc_dapm_sync(codec); | 193 » ret = snd_soc_dapm_sync(dapm); |
| 194 | 194 |
| 195 return ret; | 195 return ret; |
| 196 } | 196 } |
| 197 | 197 |
| 198 static int zoom2_twl4030_voice_init(struct snd_soc_pcm_runtime *rtd) | 198 static int zoom2_twl4030_voice_init(struct snd_soc_pcm_runtime *rtd) |
| 199 { | 199 { |
| 200 struct snd_soc_codec *codec = rtd->codec; | 200 struct snd_soc_codec *codec = rtd->codec; |
| 201 unsigned short reg; | 201 unsigned short reg; |
| 202 | 202 |
| 203 /* Enable voice interface */ | 203 /* Enable voice interface */ |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 282 gpio_free(ZOOM2_HEADSET_EXTMUTE_GPIO); | 282 gpio_free(ZOOM2_HEADSET_EXTMUTE_GPIO); |
| 283 | 283 |
| 284 platform_device_unregister(zoom2_snd_device); | 284 platform_device_unregister(zoom2_snd_device); |
| 285 } | 285 } |
| 286 module_exit(zoom2_soc_exit); | 286 module_exit(zoom2_soc_exit); |
| 287 | 287 |
| 288 MODULE_AUTHOR("Misael Lopez Cruz <x0052729@ti.com>"); | 288 MODULE_AUTHOR("Misael Lopez Cruz <x0052729@ti.com>"); |
| 289 MODULE_DESCRIPTION("ALSA SoC Zoom2"); | 289 MODULE_DESCRIPTION("ALSA SoC Zoom2"); |
| 290 MODULE_LICENSE("GPL"); | 290 MODULE_LICENSE("GPL"); |
| 291 | 291 |
| OLD | NEW |