[processor-sdk/performance-audio-sr.git] / psdk_cust / pdk_k2g_1_0_1_0_eng / packages / ti / csl / arch / m4 / ipu_wugen.h
1 /*
2 * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the
14 * distribution.
15 *
16 * Neither the name of Texas Instruments Incorporated nor the names of
17 * its contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 *
32 */
34 /**
35 * \file ipu_wugen.h
36 *
37 * \brief This file contains the API prototypes for configuring MPU_WUGEN for
38 * ARM Cortex-M4
39 *
40 **/
42 #ifndef IPU_WUGEN_H
43 #define IPU_WUGEN_H
45 /* ========================================================================== */
46 /* Include Files */
47 /* ========================================================================== */
49 /* None */
51 #ifdef __cplusplus
52 extern "C" {
53 #endif
55 /* ========================================================================== */
56 /* Macros & Typedefs */
57 /* ========================================================================== */
59 #define IPU_WUGEN_NUM_INTR_INTERNAL (16U)
60 /**< \brief Number of Internal Interrupts IPU can service */
62 #define IPU_WUGEN_FIRST_EXTERNAL_INT_NUM (23U)
63 /**< \brief First interrupt number which is external */
65 /* ========================================================================== */
66 /* Structures and Enums */
67 /* ========================================================================== */
69 /* None */
71 /* ========================================================================== */
72 /* Global Variables */
73 /* ========================================================================== */
75 /* None */
77 /* ========================================================================== */
78 /* Function Declarations */
79 /* ========================================================================== */
81 /**
82 * \brief This API is used to initialize MPU_WUGEN. All wakeup events will be
83 * disabled after initialization.
84 *
85 * \param None
86 *
87 * \return None.
88 *
89 **/
90 void IPU_WUGEN_Init(void);
92 /**
93 * \brief Disables all wakeup events for CPU.
94 *
95 * \param None
96 *
97 * \return None
98 *
99 **/
100 void IPU_WUGEN_DisableAll(void);
102 /**
103 * \brief Configure wakeup events by looking up the CPU0 interrupt settings.
104 *
105 * \param None
106 *
107 * \return None
108 *
109 **/
110 void IPU_WUGEN_Interrupt_Lookup(void);
112 /**
113 * \brief This API enables the CPU0 wakeup event for requested interrupt.
114 *
115 * \param intrNum - Interrupt number
116 *
117 * \return None.
118 *
119 **/
120 void IPU_WUGEN_Enable(uint16_t intrNum);
122 /**
123 * \brief This API disables the CPU0 wakeup event for requested interrupt.
124 *
125 * \param intrNum - Interrupt number
126 *
127 * \return None.
128 *
129 **/
130 void IPU_WUGEN_Disable(uint16_t intrNum);
132 #ifdef __cplusplus
133 }
134 #endif
135 #endif
136 /********************************* End of file ******************************/