diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-25 11:32:05 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-25 11:32:05 -0400 |
commit | 33081adf8b89d5a716d7e1c60171768d39795b39 (patch) | |
tree | 275de58bbbb5f7ddffcdc087844cfc7fbe4315be /arch/arm/mach-omap2 | |
parent | c55960499f810357a29659b32d6ea594abee9237 (diff) | |
parent | 506ecbca71d07fa327dd986be1682e90885678ee (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (365 commits)
ALSA: hda - Disable sticky PCM stream assignment for AD codecs
ALSA: usb - Creative USB X-Fi volume knob support
ALSA: ca0106: Use card specific dac id for mute controls.
ALSA: ca0106: Allow different sound cards to use different SPI channel mappings.
ALSA: ca0106: Create a nice spot for mapping channels to dacs.
ALSA: ca0106: Move enabling of front dac out of hardcoded setup sequence.
ALSA: ca0106: Pull out dac powering routine into separate function.
ALSA: ca0106 - add Sound Blaster 5.1vx info.
ASoC: tlv320dac33: Use usleep_range for delays
ALSA: usb-audio: add Novation Launchpad support
ALSA: hda - Add workarounds for CT-IBG controllers
ALSA: hda - Fix wrong TLV mute bit for STAC/IDT codecs
ASoC: tpa6130a2: Error handling for broken chip
ASoC: max98088: Staticise m98088_eq_band
ASoC: soc-core: Fix codec->name memory leak
ALSA: hda - Apply ideapad quirk to Acer laptops with Cxt5066
ALSA: hda - Add some workarounds for Creative IBG
ALSA: hda - Fix wrong SPDIF NID assignment for CA0110
ALSA: hda - Fix codec rename rules for ALC662-compatible codecs
ALSA: hda - Add alc_init_jacks() call to other codecs
...
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r-- | arch/arm/mach-omap2/board-rx51-peripherals.c | 17 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-zoom-peripherals.c | 12 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-zoom2.c | 36 | ||||
-rw-r--r-- | arch/arm/mach-omap2/devices.c | 39 | ||||
-rw-r--r-- | arch/arm/mach-omap2/include/mach/board-zoom.h | 2 |
5 files changed, 66 insertions, 40 deletions
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c index ce28a851dcd3..63d786bccb67 100644 --- a/arch/arm/mach-omap2/board-rx51-peripherals.c +++ b/arch/arm/mach-omap2/board-rx51-peripherals.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/gpio.h> | 23 | #include <linux/gpio.h> |
24 | #include <linux/gpio_keys.h> | 24 | #include <linux/gpio_keys.h> |
25 | #include <linux/mmc/host.h> | 25 | #include <linux/mmc/host.h> |
26 | #include <sound/tlv320aic3x.h> | ||
26 | 27 | ||
27 | #include <plat/mcspi.h> | 28 | #include <plat/mcspi.h> |
28 | #include <plat/board.h> | 29 | #include <plat/board.h> |
@@ -689,7 +690,6 @@ static struct twl4030_power_data rx51_t2scripts_data __initdata = { | |||
689 | }; | 690 | }; |
690 | 691 | ||
691 | 692 | ||
692 | |||
693 | static struct twl4030_platform_data rx51_twldata __initdata = { | 693 | static struct twl4030_platform_data rx51_twldata __initdata = { |
694 | .irq_base = TWL4030_IRQ_BASE, | 694 | .irq_base = TWL4030_IRQ_BASE, |
695 | .irq_end = TWL4030_IRQ_END, | 695 | .irq_end = TWL4030_IRQ_END, |
@@ -710,10 +710,6 @@ static struct twl4030_platform_data rx51_twldata __initdata = { | |||
710 | .vio = &rx51_vio, | 710 | .vio = &rx51_vio, |
711 | }; | 711 | }; |
712 | 712 | ||
713 | static struct aic3x_pdata rx51_aic3x_data __initdata = { | ||
714 | .gpio_reset = 60, | ||
715 | }; | ||
716 | |||
717 | static struct tpa6130a2_platform_data rx51_tpa6130a2_data __initdata = { | 713 | static struct tpa6130a2_platform_data rx51_tpa6130a2_data __initdata = { |
718 | .id = TPA6130A2, | 714 | .id = TPA6130A2, |
719 | .power_gpio = 98, | 715 | .power_gpio = 98, |
@@ -728,6 +724,17 @@ static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_1[] = { | |||
728 | }, | 724 | }, |
729 | }; | 725 | }; |
730 | 726 | ||
727 | /* Audio setup data */ | ||
728 | static struct aic3x_setup_data rx51_aic34_setup = { | ||
729 | .gpio_func[0] = AIC3X_GPIO1_FUNC_DISABLED, | ||
730 | .gpio_func[1] = AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT, | ||
731 | }; | ||
732 | |||
733 | static struct aic3x_pdata rx51_aic3x_data = { | ||
734 | .setup = &rx51_aic34_setup, | ||
735 | .gpio_reset = 60, | ||
736 | }; | ||
737 | |||
731 | static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_2[] = { | 738 | static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_2[] = { |
732 | { | 739 | { |
733 | I2C_BOARD_INFO("tlv320aic3x", 0x18), | 740 | I2C_BOARD_INFO("tlv320aic3x", 0x18), |
diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c index 189a6d1600b2..bc8232845d7a 100644 --- a/arch/arm/mach-omap2/board-zoom-peripherals.c +++ b/arch/arm/mach-omap2/board-zoom-peripherals.c | |||
@@ -26,6 +26,8 @@ | |||
26 | #include <plat/common.h> | 26 | #include <plat/common.h> |
27 | #include <plat/usb.h> | 27 | #include <plat/usb.h> |
28 | 28 | ||
29 | #include <mach/board-zoom.h> | ||
30 | |||
29 | #include "mux.h" | 31 | #include "mux.h" |
30 | #include "hsmmc.h" | 32 | #include "hsmmc.h" |
31 | 33 | ||
@@ -238,6 +240,11 @@ static int zoom_twl_gpio_setup(struct device *dev, | |||
238 | return 0; | 240 | return 0; |
239 | } | 241 | } |
240 | 242 | ||
243 | /* EXTMUTE callback function */ | ||
244 | void zoom2_set_hs_extmute(int mute) | ||
245 | { | ||
246 | gpio_set_value(ZOOM2_HEADSET_EXTMUTE_GPIO, mute); | ||
247 | } | ||
241 | 248 | ||
242 | static int zoom_batt_table[] = { | 249 | static int zoom_batt_table[] = { |
243 | /* 0 C*/ | 250 | /* 0 C*/ |
@@ -307,6 +314,11 @@ static struct i2c_board_info __initdata zoom_i2c_boardinfo[] = { | |||
307 | 314 | ||
308 | static int __init omap_i2c_init(void) | 315 | static int __init omap_i2c_init(void) |
309 | { | 316 | { |
317 | if (machine_is_omap_zoom2()) { | ||
318 | zoom_audio_data.ramp_delay_value = 3; /* 161 ms */ | ||
319 | zoom_audio_data.hs_extmute = 1; | ||
320 | zoom_audio_data.set_hs_extmute = zoom2_set_hs_extmute; | ||
321 | } | ||
310 | omap_register_i2c_bus(1, 2400, zoom_i2c_boardinfo, | 322 | omap_register_i2c_bus(1, 2400, zoom_i2c_boardinfo, |
311 | ARRAY_SIZE(zoom_i2c_boardinfo)); | 323 | ARRAY_SIZE(zoom_i2c_boardinfo)); |
312 | omap_register_i2c_bus(2, 400, NULL, 0); | 324 | omap_register_i2c_bus(2, 400, NULL, 0); |
diff --git a/arch/arm/mach-omap2/board-zoom2.c b/arch/arm/mach-omap2/board-zoom2.c index 24bbd0def64f..4ccbc32386a0 100644 --- a/arch/arm/mach-omap2/board-zoom2.c +++ b/arch/arm/mach-omap2/board-zoom2.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/platform_device.h> | 14 | #include <linux/platform_device.h> |
15 | #include <linux/input.h> | 15 | #include <linux/input.h> |
16 | #include <linux/gpio.h> | 16 | #include <linux/gpio.h> |
17 | #include <linux/i2c/twl.h> | ||
17 | 18 | ||
18 | #include <asm/mach-types.h> | 19 | #include <asm/mach-types.h> |
19 | #include <asm/mach/arch.h> | 20 | #include <asm/mach/arch.h> |
@@ -34,41 +35,6 @@ static void __init omap_zoom2_init_irq(void) | |||
34 | omap_gpio_init(); | 35 | omap_gpio_init(); |
35 | } | 36 | } |
36 | 37 | ||
37 | /* REVISIT: These audio entries can be removed once MFD code is merged */ | ||
38 | #if 0 | ||
39 | |||
40 | static struct twl4030_madc_platform_data zoom2_madc_data = { | ||
41 | .irq_line = 1, | ||
42 | }; | ||
43 | |||
44 | static struct twl4030_codec_audio_data zoom2_audio_data = { | ||
45 | .audio_mclk = 26000000, | ||
46 | }; | ||
47 | |||
48 | static struct twl4030_codec_data zoom2_codec_data = { | ||
49 | .audio_mclk = 26000000, | ||
50 | .audio = &zoom2_audio_data, | ||
51 | }; | ||
52 | |||
53 | static struct twl4030_platform_data zoom2_twldata = { | ||
54 | .irq_base = TWL4030_IRQ_BASE, | ||
55 | .irq_end = TWL4030_IRQ_END, | ||
56 | |||
57 | /* platform_data for children goes here */ | ||
58 | .bci = &zoom2_bci_data, | ||
59 | .madc = &zoom2_madc_data, | ||
60 | .usb = &zoom2_usb_data, | ||
61 | .gpio = &zoom2_gpio_data, | ||
62 | .keypad = &zoom2_kp_twl4030_data, | ||
63 | .codec = &zoom2_codec_data, | ||
64 | .vmmc1 = &zoom2_vmmc1, | ||
65 | .vmmc2 = &zoom2_vmmc2, | ||
66 | .vsim = &zoom2_vsim, | ||
67 | |||
68 | }; | ||
69 | |||
70 | #endif | ||
71 | |||
72 | #ifdef CONFIG_OMAP_MUX | 38 | #ifdef CONFIG_OMAP_MUX |
73 | static struct omap_board_mux board_mux[] __initdata = { | 39 | static struct omap_board_mux board_mux[] __initdata = { |
74 | /* WLAN IRQ - GPIO 162 */ | 40 | /* WLAN IRQ - GPIO 162 */ |
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c index b27e7cbb3f29..c5cf1ba08a6f 100644 --- a/arch/arm/mach-omap2/devices.c +++ b/arch/arm/mach-omap2/devices.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <plat/control.h> | 25 | #include <plat/control.h> |
26 | #include <plat/tc.h> | 26 | #include <plat/tc.h> |
27 | #include <plat/board.h> | 27 | #include <plat/board.h> |
28 | #include <plat/mcbsp.h> | ||
28 | #include <mach/gpio.h> | 29 | #include <mach/gpio.h> |
29 | #include <plat/mmc.h> | 30 | #include <plat/mmc.h> |
30 | #include <plat/dma.h> | 31 | #include <plat/dma.h> |
@@ -235,6 +236,43 @@ static inline void omap_init_mbox(void) { } | |||
235 | 236 | ||
236 | static inline void omap_init_sti(void) {} | 237 | static inline void omap_init_sti(void) {} |
237 | 238 | ||
239 | #if defined(CONFIG_SND_SOC) || defined(CONFIG_SND_SOC_MODULE) | ||
240 | |||
241 | static struct platform_device omap_pcm = { | ||
242 | .name = "omap-pcm-audio", | ||
243 | .id = -1, | ||
244 | }; | ||
245 | |||
246 | /* | ||
247 | * OMAP2420 has 2 McBSP ports | ||
248 | * OMAP2430 has 5 McBSP ports | ||
249 | * OMAP3 has 5 McBSP ports | ||
250 | * OMAP4 has 4 McBSP ports | ||
251 | */ | ||
252 | OMAP_MCBSP_PLATFORM_DEVICE(1); | ||
253 | OMAP_MCBSP_PLATFORM_DEVICE(2); | ||
254 | OMAP_MCBSP_PLATFORM_DEVICE(3); | ||
255 | OMAP_MCBSP_PLATFORM_DEVICE(4); | ||
256 | OMAP_MCBSP_PLATFORM_DEVICE(5); | ||
257 | |||
258 | static void omap_init_audio(void) | ||
259 | { | ||
260 | platform_device_register(&omap_mcbsp1); | ||
261 | platform_device_register(&omap_mcbsp2); | ||
262 | if (cpu_is_omap243x() || cpu_is_omap34xx() || cpu_is_omap44xx()) { | ||
263 | platform_device_register(&omap_mcbsp3); | ||
264 | platform_device_register(&omap_mcbsp4); | ||
265 | } | ||
266 | if (cpu_is_omap243x() || cpu_is_omap34xx()) | ||
267 | platform_device_register(&omap_mcbsp5); | ||
268 | |||
269 | platform_device_register(&omap_pcm); | ||
270 | } | ||
271 | |||
272 | #else | ||
273 | static inline void omap_init_audio(void) {} | ||
274 | #endif | ||
275 | |||
238 | #if defined(CONFIG_SPI_OMAP24XX) || defined(CONFIG_SPI_OMAP24XX_MODULE) | 276 | #if defined(CONFIG_SPI_OMAP24XX) || defined(CONFIG_SPI_OMAP24XX_MODULE) |
239 | 277 | ||
240 | #include <plat/mcspi.h> | 278 | #include <plat/mcspi.h> |
@@ -917,6 +955,7 @@ static int __init omap2_init_devices(void) | |||
917 | * in alphabetical order so they're easier to sort through. | 955 | * in alphabetical order so they're easier to sort through. |
918 | */ | 956 | */ |
919 | omap_hsmmc_reset(); | 957 | omap_hsmmc_reset(); |
958 | omap_init_audio(); | ||
920 | omap_init_camera(); | 959 | omap_init_camera(); |
921 | omap_init_mbox(); | 960 | omap_init_mbox(); |
922 | omap_init_mcspi(); | 961 | omap_init_mcspi(); |
diff --git a/arch/arm/mach-omap2/include/mach/board-zoom.h b/arch/arm/mach-omap2/include/mach/board-zoom.h index 3af69d2c3dcd..80591fda8f8f 100644 --- a/arch/arm/mach-omap2/include/mach/board-zoom.h +++ b/arch/arm/mach-omap2/include/mach/board-zoom.h | |||
@@ -9,3 +9,5 @@ | |||
9 | extern void __init board_nand_init(struct mtd_partition *, u8 nr_parts, u8 cs); | 9 | extern void __init board_nand_init(struct mtd_partition *, u8 nr_parts, u8 cs); |
10 | extern int __init zoom_debugboard_init(void); | 10 | extern int __init zoom_debugboard_init(void); |
11 | extern void __init zoom_peripherals_init(void); | 11 | extern void __init zoom_peripherals_init(void); |
12 | |||
13 | #define ZOOM2_HEADSET_EXTMUTE_GPIO 153 | ||