diff options
Diffstat (limited to 'arch/arm/plat-omap/include/mach/eac.h')
-rw-r--r-- | arch/arm/plat-omap/include/mach/eac.h | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/arch/arm/plat-omap/include/mach/eac.h b/arch/arm/plat-omap/include/mach/eac.h deleted file mode 100644 index 9e62cf030270..000000000000 --- a/arch/arm/plat-omap/include/mach/eac.h +++ /dev/null | |||
@@ -1,100 +0,0 @@ | |||
1 | /* | ||
2 | * arch/arm/plat-omap/include/mach2/eac.h | ||
3 | * | ||
4 | * Defines for Enhanced Audio Controller | ||
5 | * | ||
6 | * Contact: Jarkko Nikula <jarkko.nikula@nokia.com> | ||
7 | * | ||
8 | * Copyright (C) 2006 Nokia Corporation | ||
9 | * Copyright (C) 2004 Texas Instruments, Inc. | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License | ||
13 | * version 2 as published by the Free Software Foundation. | ||
14 | * | ||
15 | * This program is distributed in the hope that it will be useful, but | ||
16 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
18 | * General Public License for more details. | ||
19 | * | ||
20 | * You should have received a copy of the GNU General Public License | ||
21 | * along with this program; if not, write to the Free Software | ||
22 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA | ||
23 | * 02110-1301 USA | ||
24 | * | ||
25 | */ | ||
26 | |||
27 | #ifndef __ASM_ARM_ARCH_OMAP2_EAC_H | ||
28 | #define __ASM_ARM_ARCH_OMAP2_EAC_H | ||
29 | |||
30 | #include <mach/io.h> | ||
31 | #include <mach/hardware.h> | ||
32 | #include <asm/irq.h> | ||
33 | |||
34 | #include <sound/core.h> | ||
35 | |||
36 | /* master codec clock source */ | ||
37 | #define EAC_MCLK_EXT_MASK 0x100 | ||
38 | enum eac_mclk_src { | ||
39 | EAC_MCLK_INT_11290000, /* internal 96 MHz / 8.5 = 11.29 Mhz */ | ||
40 | EAC_MCLK_EXT_11289600 = EAC_MCLK_EXT_MASK, | ||
41 | EAC_MCLK_EXT_12288000, | ||
42 | EAC_MCLK_EXT_2x11289600, | ||
43 | EAC_MCLK_EXT_2x12288000, | ||
44 | }; | ||
45 | |||
46 | /* codec port interface mode */ | ||
47 | enum eac_codec_mode { | ||
48 | EAC_CODEC_PCM, | ||
49 | EAC_CODEC_AC97, | ||
50 | EAC_CODEC_I2S_MASTER, /* codec port, I.e. EAC is the master */ | ||
51 | EAC_CODEC_I2S_SLAVE, | ||
52 | }; | ||
53 | |||
54 | /* configuration structure for I2S mode */ | ||
55 | struct eac_i2s_conf { | ||
56 | /* if enabled, then first data slot (left channel) is signaled as | ||
57 | * positive level of frame sync EAC.AC_FS */ | ||
58 | unsigned polarity_changed_mode:1; | ||
59 | /* if enabled, then serial data starts one clock cycle after the | ||
60 | * of EAC.AC_FS for first audio slot */ | ||
61 | unsigned sync_delay_enable:1; | ||
62 | }; | ||
63 | |||
64 | /* configuration structure for EAC codec port */ | ||
65 | struct eac_codec { | ||
66 | enum eac_mclk_src mclk_src; | ||
67 | |||
68 | enum eac_codec_mode codec_mode; | ||
69 | union { | ||
70 | struct eac_i2s_conf i2s; | ||
71 | } codec_conf; | ||
72 | |||
73 | int default_rate; /* audio sampling rate */ | ||
74 | |||
75 | int (* set_power)(void *private_data, int dac, int adc); | ||
76 | int (* register_controls)(void *private_data, | ||
77 | struct snd_card *card); | ||
78 | const char *short_name; | ||
79 | |||
80 | void *private_data; | ||
81 | }; | ||
82 | |||
83 | /* structure for passing platform dependent data to the EAC driver */ | ||
84 | struct eac_platform_data { | ||
85 | int (* init)(struct device *eac_dev); | ||
86 | void (* cleanup)(struct device *eac_dev); | ||
87 | /* these callbacks are used to configure & control external MCLK | ||
88 | * source. NULL if not used */ | ||
89 | int (* enable_ext_clocks)(struct device *eac_dev); | ||
90 | void (* disable_ext_clocks)(struct device *eac_dev); | ||
91 | }; | ||
92 | |||
93 | extern void omap_init_eac(struct eac_platform_data *pdata); | ||
94 | |||
95 | extern int eac_register_codec(struct device *eac_dev, struct eac_codec *codec); | ||
96 | extern void eac_unregister_codec(struct device *eac_dev); | ||
97 | |||
98 | extern int eac_set_mode(struct device *eac_dev, int play, int rec); | ||
99 | |||
100 | #endif /* __ASM_ARM_ARCH_OMAP2_EAC_H */ | ||