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__ */
|
---|