diff options
author | Paul Walmsley <paul@pwsan.com> | 2013-02-10 13:22:23 -0500 |
---|---|---|
committer | Paul Walmsley <paul@pwsan.com> | 2013-02-10 13:22:23 -0500 |
commit | cf8ba17154b0977e9195b160aef6c934270a08c1 (patch) | |
tree | a88cfcfb05659c2f29da3313fc86f94fa29d9b0c /include/sound | |
parent | 6d266f63a11bce427504d203834df3c0bb9be9a5 (diff) |
ASoC: TI AESS: add autogating-enable function, callable from architecture code
Add a basic header file for the TI AESS IP block, located in the OMAP4
Audio Back-End subsystem.
Currently, this header file only contains a function to enable the
AESS internal clock auto-gating. This will be used by a subsequent
patch to ensure that the AESS won't block the entire chip
low-power-idle mode. We wish to be able to place the AESS into idle
even when no AESS driver has been compiled in.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Liam Girdwood <lrg@ti.com>
Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Péter Ujfalusi <peter.ujfalusi@ti.com>
Cc: Tony Lindgren <tony@atomide.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'include/sound')
-rw-r--r-- | include/sound/aess.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/include/sound/aess.h b/include/sound/aess.h new file mode 100644 index 000000000000..cee0d09fadbd --- /dev/null +++ b/include/sound/aess.h | |||
@@ -0,0 +1,53 @@ | |||
1 | /* | ||
2 | * AESS IP block reset | ||
3 | * | ||
4 | * Copyright (C) 2012 Texas Instruments, Inc. | ||
5 | * Paul Walmsley | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or | ||
8 | * modify it under the terms of the GNU General Public License as | ||
9 | * published by the Free Software Foundation version 2. | ||
10 | * | ||
11 | * This program is distributed "as is" WITHOUT ANY WARRANTY of any | ||
12 | * kind, whether express or implied; without even the implied warranty | ||
13 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA | ||
19 | * 02110-1301 USA | ||
20 | */ | ||
21 | #ifndef __SOUND_AESS_H__ | ||
22 | #define __SOUND_AESS_H__ | ||
23 | |||
24 | #include <linux/kernel.h> | ||
25 | #include <linux/io.h> | ||
26 | |||
27 | /* | ||
28 | * AESS_AUTO_GATING_ENABLE_OFFSET: offset in bytes of the AESS IP | ||
29 | * block's AESS_AUTO_GATING_ENABLE__1 register from the IP block's | ||
30 | * base address | ||
31 | */ | ||
32 | #define AESS_AUTO_GATING_ENABLE_OFFSET 0x07c | ||
33 | |||
34 | /* Register bitfields in the AESS_AUTO_GATING_ENABLE__1 register */ | ||
35 | #define AESS_AUTO_GATING_ENABLE_SHIFT 0 | ||
36 | |||
37 | /** | ||
38 | * aess_enable_autogating - enable AESS internal autogating | ||
39 | * @oh: struct omap_hwmod * | ||
40 | * | ||
41 | * Enable internal autogating on the AESS. This allows the AESS to | ||
42 | * indicate that it is idle to the OMAP PRCM. Returns 0. | ||
43 | */ | ||
44 | static inline void aess_enable_autogating(void __iomem *base) | ||
45 | { | ||
46 | u32 v; | ||
47 | |||
48 | /* Set AESS_AUTO_GATING_ENABLE__1.ENABLE to allow idle entry */ | ||
49 | v = 1 << AESS_AUTO_GATING_ENABLE_SHIFT; | ||
50 | writel(v, base + AESS_AUTO_GATING_ENABLE_OFFSET); | ||
51 | } | ||
52 | |||
53 | #endif /* __SOUND_AESS_H__ */ | ||