]> git.sur5r.net Git - freertos/blob - Demo/CORTEX_LM3S316_IAR/hw_include/sysctl.h
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@14 1d2547de-c912-0410-9cb9...
[freertos] / Demo / CORTEX_LM3S316_IAR / hw_include / sysctl.h
1 //*****************************************************************************\r
2 //\r
3 // sysctl.h - Prototypes for the system control driver.\r
4 //\r
5 // Copyright (c) 2005,2006 Luminary Micro, Inc.  All rights reserved.\r
6 //\r
7 // Software License Agreement\r
8 //\r
9 // Luminary Micro, Inc. (LMI) is supplying this software for use solely and\r
10 // exclusively on LMI's Stellaris Family of microcontroller products.\r
11 //\r
12 // The software is owned by LMI and/or its suppliers, and is protected under\r
13 // applicable copyright laws.  All rights are reserved.  Any use in violation\r
14 // of the foregoing restrictions may subject the user to criminal sanctions\r
15 // under applicable laws, as well as to civil liability for the breach of the\r
16 // terms and conditions of this license.\r
17 //\r
18 // THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED\r
19 // OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF\r
20 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.\r
21 // LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR\r
22 // CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.\r
23 //\r
24 // This is part of revision 635 of the Stellaris Driver Library.\r
25 //\r
26 //*****************************************************************************\r
27 \r
28 #ifndef __SYSCTL_H__\r
29 #define __SYSCTL_H__\r
30 \r
31 #ifdef __cplusplus\r
32 extern "C"\r
33 {\r
34 #endif\r
35 \r
36 //*****************************************************************************\r
37 //\r
38 // The following are values that can be passed to the\r
39 // SysCtlPeripheralPresent(), SysCtlPeripheralEnable(),\r
40 // SysCtlPeripheralDisable(), and SysCtlPeripheralReset() APIs as the\r
41 // ulPeripheral parameter.  The peripherals in the fourth group (upper nibble\r
42 // is 3) can only be used with the SysCtlPeripheralPresent() API.\r
43 //\r
44 //*****************************************************************************\r
45 #define SYSCTL_PERIPH_PWM       0x00100000  // PWM\r
46 #define SYSCTL_PERIPH_ADC       0x00010000  // ADC\r
47 #define SYSCTL_PERIPH_WDOG      0x00000008  // Watchdog\r
48 #define SYSCTL_PERIPH_UART0     0x10000001  // UART 0\r
49 #define SYSCTL_PERIPH_UART1     0x10000002  // UART 1\r
50 #define SYSCTL_PERIPH_SSI       0x10000010  // SSI\r
51 #define SYSCTL_PERIPH_I2C       0x10001000  // I2C\r
52 #define SYSCTL_PERIPH_TIMER0    0x10010000  // Timer 0\r
53 #define SYSCTL_PERIPH_TIMER1    0x10020000  // Timer 1\r
54 #define SYSCTL_PERIPH_TIMER2    0x10040000  // Timer 2\r
55 #define SYSCTL_PERIPH_COMP0     0x11000000  // Analog comparator 0\r
56 #define SYSCTL_PERIPH_COMP1     0x12000000  // Analog comparator 1\r
57 #define SYSCTL_PERIPH_COMP2     0x14000000  // Analog comparator 2\r
58 #define SYSCTL_PERIPH_GPIOA     0x20000001  // GPIO A\r
59 #define SYSCTL_PERIPH_GPIOB     0x20000002  // GPIO B\r
60 #define SYSCTL_PERIPH_GPIOC     0x20000004  // GPIO C\r
61 #define SYSCTL_PERIPH_GPIOD     0x20000008  // GPIO D\r
62 #define SYSCTL_PERIPH_GPIOE     0x20000010  // GPIO E\r
63 #define SYSCTL_PERIPH_MPU       0x30000080  // Cortex M3 MPU\r
64 #define SYSCTL_PERIPH_TEMP      0x30000020  // Temperature sensor\r
65 #define SYSCTL_PERIPH_PLL       0x30000010  // PLL\r
66 \r
67 //*****************************************************************************\r
68 //\r
69 // The following are values that can be passed to the SysCtlPinPresent() API\r
70 // as the ulPin parameter.\r
71 //\r
72 //*****************************************************************************\r
73 #define SYSCTL_PIN_PWM0         0x00000001  // PWM0 pin\r
74 #define SYSCTL_PIN_PWM1         0x00000002  // PWM1 pin\r
75 #define SYSCTL_PIN_PWM2         0x00000004  // PWM2 pin\r
76 #define SYSCTL_PIN_PWM3         0x00000008  // PWM3 pin\r
77 #define SYSCTL_PIN_PWM4         0x00000010  // PWM4 pin\r
78 #define SYSCTL_PIN_PWM5         0x00000020  // PWM5 pin\r
79 #define SYSCTL_PIN_C0MINUS      0x00000040  // C0- pin\r
80 #define SYSCTL_PIN_C0PLUS       0x00000080  // C0+ pin\r
81 #define SYSCTL_PIN_C0O          0x00000100  // C0o pin\r
82 #define SYSCTL_PIN_C1MINUS      0x00000200  // C1- pin\r
83 #define SYSCTL_PIN_C1PLUS       0x00000400  // C1+ pin\r
84 #define SYSCTL_PIN_C1O          0x00000800  // C1o pin\r
85 #define SYSCTL_PIN_C2MINUS      0x00001000  // C2- pin\r
86 #define SYSCTL_PIN_C2PLUS       0x00002000  // C2+ pin\r
87 #define SYSCTL_PIN_C2O          0x00004000  // C2o pin\r
88 #define SYSCTL_PIN_ADC0         0x00010000  // ADC0 pin\r
89 #define SYSCTL_PIN_ADC1         0x00020000  // ADC1 pin\r
90 #define SYSCTL_PIN_ADC2         0x00040000  // ADC2 pin\r
91 #define SYSCTL_PIN_ADC3         0x00080000  // ADC3 pin\r
92 #define SYSCTL_PIN_CCP0         0x01000000  // CCP0 pin\r
93 #define SYSCTL_PIN_CCP1         0x02000000  // CCP1 pin\r
94 #define SYSCTL_PIN_CCP2         0x04000000  // CCP2 pin\r
95 #define SYSCTL_PIN_CCP3         0x08000000  // CCP3 pin\r
96 #define SYSCTL_PIN_CCP4         0x10000000  // CCP4 pin\r
97 #define SYSCTL_PIN_CCP5         0x20000000  // CCP5 pin\r
98 #define SYSCTL_PIN_32KHZ        0x80000000  // 32kHz pin\r
99 \r
100 //*****************************************************************************\r
101 //\r
102 // The following are values that can be passed to the SysCtlLDOSet() API as\r
103 // the ulVoltage value, or returned by the SysCtlLDOGet() API.\r
104 //\r
105 //*****************************************************************************\r
106 #define SYSCTL_LDO_2_25V        0x00000005  // LDO output of 2.25V\r
107 #define SYSCTL_LDO_2_30V        0x00000004  // LDO output of 2.30V\r
108 #define SYSCTL_LDO_2_35V        0x00000003  // LDO output of 2.35V\r
109 #define SYSCTL_LDO_2_40V        0x00000002  // LDO output of 2.40V\r
110 #define SYSCTL_LDO_2_45V        0x00000001  // LDO output of 2.45V\r
111 #define SYSCTL_LDO_2_50V        0x00000000  // LDO output of 2.50V\r
112 #define SYSCTL_LDO_2_55V        0x0000001f  // LDO output of 2.55V\r
113 #define SYSCTL_LDO_2_60V        0x0000001e  // LDO output of 2.60V\r
114 #define SYSCTL_LDO_2_65V        0x0000001d  // LDO output of 2.65V\r
115 #define SYSCTL_LDO_2_70V        0x0000001c  // LDO output of 2.70V\r
116 #define SYSCTL_LDO_2_75V        0x0000001b  // LDO output of 2.75V\r
117 \r
118 //*****************************************************************************\r
119 //\r
120 // The following are values that can be passed to the SysCtlLDOConfigSet() API.\r
121 //\r
122 //*****************************************************************************\r
123 #define SYSCTL_LDOCFG_ARST      0x00000001  // Allow LDO failure to reset\r
124 #define SYSCTL_LDOCFG_NORST     0x00000000  // Do not reset on LDO failure\r
125 \r
126 //*****************************************************************************\r
127 //\r
128 // The following are values that can be passed to the SysCtlIntEnable(),\r
129 // SysCtlIntDisable(), and SysCtlIntClear() APIs, or returned in the bit mask\r
130 // by the SysCtlIntStatus() API.\r
131 //\r
132 //*****************************************************************************\r
133 #define SYSCTL_INT_PLL_LOCK     0x00000040  // PLL lock interrupt\r
134 #define SYSCTL_INT_CUR_LIMIT    0x00000020  // Current limit interrupt\r
135 #define SYSCTL_INT_IOSC_FAIL    0x00000010  // Internal oscillator failure int\r
136 #define SYSCTL_INT_MOSC_FAIL    0x00000008  // Main oscillator failure int\r
137 #define SYSCTL_INT_POR          0x00000004  // Power on reset interrupt\r
138 #define SYSCTL_INT_BOR          0x00000002  // Brown out interrupt\r
139 #define SYSCTL_INT_PLL_FAIL     0x00000001  // PLL failure interrupt\r
140 \r
141 //*****************************************************************************\r
142 //\r
143 // The following are values that can be passed to the SysCtlResetCauseClear()\r
144 // API or returned by the SysCtlResetCauseGet() API.\r
145 //\r
146 //*****************************************************************************\r
147 #define SYSCTL_CAUSE_LDO        0x00000020  // LDO power not OK reset\r
148 #define SYSCTL_CAUSE_SW         0x00000010  // Software reset\r
149 #define SYSCTL_CAUSE_WDOG       0x00000008  // Watchdog reset\r
150 #define SYSCTL_CAUSE_BOR        0x00000004  // Brown-out reset\r
151 #define SYSCTL_CAUSE_POR        0x00000002  // Power on reset\r
152 #define SYSCTL_CAUSE_EXT        0x00000001  // External reset\r
153 \r
154 //*****************************************************************************\r
155 //\r
156 // The following are values that can be passed to the SysCtlBrownOutConfigSet()\r
157 // API as the ulConfig parameter.\r
158 //\r
159 //*****************************************************************************\r
160 #define SYSCTL_BOR_RESET        0x00000002  // Reset instead of interrupting\r
161 #define SYSCTL_BOR_RESAMPLE     0x00000001  // Resample BOR before asserting\r
162 \r
163 //*****************************************************************************\r
164 //\r
165 // The following are values that can be passed to the SysCtlPWMClockSet() API\r
166 // as the ulConfig parameter, and can be returned by the SysCtlPWMClockGet()\r
167 // API.\r
168 //\r
169 //*****************************************************************************\r
170 #define SYSCTL_PWMDIV_1         0x00000000  // PWM clock is processor clock /1\r
171 #define SYSCTL_PWMDIV_2         0x00100000  // PWM clock is processor clock /2\r
172 #define SYSCTL_PWMDIV_4         0x00120000  // PWM clock is processor clock /4\r
173 #define SYSCTL_PWMDIV_8         0x00140000  // PWM clock is processor clock /8\r
174 #define SYSCTL_PWMDIV_16        0x00160000  // PWM clock is processor clock /16\r
175 #define SYSCTL_PWMDIV_32        0x00180000  // PWM clock is processor clock /32\r
176 #define SYSCTL_PWMDIV_64        0x001A0000  // PWM clock is processor clock /64\r
177 \r
178 //*****************************************************************************\r
179 //\r
180 // The following are values that can be passed to the SysCtlClockSet() API as\r
181 // the ulConfig parameter.\r
182 //\r
183 //*****************************************************************************\r
184 #define SYSCTL_SYSDIV_1         0x07800000  // Processor clock is osc/pll /1\r
185 #define SYSCTL_SYSDIV_2         0x00C00000  // Processor clock is osc/pll /2\r
186 #define SYSCTL_SYSDIV_3         0x01400000  // Processor clock is osc/pll /3\r
187 #define SYSCTL_SYSDIV_4         0x01C00000  // Processor clock is osc/pll /4\r
188 #define SYSCTL_SYSDIV_5         0x02400000  // Processor clock is osc/pll /5\r
189 #define SYSCTL_SYSDIV_6         0x02C00000  // Processor clock is osc/pll /6\r
190 #define SYSCTL_SYSDIV_7         0x03400000  // Processor clock is osc/pll /7\r
191 #define SYSCTL_SYSDIV_8         0x03C00000  // Processor clock is osc/pll /8\r
192 #define SYSCTL_SYSDIV_9         0x04400000  // Processor clock is osc/pll /9\r
193 #define SYSCTL_SYSDIV_10        0x04C00000  // Processor clock is osc/pll /10\r
194 #define SYSCTL_SYSDIV_11        0x05400000  // Processor clock is osc/pll /11\r
195 #define SYSCTL_SYSDIV_12        0x05C00000  // Processor clock is osc/pll /12\r
196 #define SYSCTL_SYSDIV_13        0x06400000  // Processor clock is osc/pll /13\r
197 #define SYSCTL_SYSDIV_14        0x06C00000  // Processor clock is osc/pll /14\r
198 #define SYSCTL_SYSDIV_15        0x07400000  // Processor clock is osc/pll /15\r
199 #define SYSCTL_SYSDIV_16        0x07C00000  // Processor clock is osc/pll /16\r
200 #define SYSCTL_USE_PLL          0x00000000  // System clock is the PLL clock\r
201 #define SYSCTL_USE_OSC          0x00003800  // System clock is the osc clock\r
202 #define SYSCTL_XTAL_3_57MHZ     0x00000100  // External crystal is 3.579545MHz\r
203 #define SYSCTL_XTAL_3_68MHZ     0x00000140  // External crystal is 3.6864MHz\r
204 #define SYSCTL_XTAL_4MHZ        0x00000180  // External crystal is 4MHz\r
205 #define SYSCTL_XTAL_4_09MHZ     0x000001C0  // External crystal is 4.096MHz\r
206 #define SYSCTL_XTAL_4_91MHZ     0x00000200  // External crystal is 4.9152MHz\r
207 #define SYSCTL_XTAL_5MHZ        0x00000240  // External crystal is 5MHz\r
208 #define SYSCTL_XTAL_5_12MHZ     0x00000280  // External crystal is 5.12MHz\r
209 #define SYSCTL_XTAL_6MHZ        0x000002C0  // External crystal is 6MHz\r
210 #define SYSCTL_XTAL_6_14MHZ     0x00000300  // External crystal is 6.144MHz\r
211 #define SYSCTL_XTAL_7_37MHZ     0x00000340  // External crystal is 7.3728MHz\r
212 #define SYSCTL_XTAL_8MHZ        0x00000380  // External crystal is 8MHz\r
213 #define SYSCTL_XTAL_8_19MHZ     0x000003C0  // External crystal is 8.192MHz\r
214 #define SYSCTL_OSC_MAIN         0x00000000  // Oscillator source is main osc\r
215 #define SYSCTL_OSC_INT          0x00000010  // Oscillator source is int. osc\r
216 #define SYSCTL_OSC_INT4         0x00000020  // Oscillator source is int. osc /4\r
217 #define SYSCTL_INT_OSC_DIS      0x00000002  // Disable internal oscillator\r
218 #define SYSCTL_MAIN_OSC_DIS     0x00000001  // Disable main oscillator\r
219 \r
220 //*****************************************************************************\r
221 //\r
222 // Prototypes for the APIs.\r
223 //\r
224 //*****************************************************************************\r
225 extern unsigned long SysCtlSRAMSizeGet(void);\r
226 extern unsigned long SysCtlFlashSizeGet(void);\r
227 extern tBoolean SysCtlPinPresent(unsigned long ulPin);\r
228 extern tBoolean SysCtlPeripheralPresent(unsigned long ulPeripheral);\r
229 extern void SysCtlPeripheralReset(unsigned long ulPeripheral);\r
230 extern void SysCtlPeripheralEnable(unsigned long ulPeripheral);\r
231 extern void SysCtlPeripheralDisable(unsigned long ulPeripheral);\r
232 extern void SysCtlPeripheralSleepEnable(unsigned long ulPeripheral);\r
233 extern void SysCtlPeripheralSleepDisable(unsigned long ulPeripheral);\r
234 extern void SysCtlPeripheralDeepSleepEnable(unsigned long ulPeripheral);\r
235 extern void SysCtlPeripheralDeepSleepDisable(unsigned long ulPeripheral);\r
236 extern void SysCtlPeripheralClockGating(tBoolean bEnable);\r
237 extern void SysCtlIntRegister(void (*pfnHandler)(void));\r
238 extern void SysCtlIntUnregister(void);\r
239 extern void SysCtlIntEnable(unsigned long ulInts);\r
240 extern void SysCtlIntDisable(unsigned long ulInts);\r
241 extern void SysCtlIntClear(unsigned long ulInts);\r
242 extern unsigned long SysCtlIntStatus(tBoolean bMasked);\r
243 extern void SysCtlLDOSet(unsigned long ulVoltage);\r
244 extern unsigned long SysCtlLDOGet(void);\r
245 extern void SysCtlLDOConfigSet(unsigned long ulConfig);\r
246 extern void SysCtlReset(void);\r
247 extern void SysCtlSleep(void);\r
248 extern void SysCtlDeepSleep(void);\r
249 extern unsigned long SysCtlResetCauseGet(void);\r
250 extern void SysCtlResetCauseClear(unsigned long ulCauses);\r
251 extern void SysCtlBrownOutConfigSet(unsigned long ulConfig,\r
252                                     unsigned long ulDelay);\r
253 extern void SysCtlClockSet(unsigned long ulConfig);\r
254 extern unsigned long SysCtlClockGet(void);\r
255 extern void SysCtlPWMClockSet(unsigned long ulConfig);\r
256 extern unsigned long SysCtlPWMClockGet(void);\r
257 extern void SysCtlIOSCVerificationSet(tBoolean bEnable);\r
258 extern void SysCtlMOSCVerificationSet(tBoolean bEnable);\r
259 extern void SysCtlPLLVerificationSet(tBoolean bEnable);\r
260 extern void SysCtlClkVerificationClear(void);\r
261 \r
262 #ifdef __cplusplus\r
263 }\r
264 #endif\r
265 \r
266 #endif // __SYSCTL_H__\r