CC26xx Driver Library |

- Main Page
- Related Pages
- CC26xx APIs
- Register Descriptions
- Online Resources

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ioc.h
Go to the documentation of this file.
1 /******************************************************************************
2 * Filename: ioc.h
3 * Revised: 2015-01-14 12:12:44 +0100 (on, 14 jan 2015)
4 * Revision: 42373
5 *
6 * Description: Defines and prototypes for the IO Controller.
7 *
8 * Copyright (c) 2015, Texas Instruments Incorporated
9 * All rights reserved.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions are met:
13 *
14 * 1) Redistributions of source code must retain the above copyright notice,
15 * this list of conditions and the following disclaimer.
16 *
17 * 2) Redistributions in binary form must reproduce the above copyright notice,
18 * this list of conditions and the following disclaimer in the documentation
19 * and/or other materials provided with the distribution.
20 *
21 * 3) Neither the name of the ORGANIZATION nor the names of its contributors may
22 * be used to endorse or promote products derived from this software without
23 * specific prior written permission.
24 *
25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
29 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 * POSSIBILITY OF SUCH DAMAGE.
36 *
37 ******************************************************************************/
38
39 //*****************************************************************************
40 //
43 //
44 //*****************************************************************************
45
46 #ifndef __IOC_H__
47 #define __IOC_H__
48
49 //*****************************************************************************
50 //
51 // If building with a C++ compiler, make all of the definitions in this header
52 // have a C binding.
53 //
54 //*****************************************************************************
55 #ifdef __cplusplus
56 extern "C"
57 {
58 #endif
59
60 #include <stdbool.h>
61 #include <stdint.h>
62 #include <inc/hw_types.h>
63 #include <inc/hw_memmap.h>
64 #include <inc/hw_ioc.h>
65 #include <inc/hw_ints.h>
66 #include <driverlib/interrupt.h>
67 #include <driverlib/debug.h>
68 #include <driverlib/gpio.h>
69
70 //*****************************************************************************
71 //
72 // Support for DriverLib in ROM:
73 // This section renames all functions that are not "static inline", so that
74 // calling these functions will default to implementation in flash. At the end
75 // of this file a second renaming will change the defaults to implementation in
76 // ROM for available functions.
77 //
78 // To force use of the implementation in flash, e.g. for debugging:
79 // - Globally: Define DRIVERLIB_NOROM at project level
80 // - Per function: Use prefix "NOROM_" when calling the function
81 //
82 // Do not define DRIVERLIB_GENERATE_ROM!
83 //
84 //*****************************************************************************
85 #ifndef DRIVERLIB_GENERATE_ROM
86 #define IOCPortConfigureSet NOROM_IOCPortConfigureSet
87 #define IOCPortConfigureGet NOROM_IOCPortConfigureGet
88 #define IOCIOShutdownSet NOROM_IOCIOShutdownSet
89 #define IOCIOJTagSet NOROM_IOCIOJTagSet
90 #define IOCIOModeSet NOROM_IOCIOModeSet
91 #define IOCIOIntSet NOROM_IOCIOIntSet
92 #define IOCIOPortPullSet NOROM_IOCIOPortPullSet
93 #define IOCIOHystSet NOROM_IOCIOHystSet
94 #define IOCIOInputSet NOROM_IOCIOInputSet
95 #define IOCIOSlewCtrlSet NOROM_IOCIOSlewCtrlSet
96 #define IOCIODrvStrengthSet NOROM_IOCIODrvStrengthSet
97 #define IOCIOPortIdSet NOROM_IOCIOPortIdSet
98 #define IOCIntEnable NOROM_IOCIntEnable
99 #define IOCIntDisable NOROM_IOCIntDisable
100 #define IOCPinTypeGpioInput NOROM_IOCPinTypeGpioInput
101 #define IOCPinTypeGpioOutput NOROM_IOCPinTypeGpioOutput
102 #define IOCPinTypeUart NOROM_IOCPinTypeUart
103 #define IOCPinTypeSsiMaster NOROM_IOCPinTypeSsiMaster
104 #define IOCPinTypeSsiSlave NOROM_IOCPinTypeSsiSlave
105 #define IOCPinTypeI2c NOROM_IOCPinTypeI2c
106 #define IOCPinTypeSpis NOROM_IOCPinTypeSpis
107 #define IOCPinTypeAux NOROM_IOCPinTypeAux
108 #endif
109
110 //*****************************************************************************
111 //
112 // Number of IOs (max. total of 32)
113 //
114 //*****************************************************************************
115 #define NUM_IO_MAX 32
116
117 //*****************************************************************************
118 //
119 // The following fields are IO Id for the IOC module
120 //
121 //*****************************************************************************
122 #define IOID_0 0x00000000 // IO Id 0
123 #define IOID_1 0x00000001 // IO Id 1
124 #define IOID_2 0x00000002 // IO Id 2
125 #define IOID_3 0x00000003 // IO Id 3
126 #define IOID_4 0x00000004 // IO Id 4
127 #define IOID_5 0x00000005 // IO Id 5
128 #define IOID_6 0x00000006 // IO Id 6
129 #define IOID_7 0x00000007 // IO Id 7
130 #define IOID_8 0x00000008 // IO Id 8
131 #define IOID_9 0x00000009 // IO Id 9
132 #define IOID_10 0x0000000A // IO Id 10
133 #define IOID_11 0x0000000B // IO Id 11
134 #define IOID_12 0x0000000C // IO Id 12
135 #define IOID_13 0x0000000D // IO Id 13
136 #define IOID_14 0x0000000E // IO Id 14
137 #define IOID_15 0x0000000F // IO Id 15
138 #define IOID_16 0x00000010 // IO Id 16
139 #define IOID_17 0x00000011 // IO Id 17
140 #define IOID_18 0x00000012 // IO Id 18
141 #define IOID_19 0x00000013 // IO Id 19
142 #define IOID_20 0x00000014 // IO Id 20
143 #define IOID_21 0x00000015 // IO Id 21
144 #define IOID_22 0x00000016 // IO Id 22
145 #define IOID_23 0x00000017 // IO Id 23
146 #define IOID_24 0x00000018 // IO Id 24
147 #define IOID_25 0x00000019 // IO Id 25
148 #define IOID_26 0x0000001A // IO Id 26
149 #define IOID_27 0x0000001B // IO Id 27
150 #define IOID_28 0x0000001C // IO Id 28
151 #define IOID_29 0x0000001D // IO Id 29
152 #define IOID_30 0x0000001E // IO Id 30
153 #define IOID_31 0x0000001F // IO Id 31
154 #define IOID_UNUSED 0xFFFFFFFF // Unsued IO Id
155
156 #define IOC_IOID_MASK 0x000000FF // IOC IO Id bit mask
157
158 //*****************************************************************************
159 //
160 // Number of IO ports
161 //
162 //*****************************************************************************
163 #define NUM_IO_PORTS 56
164
165 //*****************************************************************************
166 //
167 // IOC Peripheral Port Mapping
168 //
169 //*****************************************************************************
170 #define IOC_PORT_GPIO 0x00000000 // Default general purpose IO usage
171 #define IOC_PORT_AON_SCS 0x00000001 // AON SPI-S SCS Pin
172 #define IOC_PORT_AON_SCK 0x00000002 // AON SPI-S SCK Pin
173 #define IOC_PORT_AON_SDI 0x00000003 // AON SPI-S SDI Pin
174 #define IOC_PORT_AON_SDO 0x00000004 // AON SPI-S SDO Pin
175 #define IOC_PORT_AON_CLK32K 0x00000007 // AON External 32kHz clock
176 #define IOC_PORT_AUX_IO 0x00000008 // AUX IO Pin
177 #define IOC_PORT_MCU_SSI0_RX 0x00000009 // MCU SSI0 Receive Pin
178 #define IOC_PORT_MCU_SSI0_TX 0x0000000A // MCU SSI0 Transmit Pin
179 #define IOC_PORT_MCU_SSI0_FSS 0x0000000B // MCU SSI0 FSS Pin
180 #define IOC_PORT_MCU_SSI0_CLK 0x0000000C // MCU SSI0 Clock Pin
181 #define IOC_PORT_MCU_I2C_MSSDA 0x0000000D // MCU I2C Data Pin
182 #define IOC_PORT_MCU_I2C_MSSCL 0x0000000E // MCU I2C Clock Pin
183 #define IOC_PORT_MCU_UART0_RX 0x0000000F // MCU UART0 Receive Pin
184 #define IOC_PORT_MCU_UART0_TX 0x00000010 // MCU UART0 Transmit Pin
185 #define IOC_PORT_MCU_UART0_CTS 0x00000011 // MCU UART0 Clear To Send Pin
186 #define IOC_PORT_MCU_UART0_RTS 0x00000012 // MCU UART0 Request To Send Pin
187 #define IOC_PORT_MCU_PORT_EVENT0 0x00000017 // MCU PORT EVENT 0
188 #define IOC_PORT_MCU_PORT_EVENT1 0x00000018 // MCU PORT EVENT 1
189 #define IOC_PORT_MCU_PORT_EVENT2 0x00000019 // MCU PORT EVENT 2
190 #define IOC_PORT_MCU_PORT_EVENT3 0x0000001A // MCU PORT EVENT 3
191 #define IOC_PORT_MCU_PORT_EVENT4 0x0000001B // MCU PORT EVENT 4
192 #define IOC_PORT_MCU_PORT_EVENT5 0x0000001C // MCU PORT EVENT 5
193 #define IOC_PORT_MCU_PORT_EVENT6 0x0000001D // MCU PORT EVENT 6
194 #define IOC_PORT_MCU_PORT_EVENT7 0x0000001E // MCU PORT EVENT 7
195 #define IOC_PORT_MCU_SWV 0x00000020 // Serial Wire Viewer
196 #define IOC_PORT_MCU_SSI1_RX 0x00000021 // MCU SSI1 Receive Pin
197 #define IOC_PORT_MCU_SSI1_TX 0x00000022 // MCU SSI1 Transmit Pin
198 #define IOC_PORT_MCU_SSI1_FSS 0x00000023 // MCU SSI1 FSS Pin
199 #define IOC_PORT_MCU_SSI1_CLK 0x00000024 // MCU SSI1 Clock Pin
200 #define IOC_PORT_MCU_I2S_AD0 0x00000025 // MCU I2S Data Pin 0
201 #define IOC_PORT_MCU_I2S_AD1 0x00000026 // MCU I2S Data Pin 1
202 #define IOC_PORT_MCU_I2S_WCLK 0x00000027 // MCU I2S Frame/Word Clock
203 #define IOC_PORT_MCU_I2S_BCLK 0x00000028 // MCU I2S Bit Clock
204 #define IOC_PORT_MCU_I2S_MCLK 0x00000029 // MCU I2S Master clock 2
205 #define IOC_PORT_RFC_TRC 0x0000002E // RF Core Tracer
206 #define IOC_PORT_RFC_GPO0 0x0000002F // RC Core Data Out Pin 0
207 #define IOC_PORT_RFC_GPO1 0x00000030 // RC Core Data Out Pin 1
208 #define IOC_PORT_RFC_GPO2 0x00000031 // RC Core Data Out Pin 2
209 #define IOC_PORT_RFC_GPO3 0x00000032 // RC Core Data Out Pin 3
210 #define IOC_PORT_RFC_GPI0 0x00000033 // RC Core Data In Pin 0
211 #define IOC_PORT_RFC_GPI1 0x00000034 // RC Core Data In Pin 1
212
213 //*****************************************************************************
214 //
215 // Defines for enabling/disabling an IO
216 //
217 //*****************************************************************************
218 #define IOC_SLEW_ENABLE 0x00001000
219 #define IOC_SLEW_DISABLE 0x00000000
220 #define IOC_INPUT_ENABLE 0x20000000
221 #define IOC_INPUT_DISABLE 0x00000000
222 #define IOC_HYST_ENABLE 0x40000000
223 #define IOC_HYST_DISABLE 0x00000000
224 #define IOC_JTAG_TDO_ENABLE 0x00080000
225 #define IOC_JTAG_TDI_ENABLE 0x00100000
226 #define IOC_JTAG_DISABLE 0x00000000
227
228 //*****************************************************************************
229 //
230 // Values that can be used to set the shutdown mode of an IO
231 //
232 //*****************************************************************************
233 #define IOC_NO_WAKE_UP 0x00000000
234 #define IOC_WAKE_ON_LOW 0x10000000
235 #define IOC_WAKE_ON_HIGH 0x18000000
236
237 //*****************************************************************************
238 //
239 // Values that can be used to set the IO Mode of an IO
240 //
241 //*****************************************************************************
242 #define IOC_IOMODE_NORMAL 0x00000000 // Normal Input/Output
243 #define IOC_IOMODE_INV 0x01000000 // Inverted Input/Output
244 #define IOC_IOMODE_OPEN_DRAIN_NORMAL \
245 0x04000000 // Open Drain, Normal Input/Output
246 #define IOC_IOMODE_OPEN_DRAIN_INV \
247 0x05000000 // Open Drain, Inverted
248 // Input/Output
249 #define IOC_IOMODE_OPEN_SRC_NORMAL \
250 0x06000000 // Open Source, Normal Input/Output
251 #define IOC_IOMODE_OPEN_SRC_INV \
252 0x07000000 // Open Source, Inverted
253 // Input/Output
254
255 //*****************************************************************************
256 //
257 // Values that can be used to set the edge detection on an IO
258 //
259 //*****************************************************************************
260 #define IOC_NO_EDGE 0x00000000 // No edge detection
261 #define IOC_FALLING_EDGE 0x00010000 // Edge detection on falling edge
262 #define IOC_RISING_EDGE 0x00020000 // Edge detection on rising edge
263 #define IOC_BOTH_EDGES 0x00030000 // Edge detection on both edges
264 #define IOC_INT_ENABLE 0x00040000 // Enable interrupt on edge detect
265 #define IOC_INT_DISABLE 0x00000000 // Disable interrupt on edge detect
266 #define IOC_INT_M 0x00070000 // Int config mask
267
268 //*****************************************************************************
269 //
270 // Values that be used to set pull on an IO
271 //
272 //*****************************************************************************
273 #define IOC_NO_IOPULL 0x00006000 // No IO pull
274 #define IOC_IOPULL_UP 0x00004000 // Pull up
275 #define IOC_IOPULL_DOWN 0x00002000 // Pull down
276 #define IOC_IOPULL_M 0x00006000 // Pull config mask
277 #define IOC_IOPULL_M 0x00006000
278
279 //*****************************************************************************
280 //
281 // Values that can be used to select the drive strength of an IO
282 //
283 //*****************************************************************************
284 #define IOC_CURRENT_2MA 0x00000000 // 2mA drive strength
285 #define IOC_CURRENT_4MA 0x00000400 // 4mA drive strength
286 #define IOC_CURRENT_8MA 0x00000800 // 4 or 8mA drive strength
287 #define IOC_CURRENT_16MA 0x00000C00 // Up to 16mA drive strength
288
289 #define IOC_STRENGTH_AUTO 0x00000000 // Automatic Drive Strength
290 // (2/4/8 mA @ VVDS)
291 #define IOC_STRENGTH_MAX 0x00000300 // Maximum Drive Strength
292 // (2/4/8 mA @ 1.8V)
293 #define IOC_STRENGTH_MED 0x00000200 // Medium Drive Strength
294 // (2/4/8 mA @ 2.5V)
295 #define IOC_STRENGTH_MIN 0x00000100 // Miniumm Drive Strength
296 // (2/4/8 mA @ 3.3V)
297 //*****************************************************************************
298 //
299 // Defines for standard IO setup
300 //
301 //*****************************************************************************
302 #define IOC_STD_INPUT (IOC_CURRENT_2MA | IOC_STRENGTH_AUTO | \
303 IOC_NO_IOPULL | IOC_SLEW_DISABLE | \
304 IOC_HYST_DISABLE | IOC_NO_EDGE | \
305 IOC_INT_DISABLE | IOC_IOMODE_NORMAL | \
306 IOC_NO_WAKE_UP | IOC_INPUT_ENABLE | \
307 IOC_JTAG_DISABLE)
308 #define IOC_STD_OUTPUT (IOC_CURRENT_2MA | IOC_STRENGTH_AUTO | \
309 IOC_NO_IOPULL | IOC_SLEW_DISABLE | \
310 IOC_HYST_DISABLE | IOC_NO_EDGE | \
311 IOC_INT_DISABLE | IOC_IOMODE_NORMAL | \
312 IOC_NO_WAKE_UP | IOC_INPUT_DISABLE | \
313 IOC_JTAG_DISABLE)
314
315 //*****************************************************************************
316 //
317 // API Functions and prototypes
318 //
319 //*****************************************************************************
320
321 //*****************************************************************************
322 //
438 //
439 //*****************************************************************************
440 extern void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId,
441 uint32_t ui32IOConfig);
442
443 //*****************************************************************************
444 //
459 //
460 //*****************************************************************************
461 extern uint32_t IOCPortConfigureGet(uint32_t ui32IOId);
462
463 //*****************************************************************************
464 //
479 //
480 //*****************************************************************************
481 extern void IOCIOShutdownSet(uint32_t ui32IOId, uint32_t ui32IOShutdown);
482
483 //*****************************************************************************
484 //
499 //
500 //*****************************************************************************
501 extern void IOCIOJTagSet(uint32_t ui32IOId, uint32_t ui32IOJTag);
502
503 //*****************************************************************************
504 //
522 //
523 //*****************************************************************************
524 extern void IOCIOModeSet(uint32_t ui32IOId, uint32_t ui32IOMode);
525
526 //*****************************************************************************
527 //
546 //
547 //*****************************************************************************
548 extern void IOCIOIntSet(uint32_t ui32IOId, uint32_t ui32Int,
549 uint32_t ui32EdgeDet);
550
551 //*****************************************************************************
552 //
567 //
568 //*****************************************************************************
569 extern void IOCIOPortPullSet(uint32_t ui32IOId, uint32_t ui32Pull);
570
571 //*****************************************************************************
572 //
586 //
587 //*****************************************************************************
588 extern void IOCIOHystSet(uint32_t ui32IOId, uint32_t ui32Hysteresis);
589
590 //*****************************************************************************
591 //
605 //
606 //*****************************************************************************
607 extern void IOCIOInputSet(uint32_t ui32IOId, uint32_t ui32Input);
608
609 //*****************************************************************************
610 //
624 //
625 //*****************************************************************************
626 extern void IOCIOSlewCtrlSet(uint32_t ui32IOId, uint32_t ui32SlewEnable);
627
628 //*****************************************************************************
629 //
650 //
651 //*****************************************************************************
652 extern void IOCIODrvStrengthSet(uint32_t ui32IOId, uint32_t ui32IOCurrent,
653 uint32_t ui32DrvStrength);
654
655 //*****************************************************************************
656 //
711 //
712 //*****************************************************************************
713 extern void IOCIOPortIdSet(uint32_t ui32IOId, uint32_t ui32PortId);
714
715 //*****************************************************************************
716 //
731 //
732 //*****************************************************************************
733 __STATIC_INLINE void
734 IOCIntRegister(void (*pfnHandler)(void))
735 {
736 //
737 // Register the interrupt handler.
738 //
739 IntRegister(INT_EDGE_DETECT, pfnHandler);
740
741 //
742 // Enable the IO edge interrupt.
743 //
744 IntEnable(INT_EDGE_DETECT);
745 }
746
747 //*****************************************************************************
748 //
758 //
759 //*****************************************************************************
760 __STATIC_INLINE void
761 IOCIntUnregister(void)
762 {
763 //
764 // Disable the interrupts.
765 //
766 IntDisable(INT_EDGE_DETECT);
767
768 //
769 // Unregister the interrupt handler.
770 //
771 IntUnregister(INT_EDGE_DETECT);
772 }
773
774 //*****************************************************************************
775 //
785 //
786 //*****************************************************************************
787 extern void IOCIntEnable(uint32_t ui32IOId);
788
789 //*****************************************************************************
790 //
803 //
804 //*****************************************************************************
805 extern void IOCIntDisable(uint32_t ui32IOId);
806
807 //*****************************************************************************
808 //
830 //
831 //*****************************************************************************
832 __STATIC_INLINE void
833 IOCIntClear(uint32_t ui32IOId)
834 {
835 //
836 // Check the arguments.
837 //
838 ASSERT(ui32IOId <= IOID_31);
839
840 //
841 // Clear the requested interrupt source by clearing the event.
842 //
843 GPIOEventClear(1 << ui32IOId);
844 }
845
846 //*****************************************************************************
847 //
860 //
861 //*****************************************************************************
862 __STATIC_INLINE uint32_t
863 IOCIntStatus(uint32_t ui32IOId)
864 {
865 //
866 // Check the arguments.
867 //
868 ASSERT(ui32IOId <= IOID_31);
869
870 //
871 // Clear the requested interrupt source by clearing the event.
872 //
873 return (GPIOEventGet(1 << ui32IOId));
874 }
875
876
877 //*****************************************************************************
878 //
903 //
904 //*****************************************************************************
905 extern void IOCPinTypeGpioInput(uint32_t ui32IOId);
906
907 //*****************************************************************************
908 //
933 //
934 //*****************************************************************************
935 extern void IOCPinTypeGpioOutput(uint32_t ui32IOId);
936
937 //*****************************************************************************
938 //
972 //
973 //*****************************************************************************
974 extern void IOCPinTypeUart(uint32_t ui32Base, uint32_t ui32Rx,
975 uint32_t ui32Tx, uint32_t ui32Cts,
976 uint32_t ui32Rts);
977
978 //*****************************************************************************
979 //
1005 //
1006 //*****************************************************************************
1007 extern void IOCPinTypeSsiMaster(uint32_t ui32Base, uint32_t ui32Rx,
1008 uint32_t ui32Tx, uint32_t ui32Fss,
1009 uint32_t ui32Clk);
1010
1011 //*****************************************************************************
1012 //
1034 //
1035 //*****************************************************************************
1036 extern void IOCPinTypeSsiSlave(uint32_t ui32Base, uint32_t ui32Rx,
1037 uint32_t ui32Tx, uint32_t ui32Fss,
1038 uint32_t ui32Clk);
1039
1040 //*****************************************************************************
1041 //
1057 //
1058 //*****************************************************************************
1059 extern void IOCPinTypeI2c(uint32_t ui32Base, uint32_t ui32Data,
1060 uint32_t ui32Clk);
1061
1062 //*****************************************************************************
1063 //
1088 //
1089 //*****************************************************************************
1090 extern void IOCPinTypeSpis(uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Fss,
1091 uint32_t ui32Clk);
1092
1093 //*****************************************************************************
1094 //
1111 //
1112 //*****************************************************************************
1113 extern void IOCPinTypeAux(uint32_t ui32IOId);
1114
1115 //*****************************************************************************
1116 //
1117 // Support for DriverLib in ROM:
1118 // Redirect to implementation in ROM when available.
1119 //
1120 //*****************************************************************************
1121 #ifndef DRIVERLIB_NOROM
1122 #include <driverlib/rom.h>
1123 #ifdef ROM_IOCPortConfigureSet
1124 #undef IOCPortConfigureSet
1125 #define IOCPortConfigureSet ROM_IOCPortConfigureSet
1126 #endif
1127 #ifdef ROM_IOCPortConfigureGet
1128 #undef IOCPortConfigureGet
1129 #define IOCPortConfigureGet ROM_IOCPortConfigureGet
1130 #endif
1131 #ifdef ROM_IOCIOShutdownSet
1132 #undef IOCIOShutdownSet
1133 #define IOCIOShutdownSet ROM_IOCIOShutdownSet
1134 #endif
1135 #ifdef ROM_IOCIOJTagSet
1136 #undef IOCIOJTagSet
1137 #define IOCIOJTagSet ROM_IOCIOJTagSet
1138 #endif
1139 #ifdef ROM_IOCIOModeSet
1140 #undef IOCIOModeSet
1141 #define IOCIOModeSet ROM_IOCIOModeSet
1142 #endif
1143 #ifdef ROM_IOCIOIntSet
1144 #undef IOCIOIntSet
1145 #define IOCIOIntSet ROM_IOCIOIntSet
1146 #endif
1147 #ifdef ROM_IOCIOPortPullSet
1148 #undef IOCIOPortPullSet
1149 #define IOCIOPortPullSet ROM_IOCIOPortPullSet
1150 #endif
1151 #ifdef ROM_IOCIOHystSet
1152 #undef IOCIOHystSet
1153 #define IOCIOHystSet ROM_IOCIOHystSet
1154 #endif
1155 #ifdef ROM_IOCIOInputSet
1156 #undef IOCIOInputSet
1157 #define IOCIOInputSet ROM_IOCIOInputSet
1158 #endif
1159 #ifdef ROM_IOCIOSlewCtrlSet
1160 #undef IOCIOSlewCtrlSet
1161 #define IOCIOSlewCtrlSet ROM_IOCIOSlewCtrlSet
1162 #endif
1163 #ifdef ROM_IOCIODrvStrengthSet
1164 #undef IOCIODrvStrengthSet
1165 #define IOCIODrvStrengthSet ROM_IOCIODrvStrengthSet
1166 #endif
1167 #ifdef ROM_IOCIOPortIdSet
1168 #undef IOCIOPortIdSet
1169 #define IOCIOPortIdSet ROM_IOCIOPortIdSet
1170 #endif
1171 #ifdef ROM_IOCIntEnable
1172 #undef IOCIntEnable
1173 #define IOCIntEnable ROM_IOCIntEnable
1174 #endif
1175 #ifdef ROM_IOCIntDisable
1176 #undef IOCIntDisable
1177 #define IOCIntDisable ROM_IOCIntDisable
1178 #endif
1179 #ifdef ROM_IOCPinTypeGpioInput
1180 #undef IOCPinTypeGpioInput
1181 #define IOCPinTypeGpioInput ROM_IOCPinTypeGpioInput
1182 #endif
1183 #ifdef ROM_IOCPinTypeGpioOutput
1184 #undef IOCPinTypeGpioOutput
1185 #define IOCPinTypeGpioOutput ROM_IOCPinTypeGpioOutput
1186 #endif
1187 #ifdef ROM_IOCPinTypeUart
1188 #undef IOCPinTypeUart
1189 #define IOCPinTypeUart ROM_IOCPinTypeUart
1190 #endif
1191 #ifdef ROM_IOCPinTypeSsiMaster
1192 #undef IOCPinTypeSsiMaster
1193 #define IOCPinTypeSsiMaster ROM_IOCPinTypeSsiMaster
1194 #endif
1195 #ifdef ROM_IOCPinTypeSsiSlave
1196 #undef IOCPinTypeSsiSlave
1197 #define IOCPinTypeSsiSlave ROM_IOCPinTypeSsiSlave
1198 #endif
1199 #ifdef ROM_IOCPinTypeI2c
1200 #undef IOCPinTypeI2c
1201 #define IOCPinTypeI2c ROM_IOCPinTypeI2c
1202 #endif
1203 #ifdef ROM_IOCPinTypeSpis
1204 #undef IOCPinTypeSpis
1205 #define IOCPinTypeSpis ROM_IOCPinTypeSpis
1206 #endif
1207 #ifdef ROM_IOCPinTypeAux
1208 #undef IOCPinTypeAux
1209 #define IOCPinTypeAux ROM_IOCPinTypeAux
1210 #endif
1211 #endif
1212
1213 //*****************************************************************************
1214 //
1215 // Mark the end of the C bindings section for C++ compilers.
1216 //
1217 //*****************************************************************************
1218 #ifdef __cplusplus
1219 }
1220 #endif
1221
1222 #endif // __IOC_H__
1223
1224 //*****************************************************************************
1225 //
1228 //
1229 //*****************************************************************************
IOCIntClear
__STATIC_INLINE void IOCIntClear(uint32_t ui32IOId)
Clears the IO edge interrupt source.
Definition: ioc.h:833
IOCIntDisable
void IOCIntDisable(uint32_t ui32IOId)
Disables individual IO edge interrupt sources.
Definition: ioc.c:496
debug.h
GPIOEventGet
__STATIC_INLINE uint32_t GPIOEventGet(uint32_t ui32Pin)
Get the event status of a specific pin.
Definition: gpio.h:348
IOCIOSlewCtrlSet
void IOCIOSlewCtrlSet(uint32_t ui32IOId, uint32_t ui32SlewEnable)
Enable/disable the slew control on an IO port.
Definition: ioc.c:368
IOCPinTypeSsiMaster
void IOCPinTypeSsiMaster(uint32_t ui32Base, uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Fss, uint32_t ui32Clk)
Configure a set of IOs for standard SSI peripheral master control.
Definition: ioc.c:612
gpio.h
IOCPinTypeI2c
void IOCPinTypeI2c(uint32_t ui32Base, uint32_t ui32Data, uint32_t ui32Clk)
Configure a set of IOs for standard I2C peripheral control.
Definition: ioc.c:736
IOCIOShutdownSet
void IOCIOShutdownSet(uint32_t ui32IOId, uint32_t ui32IOShutdown)
Set wake-up on an IO port.
Definition: ioc.c:171
IOCIntStatus
__STATIC_INLINE uint32_t IOCIntStatus(uint32_t ui32IOId)
Returns the status of the IO interrupts.
Definition: ioc.h:863
ASSERT
#define ASSERT(expr)
Definition: debug.h:65
IOCPinTypeSsiSlave
void IOCPinTypeSsiSlave(uint32_t ui32Base, uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Fss, uint32_t ui32Clk)
Configure a set of IOs for standard SSI peripheral slave control.
Definition: ioc.c:674
IOCIOHystSet
void IOCIOHystSet(uint32_t ui32IOId, uint32_t ui32Hysteresis)
Configure hysteresis on and IO port.
Definition: ioc.c:306
IOCIOInputSet
void IOCIOInputSet(uint32_t ui32IOId, uint32_t ui32Input)
Enable/disable IO port as input.
Definition: ioc.c:337
IOCIntRegister
__STATIC_INLINE void IOCIntRegister(void(*pfnHandler)(void))
Register an interrupt handler for an IO edge interrupt.
Definition: ioc.h:734
IOCIntEnable
void IOCIntEnable(uint32_t ui32IOId)
Enables individual IO edge detect interrupt.
Definition: ioc.c:467
IOCIODrvStrengthSet
void IOCIODrvStrengthSet(uint32_t ui32IOId, uint32_t ui32IOCurrent, uint32_t ui32DrvStrength)
Configure the drive strength and maxium current of an IO port.
Definition: ioc.c:399
GPIOEventClear
__STATIC_INLINE void GPIOEventClear(uint32_t ui32Pins)
Clear an IO event on a pin.
Definition: gpio.h:375
IOCIntUnregister
__STATIC_INLINE void IOCIntUnregister(void)
Unregisters an interrupt handler for a IO edge interrupt.
Definition: ioc.h:761
IOCPinTypeAux
void IOCPinTypeAux(uint32_t ui32IOId)
Configure an IO for AUX control.
Definition: ioc.c:805
IOCIOIntSet
void IOCIOIntSet(uint32_t ui32IOId, uint32_t ui32Int, uint32_t ui32EdgeDet)
Setup interrupt detection on an IO Port.
Definition: ioc.c:239
IOCPortConfigureGet
uint32_t IOCPortConfigureGet(uint32_t ui32IOId)
Get the configuration of an IO port.
Definition: ioc.c:145
IOCIOJTagSet
void IOCIOJTagSet(uint32_t ui32IOId, uint32_t ui32IOJTag)
Set wake-up on an IO port.
IOCPortConfigureSet
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:117
interrupt.h
IOCPinTypeGpioOutput
void IOCPinTypeGpioOutput(uint32_t ui32IOId)
Setup an IO for standard GPIO output.
Definition: ioc.c:549
IOCIOPortIdSet
void IOCIOPortIdSet(uint32_t ui32IOId, uint32_t ui32PortId)
Setup the Port ID for this IO.
Definition: ioc.c:437
IOCPinTypeGpioInput
void IOCPinTypeGpioInput(uint32_t ui32IOId)
Setup an IO for standard GPIO input.
Definition: ioc.c:525
IntUnregister
void IntUnregister(uint32_t ui32Interrupt)
Unregisters the function to be called when an interrupt occurs.
Definition: interrupt.c:205
IOID_31
#define IOID_31
Definition: ioc.h:153
rom.h
IOCPinTypeUart
void IOCPinTypeUart(uint32_t ui32Base, uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Cts, uint32_t ui32Rts)
Configure a set of IOs for standard UART peripheral control.
Definition: ioc.c:573
IOCIOModeSet
void IOCIOModeSet(uint32_t ui32IOId, uint32_t ui32IOMode)
Set the IO Mode of an IO Port.
Definition: ioc.c:204
IntDisable
void IntDisable(uint32_t ui32Interrupt)
Disables an interrupt.
Definition: interrupt.c:383
IntRegister
void IntRegister(uint32_t ui32Interrupt, void(*pfnHandler)(void))
Registers a function to be called when an interrupt occurs.
Definition: interrupt.c:157
IOCIOPortPullSet
void IOCIOPortPullSet(uint32_t ui32IOId, uint32_t ui32Pull)
Set the pull on an IO port.
Definition: ioc.c:274
IntEnable
void IntEnable(uint32_t ui32Interrupt)
Enables an interrupt.
Definition: interrupt.c:323
IOCPinTypeSpis
void IOCPinTypeSpis(uint32_t ui32Rx, uint32_t ui32Tx, uint32_t ui32Fss, uint32_t ui32Clk)
Configure a set of IOs for standard SPIS peripheral control.
Definition: ioc.c:767