CC26xx Driver Library
[ioc.h] I/O Controller

Functions

void IOCPortConfigureSet (uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
 Set the configuration of an IO port. More...
 
uint32_t IOCPortConfigureGet (uint32_t ui32IOId)
 Get the configuration of an IO port. More...
 
void IOCIOShutdownSet (uint32_t ui32IOId, uint32_t ui32IOShutdown)
 Set wake-up mode from shutdown on an IO port. More...
 
void IOCIOModeSet (uint32_t ui32IOId, uint32_t ui32IOMode)
 Set the IO Mode of an IO Port. More...
 
void IOCIOIntSet (uint32_t ui32IOId, uint32_t ui32Int, uint32_t ui32EdgeDet)
 Setup edge detection and interrupt generation on an IO Port. More...
 
void IOCIOEvtSet (uint32_t ui32IOId, uint32_t ui32Evt)
 Setup event generation on IO edge detection. More...
 
void IOCIOPortPullSet (uint32_t ui32IOId, uint32_t ui32Pull)
 Set the pull on an IO port. More...
 
void IOCIOHystSet (uint32_t ui32IOId, uint32_t ui32Hysteresis)
 Configure hysteresis on and IO port. More...
 
void IOCIOInputSet (uint32_t ui32IOId, uint32_t ui32Input)
 Enable/disable IO port as input. More...
 
void IOCIOSlewCtrlSet (uint32_t ui32IOId, uint32_t ui32SlewEnable)
 Configure slew rate on an IO port. More...
 
void IOCIODrvStrengthSet (uint32_t ui32IOId, uint32_t ui32IOCurrent, uint32_t ui32DrvStrength)
 Configure the drive strength source and current mode of an IO port. More...
 
void IOCIOPortIdSet (uint32_t ui32IOId, uint32_t ui32PortId)
 Setup the Port ID for this IO. More...
 
static void IOCIntRegister (void(*pfnHandler)(void))
 Register an interrupt handler for an IO edge interrupt in the dynamic interrupt table. More...
 
static void IOCIntUnregister (void)
 Unregisters an interrupt handler for a IO edge interrupt in the dynamic interrupt table. More...
 
void IOCIntEnable (uint32_t ui32IOId)
 Enables individual IO edge detect interrupt. More...
 
void IOCIntDisable (uint32_t ui32IOId)
 Disables individual IO edge interrupt sources. More...
 
static void IOCIntClear (uint32_t ui32IOId)
 Clears the IO edge interrupt source. More...
 
static uint32_t IOCIntStatus (uint32_t ui32IOId)
 Returns the status of the IO interrupts. More...
 
void IOCPinTypeGpioInput (uint32_t ui32IOId)
 Setup an IO for standard GPIO input. More...
 
void IOCPinTypeGpioOutput (uint32_t ui32IOId)
 Setup an IO for standard GPIO output. More...
 
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. More...
 
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. More...
 
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. More...
 
void IOCPinTypeI2c (uint32_t ui32Base, uint32_t ui32Data, uint32_t ui32Clk)
 Configure a set of IOs for standard I2C peripheral control. More...
 
void IOCPinTypeAux (uint32_t ui32IOId)
 Configure an IO for AUX control. More...
 

Detailed Description

Introduction

The Input/Output Controller (IOC) controls the functionality of the pins (called DIO). The IOC consists of two APIs:

For more information on the AON IOC see the AON IOC API.

Note
The output driver of a DIO is not configured by the IOC API (except for drive strength); instead, it is controlled by the peripheral module which is selected to control the DIO.

A DIO is considered "software controlled" if it is configured for GPIO control which allows the System CPU to set the value of the DIO via the GPIO API. Alternatively, a DIO can be "hardware controlled" if it is controlled by other modules than GPIO.

API

The API functions can be grouped like this:

Configure all settings at the same time:

Configure individual settings:

Handle edge detection events:

Configure IOCs for typical use cases (can also be used as example code):

Function Documentation

§ IOCIntClear()

static void IOCIntClear ( uint32_t  ui32IOId)
inlinestatic

Clears the IO edge interrupt source.

The specified IO edge interrupt source is cleared, so that it no longer asserts. This function must be called in the interrupt handler to keep the interrupt from being recognized again immediately upon exit.

Note
Due to write buffers and synchronizers in the system it may take several clock cycles from a register write clearing an event in a module and until the event is actually cleared in the NVIC of the system CPU. It is recommended to clear the event source early in the interrupt service routine (ISR) to allow the event clear to propagate to the NVIC before returning from the ISR. At the same time, an early event clear allows new events of the same type to be pended instead of ignored if the event is cleared later in the ISR. It is the responsibility of the programmer to make sure that enough time has passed before returning from the ISR to avoid false re-triggering of the cleared event. A simple, although not necessarily optimal, way of clearing an event before returning from the ISR is:
  1. Write to clear event (interrupt source). (buffered write)
  2. Dummy read from the event source module. (making sure the write has propagated)
  3. Wait two system CPU clock cycles (user code or two NOPs). (allowing cleared event to propagate through any synchronizers)
Parameters
ui32IOIdis the IO causing the interrupt.
Returns
None
874 {
875  // Check the arguments.
876  ASSERT(ui32IOId <= IOID_31);
877 
878  // Clear the requested interrupt source by clearing the event.
879  GPIO_clearEventDio(ui32IOId);
880 }
static void GPIO_clearEventDio(uint32_t dioNumber)
Clears the IO event status of a specific DIO.
Definition: gpio.h:306
#define ASSERT(expr)
Definition: debug.h:71
#define IOID_31
Definition: ioc.h:150
Here is the call graph for this function:

§ IOCIntDisable()

void IOCIntDisable ( uint32_t  ui32IOId)

Disables individual IO edge interrupt sources.

This function disables the indicated IO edge interrupt source. Only the sources that are enabled can be reflected to the processor interrupt; disabled sources have no effect on the processor.

Parameters
ui32IOIdis the IO edge interrupt source to be disabled.
Returns
None

Referenced by IOCIntUnregister().

439 {
440  uint32_t ui32IOReg;
441  uint32_t ui32Config;
442 
443  // Check the arguments.
444  ASSERT(ui32IOId < NUM_IO_MAX);
445 
446  // Get the register address.
447  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
448 
449  // Disable the specified interrupt.
450  ui32Config = HWREG(ui32IOReg);
451  ui32Config &= ~IOC_IOCFG0_EDGE_IRQ_EN;
452  HWREG(ui32IOReg) = ui32Config;
453 }
#define ASSERT(expr)
Definition: debug.h:71
#define NUM_IO_MAX
Definition: ioc.h:112

§ IOCIntEnable()

void IOCIntEnable ( uint32_t  ui32IOId)

Enables individual IO edge detect interrupt.

This function enables the indicated IO edge interrupt sources. Only the sources that are enabled can be reflected to the processor interrupt; disabled sources have no effect on the processor.

Parameters
ui32IOIdis the IO to enable edge detect interrupt for.
Returns
None

Referenced by IOCIntUnregister().

416 {
417  uint32_t ui32IOReg;
418  uint32_t ui32Config;
419 
420  // Check the arguments.
421  ASSERT(ui32IOId < NUM_IO_MAX);
422 
423  // Get the register address.
424  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
425 
426  // Enable the specified interrupt.
427  ui32Config = HWREG(ui32IOReg);
428  ui32Config |= IOC_IOCFG0_EDGE_IRQ_EN;
429  HWREG(ui32IOReg) = ui32Config;
430 }
#define ASSERT(expr)
Definition: debug.h:71
#define NUM_IO_MAX
Definition: ioc.h:112

§ IOCIntRegister()

static void IOCIntRegister ( void(*)(void)  pfnHandler)
inlinestatic

Register an interrupt handler for an IO edge interrupt in the dynamic interrupt table.

Note
Only use this function if you want to use the dynamic vector table (in SRAM)!

This function registers a function as the interrupt handler for a specific interrupt and enables the corresponding interrupt in the interrupt controller.

Specific IO interrupts must be enabled via IOCIntEnable(). It is the interrupt handler's responsibility to clear the interrupt source.

Parameters
pfnHandleris a pointer to the function to be called when the IOC interrupt occurs.
Returns
None
See also
IntRegister() for important information about registering interrupt handlers.
777 {
778  // Register the interrupt handler.
779  IntRegister(INT_AON_GPIO_EDGE, pfnHandler);
780 
781  // Enable the IO edge interrupt.
782  IntEnable(INT_AON_GPIO_EDGE);
783 }
void IntRegister(uint32_t ui32Interrupt, void(*pfnHandler)(void))
Registers a function as an interrupt handler in the dynamic vector table.
Definition: interrupt.c:151
void IntEnable(uint32_t ui32Interrupt)
Enables an interrupt or system exception.
Definition: interrupt.c:281
Here is the call graph for this function:

§ IOCIntStatus()

static uint32_t IOCIntStatus ( uint32_t  ui32IOId)
inlinestatic

Returns the status of the IO interrupts.

Parameters
ui32IOIdis the IO to get the status for.
Returns
None
896 {
897  // Check the arguments.
898  ASSERT(ui32IOId <= IOID_31);
899 
900  // Get the event status.
901  return (GPIO_getEventDio(ui32IOId));
902 }
static uint32_t GPIO_getEventDio(uint32_t dioNumber)
Gets the event status of a specific DIO.
Definition: gpio.h:285
#define ASSERT(expr)
Definition: debug.h:71
#define IOID_31
Definition: ioc.h:150
Here is the call graph for this function:

§ IOCIntUnregister()

static void IOCIntUnregister ( void  )
inlinestatic

Unregisters an interrupt handler for a IO edge interrupt in the dynamic interrupt table.

This function does the actual unregistering of the interrupt handler. It clears the handler to be called when an IO edge interrupt occurs.

Returns
None
See also
IntRegister() for important information about registering interrupt handlers.
800 {
801  // Disable the interrupts.
802  IntDisable(INT_AON_GPIO_EDGE);
803 
804  // Unregister the interrupt handler.
805  IntUnregister(INT_AON_GPIO_EDGE);
806 }
void IntUnregister(uint32_t ui32Interrupt)
Unregisters an interrupt handler in the dynamic vector table.
Definition: interrupt.c:187
void IntDisable(uint32_t ui32Interrupt)
Disables an interrupt or system exception.
Definition: interrupt.c:325
Here is the call graph for this function:

§ IOCIODrvStrengthSet()

void IOCIODrvStrengthSet ( uint32_t  ui32IOId,
uint32_t  ui32IOCurrent,
uint32_t  ui32DrvStrength 
)

Configure the drive strength source and current mode of an IO port.

The drive strength of an IO is configured by a combination of multiple settings in several modules. The drive strength source ui32DrvStrength is used for controlling drive strength at different supply levels. When set to AUTO the battery monitor (BATMON) adjusts the drive strength to compensate for changes in supply voltage in order to keep IO current constant. Alternatively, drive strength source can be controlled manually by selecting one of three options each of which is configurable in the AON IOC by AONIOCDriveStrengthSet().

Each drive strength source has three current modes: Low-Current (LC), High-Current (HC), and Extended-Current (EC), and typically drive strength doubles when selecting a higher mode. I.e. EC = 2 x HC = 4 x LC.

Note
Not all IOs support Extended-Current mode. See datasheet for more information on the specific device.
Parameters
ui32IOIddefines the IO to configure.
ui32IOCurrentselects the IO current mode.
ui32DrvStrengthsets the source for drive strength control of the IO port.
Returns
None
362 {
363  uint32_t ui32IOReg;
364  uint32_t ui32Config;
365 
366  // Check the arguments.
367  ASSERT(ui32IOId < NUM_IO_MAX);
368  ASSERT((ui32IOCurrent == IOC_CURRENT_2MA) ||
369  (ui32IOCurrent == IOC_CURRENT_4MA) ||
370  (ui32IOCurrent == IOC_CURRENT_8MA));
371  ASSERT((ui32DrvStrength == IOC_STRENGTH_MIN) ||
372  (ui32DrvStrength == IOC_STRENGTH_MAX) ||
373  (ui32DrvStrength == IOC_STRENGTH_MED) ||
374  (ui32DrvStrength == IOC_STRENGTH_AUTO));
375 
376  // Get the register address.
377  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
378 
379  // Configure the IO.
380  ui32Config = HWREG(ui32IOReg);
381  ui32Config &= ~(IOC_IOCFG0_IOCURR_M | IOC_IOCFG0_IOSTR_M);
382  HWREG(ui32IOReg) = ui32Config | (ui32IOCurrent | ui32DrvStrength);
383 }
#define IOC_STRENGTH_MED
Definition: ioc.h:289
#define IOC_STRENGTH_MAX
Definition: ioc.h:287
#define ASSERT(expr)
Definition: debug.h:71
#define IOC_STRENGTH_MIN
Definition: ioc.h:291
#define NUM_IO_MAX
Definition: ioc.h:112
#define IOC_CURRENT_2MA
Definition: ioc.h:281
#define IOC_CURRENT_8MA
Definition: ioc.h:283
#define IOC_CURRENT_4MA
Definition: ioc.h:282
#define IOC_STRENGTH_AUTO
Definition: ioc.h:285

§ IOCIOEvtSet()

void IOCIOEvtSet ( uint32_t  ui32IOId,
uint32_t  ui32Evt 
)

Setup event generation on IO edge detection.

This function is used to setup event generation for specific events when an IO edge detection occurs.

Parameters
ui32IOIddefines the IO to configure.
ui32Evtis a bitwise OR of the IO events to generate when an IO edge detection occurs. All other IO event generations are disabled.
224 {
225  uint32_t ui32IOReg;
226  uint32_t ui32Config;
227 
228  // Check the arguments.
229  ASSERT(ui32IOId < NUM_IO_MAX);
230  ASSERT( (ui32Evt & ~(IOC_IOCFG0_IOEV_AON_PROG2_EN_M |
231  IOC_IOCFG0_IOEV_AON_PROG1_EN_M |
232  IOC_IOCFG0_IOEV_AON_PROG0_EN_M |
233  IOC_IOCFG0_IOEV_RTC_EN_M |
234  IOC_IOCFG0_IOEV_MCU_WU_EN_M) ) == 0x00000000);
235 
236  // Get the register address.
237  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
238 
239  // Read current configuration.
240  ui32Config = HWREG(ui32IOReg);
241 
242  // Disable generation of all events.
243  ui32Config &= ~(IOC_IOCFG0_IOEV_AON_PROG2_EN_M |
244  IOC_IOCFG0_IOEV_AON_PROG1_EN_M |
245  IOC_IOCFG0_IOEV_AON_PROG0_EN_M |
246  IOC_IOCFG0_IOEV_RTC_EN_M |
247  IOC_IOCFG0_IOEV_MCU_WU_EN_M);
248 
249  // Enable the required events.
250  HWREG(ui32IOReg) = ui32Config | ui32Evt;
251 }
#define ASSERT(expr)
Definition: debug.h:71
#define NUM_IO_MAX
Definition: ioc.h:112

§ IOCIOHystSet()

void IOCIOHystSet ( uint32_t  ui32IOId,
uint32_t  ui32Hysteresis 
)

Configure hysteresis on and IO port.

This function is used to enable/disable hysteresis on an IO.

Parameters
ui32IOIddefines the IO to configure.
ui32Hysteresisenable/disable input hysteresis on IO.
Returns
None
286 {
287  uint32_t ui32IOReg;
288  uint32_t ui32Config;
289 
290  // Check the arguments.
291  ASSERT(ui32IOId < NUM_IO_MAX);
292  ASSERT((ui32Hysteresis == IOC_HYST_ENABLE) ||
293  (ui32Hysteresis == IOC_HYST_DISABLE));
294 
295  // Get the register address.
296  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
297 
298  // Configure the IO.
299  ui32Config = HWREG(ui32IOReg);
300  ui32Config &= ~IOC_IOCFG0_HYST_EN;
301  HWREG(ui32IOReg) = ui32Config | ui32Hysteresis;
302 }
#define ASSERT(expr)
Definition: debug.h:71
#define NUM_IO_MAX
Definition: ioc.h:112
#define IOC_HYST_ENABLE
Definition: ioc.h:223
#define IOC_HYST_DISABLE
Definition: ioc.h:224

§ IOCIOInputSet()

void IOCIOInputSet ( uint32_t  ui32IOId,
uint32_t  ui32Input 
)

Enable/disable IO port as input.

This function is used to enable/disable input on an IO.

Parameters
ui32IOIddefines the IO to configure.
ui32Inputenable/disable input on IO.
Returns
None
311 {
312  uint32_t ui32IOReg;
313  uint32_t ui32Config;
314 
315  // Check the arguments.
316  ASSERT(ui32IOId < NUM_IO_MAX);
317  ASSERT((ui32Input == IOC_INPUT_ENABLE) ||
318  (ui32Input == IOC_INPUT_DISABLE));
319 
320  // Get the register address.
321  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
322 
323  // Configure the IO.
324  ui32Config = HWREG(ui32IOReg);
325  ui32Config &= ~IOC_IOCFG0_IE;
326  HWREG(ui32IOReg) = ui32Config | ui32Input;
327 }
#define IOC_INPUT_ENABLE
Definition: ioc.h:221
#define IOC_INPUT_DISABLE
Definition: ioc.h:222
#define ASSERT(expr)
Definition: debug.h:71
#define NUM_IO_MAX
Definition: ioc.h:112

§ IOCIOIntSet()

void IOCIOIntSet ( uint32_t  ui32IOId,
uint32_t  ui32Int,
uint32_t  ui32EdgeDet 
)

Setup edge detection and interrupt generation on an IO Port.

This function is used to setup the edge detection and interrupt generation on an IO.

Parameters
ui32IOIddefines the IO to configure.
ui32Intenables/disables interrupt generation on this IO port.
ui32EdgeDetenables/disables edge detection events on this IO port.
Returns
None
195 {
196  uint32_t ui32IOReg;
197  uint32_t ui32Config;
198 
199  // Check the arguments.
200  ASSERT(ui32IOId < NUM_IO_MAX);
201  ASSERT((ui32Int == IOC_INT_ENABLE) ||
202  (ui32Int == IOC_INT_DISABLE));
203  ASSERT((ui32EdgeDet == IOC_NO_EDGE) ||
204  (ui32EdgeDet == IOC_FALLING_EDGE) ||
205  (ui32EdgeDet == IOC_RISING_EDGE) ||
206  (ui32EdgeDet == IOC_BOTH_EDGES));
207 
208  // Get the register address.
209  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
210 
211  // Configure the IO.
212  ui32Config = HWREG(ui32IOReg);
213  ui32Config &= ~(IOC_IOCFG0_EDGE_IRQ_EN | IOC_IOCFG0_EDGE_DET_M);
214  HWREG(ui32IOReg) = ui32Config | ((ui32Int ? IOC_IOCFG0_EDGE_IRQ_EN : 0) | ui32EdgeDet);
215 }
#define IOC_FALLING_EDGE
Definition: ioc.h:259
#define IOC_BOTH_EDGES
Definition: ioc.h:261
#define IOC_INT_DISABLE
Definition: ioc.h:263
#define IOC_RISING_EDGE
Definition: ioc.h:260
#define ASSERT(expr)
Definition: debug.h:71
#define NUM_IO_MAX
Definition: ioc.h:112
#define IOC_NO_EDGE
Definition: ioc.h:258
#define IOC_INT_ENABLE
Definition: ioc.h:262

§ IOCIOModeSet()

void IOCIOModeSet ( uint32_t  ui32IOId,
uint32_t  ui32IOMode 
)

Set the IO Mode of an IO Port.

This function is used to set the input/output mode of an IO.

Parameters
ui32IOIddefines the IO to configure.
ui32IOModesets the port IO Mode.
Returns
None
166 {
167  uint32_t ui32Reg;
168  uint32_t ui32Config;
169 
170  // Check the arguments.
171  ASSERT(ui32IOId < NUM_IO_MAX);
172  ASSERT((ui32IOMode == IOC_IOMODE_NORMAL) ||
173  (ui32IOMode == IOC_IOMODE_INV) ||
174  (ui32IOMode == IOC_IOMODE_OPEN_DRAIN_NORMAL) ||
175  (ui32IOMode == IOC_IOMODE_OPEN_DRAIN_INV) ||
176  (ui32IOMode == IOC_IOMODE_OPEN_SRC_NORMAL) ||
177  (ui32IOMode == IOC_IOMODE_OPEN_SRC_INV));
178 
179  // Get the register address.
180  ui32Reg = IOC_BASE + ( ui32IOId << 2 );
181 
182  // Configure the IO.
183  ui32Config = HWREG(ui32Reg);
184  ui32Config &= ~IOC_IOCFG0_IOMODE_M;
185  HWREG(ui32Reg) = ui32Config | ui32IOMode;
186 }
#define IOC_IOMODE_OPEN_SRC_INV
Definition: ioc.h:249
#define IOC_IOMODE_OPEN_DRAIN_INV
Definition: ioc.h:244
#define IOC_IOMODE_OPEN_SRC_NORMAL
Definition: ioc.h:247
#define IOC_IOMODE_INV
Definition: ioc.h:241
#define ASSERT(expr)
Definition: debug.h:71
#define NUM_IO_MAX
Definition: ioc.h:112
#define IOC_IOMODE_OPEN_DRAIN_NORMAL
Definition: ioc.h:242
#define IOC_IOMODE_NORMAL
Definition: ioc.h:240

§ IOCIOPortIdSet()

void IOCIOPortIdSet ( uint32_t  ui32IOId,
uint32_t  ui32PortId 
)

Setup the Port ID for this IO.

The ui32PortId specifies which functional peripheral to hook up to this IO.

Parameters
ui32IOIddefines the IO to configure.
ui32PortIdselects the port to map to the IO.
Returns
None
392 {
393  uint32_t ui32IOReg;
394  uint32_t ui32Config;
395 
396  // Check the arguments.
397  ASSERT(ui32IOId < NUM_IO_MAX);
398  ASSERT(ui32PortId <= IOC_PORT_RFC_GPI1);
399 
400  // Get the register address.
401  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
402 
403  // Configure the IO.
404  ui32Config = HWREG(ui32IOReg);
405  ui32Config &= ~IOC_IOCFG0_PORT_ID_M;
406  HWREG(ui32IOReg) = ui32Config | ui32PortId;
407 }
#define ASSERT(expr)
Definition: debug.h:71
#define NUM_IO_MAX
Definition: ioc.h:112
#define IOC_PORT_RFC_GPI1
Definition: ioc.h:208

§ IOCIOPortPullSet()

void IOCIOPortPullSet ( uint32_t  ui32IOId,
uint32_t  ui32Pull 
)

Set the pull on an IO port.

This function is used to configure the pull on an IO.

Parameters
ui32IOIddefines the IO to configure.
ui32Pullenables/disables pull on this IO port.
Returns
None
260 {
261  uint32_t ui32IOReg;
262  uint32_t ui32Config;
263 
264  // Check the argument.
265  ASSERT(ui32IOId < NUM_IO_MAX);
266  ASSERT((ui32Pull == IOC_NO_IOPULL) ||
267  (ui32Pull == IOC_IOPULL_UP) ||
268  (ui32Pull == IOC_IOPULL_DOWN));
269 
270  // Get the register address.
271  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
272 
273  // Configure the IO.
274  ui32Config = HWREG(ui32IOReg);
275  ui32Config &= ~IOC_IOCFG0_PULL_CTL_M;
276  HWREG(ui32IOReg) = ui32Config | ui32Pull;
277 }
#define IOC_IOPULL_DOWN
Definition: ioc.h:273
#define IOC_IOPULL_UP
Definition: ioc.h:272
#define ASSERT(expr)
Definition: debug.h:71
#define NUM_IO_MAX
Definition: ioc.h:112
#define IOC_NO_IOPULL
Definition: ioc.h:271

§ IOCIOShutdownSet()

void IOCIOShutdownSet ( uint32_t  ui32IOId,
uint32_t  ui32IOShutdown 
)

Set wake-up mode from shutdown on an IO port.

This function is used to set the wake-up mode from shutdown of an IO.

IO must be configured as input in order for wakeup to work. See IOCIOInputSet().

Parameters
ui32IOIddefines the IO to configure.
ui32IOShutdownenables wake-up from shutdown on LOW/HIGH by this IO port.
Returns
None
139 {
140  uint32_t ui32Reg;
141  uint32_t ui32Config;
142 
143  // Check the arguments.
144  ASSERT(ui32IOId < NUM_IO_MAX);
145  ASSERT((ui32IOShutdown == IOC_NO_WAKE_UP) ||
146  (ui32IOShutdown == IOC_WAKE_ON_LOW) ||
147  (ui32IOShutdown == IOC_WAKE_ON_HIGH));
148 
149  // Get the register address.
150  ui32Reg = IOC_BASE + ( ui32IOId << 2 );
151 
152  // Configure the IO.
153  ui32Config = HWREG(ui32Reg);
154  ui32Config &= ~IOC_IOCFG0_WU_CFG_M;
155  HWREG(ui32Reg) = ui32Config | ui32IOShutdown;
156 }
#define IOC_WAKE_ON_HIGH
Definition: ioc.h:233
#define IOC_NO_WAKE_UP
Definition: ioc.h:231
#define IOC_WAKE_ON_LOW
Definition: ioc.h:232
#define ASSERT(expr)
Definition: debug.h:71
#define NUM_IO_MAX
Definition: ioc.h:112

§ IOCIOSlewCtrlSet()

void IOCIOSlewCtrlSet ( uint32_t  ui32IOId,
uint32_t  ui32SlewEnable 
)

Configure slew rate on an IO port.

This function is used to enable/disable reduced slew rate on an IO.

Parameters
ui32IOIddefines the IO to configure.
ui32SlewEnableenables/disables reduced slew rate on an output.
Returns
None
336 {
337  uint32_t ui32IOReg;
338  uint32_t ui32Config;
339 
340  // Check the arguments.
341  ASSERT(ui32IOId < NUM_IO_MAX);
342  ASSERT((ui32SlewEnable == IOC_SLEW_ENABLE) ||
343  (ui32SlewEnable == IOC_SLEW_DISABLE));
344 
345  // Get the register address.
346  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
347 
348  // Configure the IO.
349  ui32Config = HWREG(ui32IOReg);
350  ui32Config &= ~IOC_IOCFG0_SLEW_RED;
351  HWREG(ui32IOReg) = ui32Config | ui32SlewEnable;
352 }
#define IOC_SLEW_ENABLE
Definition: ioc.h:219
#define ASSERT(expr)
Definition: debug.h:71
#define NUM_IO_MAX
Definition: ioc.h:112
#define IOC_SLEW_DISABLE
Definition: ioc.h:220

§ IOCPinTypeAux()

void IOCPinTypeAux ( uint32_t  ui32IOId)

Configure an IO for AUX control.

Use this function to enable AUX to control a specific IO. Please note, that when using AUX to control the IO, the input/output control in the IOC is bypassed and completely controlled by AUX, so enabling or disabling input in the IOC has no effect.

Note
The IOs available for AUX control can vary from device to device.
Parameters
ui32IOIdis the IO to setup for AUX usage.
Returns
None

Referenced by IOCIntStatus().

675 {
676  // Check the arguments.
677  ASSERT((ui32IOId < NUM_IO_MAX) || (ui32IOId == IOID_UNUSED));
678 
679  // Setup the IO.
681 }
#define IOC_PORT_AUX_IO
Definition: ioc.h:169
#define IOID_UNUSED
Definition: ioc.h:151
#define IOC_STD_INPUT
Definition: ioc.h:315
#define ASSERT(expr)
Definition: debug.h:71
#define NUM_IO_MAX
Definition: ioc.h:112
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:96
Here is the call graph for this function:

§ IOCPinTypeGpioInput()

void IOCPinTypeGpioInput ( uint32_t  ui32IOId)

Setup an IO for standard GPIO input.

Setup an IO for standard GPIO input with the following configuration:

Parameters
ui32IOIdis the IO to setup for GPIO input
Returns
None

Referenced by IOCIntStatus().

462 {
463  // Check the arguments.
464  ASSERT(ui32IOId < NUM_IO_MAX);
465 
466  // Setup the IO for standard input.
468 
469  // Enable input mode in the GPIO module.
471 }
#define IOC_STD_INPUT
Definition: ioc.h:315
#define IOC_PORT_GPIO
Definition: ioc.h:167
#define ASSERT(expr)
Definition: debug.h:71
#define NUM_IO_MAX
Definition: ioc.h:112
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:96
#define GPIO_OUTPUT_DISABLE
Definition: gpio.h:108
static void GPIO_setOutputEnableDio(uint32_t dioNumber, uint32_t outputEnableValue)
Sets output enable of a specific DIO.
Definition: gpio.h:260
Here is the call graph for this function:

§ IOCPinTypeGpioOutput()

void IOCPinTypeGpioOutput ( uint32_t  ui32IOId)

Setup an IO for standard GPIO output.

Setup an IO for standard GPIO output with the following configuration:

Parameters
ui32IOIdis the IO to setup for GPIO output
Returns
None

Referenced by IOCIntStatus().

480 {
481  // Check the arguments.
482  ASSERT(ui32IOId < NUM_IO_MAX);
483 
484  // Setup the IO for standard input.
486 
487  // Enable output mode in the GPIO module.
489 }
#define IOC_PORT_GPIO
Definition: ioc.h:167
#define GPIO_OUTPUT_ENABLE
Definition: gpio.h:109
#define IOC_STD_OUTPUT
Definition: ioc.h:320
#define ASSERT(expr)
Definition: debug.h:71
#define NUM_IO_MAX
Definition: ioc.h:112
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:96
static void GPIO_setOutputEnableDio(uint32_t dioNumber, uint32_t outputEnableValue)
Sets output enable of a specific DIO.
Definition: gpio.h:260
Here is the call graph for this function:

§ IOCPinTypeI2c()

void IOCPinTypeI2c ( uint32_t  ui32Base,
uint32_t  ui32Data,
uint32_t  ui32Clk 
)

Configure a set of IOs for standard I2C peripheral control.

Parameters
ui32Baseis the base address of the I2C module to connect to the IOs
ui32Datais the I2C data line
ui32Clkis the I2C input clock
Returns
None

Referenced by IOCIntStatus().

650 {
651  uint32_t ui32IOConfig;
652 
653  // Check the arguments.
654  ASSERT((ui32Data < NUM_IO_MAX) || (ui32Data == IOID_UNUSED));
655  ASSERT((ui32Clk < NUM_IO_MAX) || (ui32Clk == IOID_UNUSED));
656 
657  // Define the IO configuration parameters.
658  ui32IOConfig = IOC_CURRENT_2MA | IOC_STRENGTH_AUTO | IOC_IOPULL_UP |
662 
663  // Setup the IOs in the desired configuration.
664  IOCPortConfigureSet(ui32Data, IOC_PORT_MCU_I2C_MSSDA, ui32IOConfig);
665  IOCPortConfigureSet(ui32Clk, IOC_PORT_MCU_I2C_MSSCL, ui32IOConfig);
666 }
#define IOC_INPUT_ENABLE
Definition: ioc.h:221
#define IOC_PORT_MCU_I2C_MSSDA
Definition: ioc.h:174
#define IOID_UNUSED
Definition: ioc.h:151
#define IOC_IOPULL_UP
Definition: ioc.h:272
#define IOC_PORT_MCU_I2C_MSSCL
Definition: ioc.h:175
#define IOC_INT_DISABLE
Definition: ioc.h:263
#define IOC_NO_WAKE_UP
Definition: ioc.h:231
#define ASSERT(expr)
Definition: debug.h:71
#define NUM_IO_MAX
Definition: ioc.h:112
#define IOC_CURRENT_2MA
Definition: ioc.h:281
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:96
#define IOC_NO_EDGE
Definition: ioc.h:258
#define IOC_IOMODE_OPEN_DRAIN_NORMAL
Definition: ioc.h:242
#define IOC_SLEW_DISABLE
Definition: ioc.h:220
#define IOC_STRENGTH_AUTO
Definition: ioc.h:285
#define IOC_HYST_DISABLE
Definition: ioc.h:224
Here is the call graph for this function:

§ 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.

Parameters
ui32Baseis the base address of the SSI module to connect to the IOs
ui32Rxis the IO to connect to the SSI MISO line.
ui32Txis the IO to connect to the SSI MOSI line.
ui32Fssis the IO to connect to the SSI FSS line.
ui32Clkis the IO to connect to the SSI Clock output line.
Returns
None

Referenced by IOCIntStatus().

535 {
536  // Check the arguments.
537 
538  ASSERT((ui32Base == SSI0_BASE) || (ui32Base == SSI1_BASE));
539  ASSERT((ui32Rx < NUM_IO_MAX) || (ui32Rx == IOID_UNUSED));
540  ASSERT((ui32Tx < NUM_IO_MAX) || (ui32Tx == IOID_UNUSED));
541  ASSERT((ui32Fss < NUM_IO_MAX) || (ui32Fss == IOID_UNUSED));
542  ASSERT((ui32Clk < NUM_IO_MAX) || (ui32Clk == IOID_UNUSED));
543 
544  // Setup the IOs in the desired configuration.
545  if(ui32Base == SSI0_BASE)
546  {
547  if(ui32Rx != IOID_UNUSED)
548  {
550  }
551  if(ui32Tx != IOID_UNUSED)
552  {
554  }
555  if(ui32Fss != IOID_UNUSED)
556  {
558  }
559  if(ui32Clk != IOID_UNUSED)
560  {
562  }
563  }
564  else
565  {
566  if(ui32Rx != IOID_UNUSED)
567  {
569  }
570  if(ui32Tx != IOID_UNUSED)
571  {
573  }
574  if(ui32Fss != IOID_UNUSED)
575  {
577  }
578  if(ui32Clk != IOID_UNUSED)
579  {
581  }
582  }
583 }
#define IOC_PORT_MCU_SSI1_RX
Definition: ioc.h:193
#define IOC_PORT_MCU_SSI1_TX
Definition: ioc.h:194
#define IOC_PORT_MCU_SSI1_CLK
Definition: ioc.h:196
#define IOID_UNUSED
Definition: ioc.h:151
#define IOC_STD_INPUT
Definition: ioc.h:315
#define IOC_STD_OUTPUT
Definition: ioc.h:320
#define IOC_PORT_MCU_SSI0_TX
Definition: ioc.h:171
#define IOC_PORT_MCU_SSI1_FSS
Definition: ioc.h:195
#define ASSERT(expr)
Definition: debug.h:71
#define IOC_PORT_MCU_SSI0_CLK
Definition: ioc.h:173
#define NUM_IO_MAX
Definition: ioc.h:112
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:96
#define IOC_PORT_MCU_SSI0_RX
Definition: ioc.h:170
#define IOC_PORT_MCU_SSI0_FSS
Definition: ioc.h:172
Here is the call graph for this function:

§ 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.

Parameters
ui32Baseis the base address of the SSI module to connect to the IOs
ui32Rxis the IO to connect to the SSI MOSI line.
ui32Txis the IO to connect to the SSI MISO line.
ui32Fssis the IO to connect to the SSI FSS line.
ui32Clkis the IO to connect to the SSI Clock input line.
Returns
None

Referenced by IOCIntStatus().

594 {
595  // Check the arguments.
596  ASSERT((ui32Base == SSI0_BASE) || (ui32Base == SSI1_BASE));
597  ASSERT((ui32Rx < NUM_IO_MAX) || (ui32Rx == IOID_UNUSED));
598  ASSERT((ui32Tx < NUM_IO_MAX) || (ui32Tx == IOID_UNUSED));
599  ASSERT((ui32Fss < NUM_IO_MAX) || (ui32Fss == IOID_UNUSED));
600  ASSERT((ui32Clk < NUM_IO_MAX) || (ui32Clk == IOID_UNUSED));
601 
602  // Setup the IOs in the desired configuration.
603  if(ui32Base == SSI0_BASE)
604  {
605  if(ui32Rx != IOID_UNUSED)
606  {
608  }
609  if(ui32Tx != IOID_UNUSED)
610  {
612  }
613  if(ui32Fss != IOID_UNUSED)
614  {
616  }
617  if(ui32Clk != IOID_UNUSED)
618  {
620  }
621  }
622  else
623  {
624  if(ui32Rx != IOID_UNUSED)
625  {
627  }
628  if(ui32Tx != IOID_UNUSED)
629  {
631  }
632  if(ui32Fss != IOID_UNUSED)
633  {
635  }
636  if(ui32Clk != IOID_UNUSED)
637  {
639  }
640  }
641 }
#define IOC_PORT_MCU_SSI1_RX
Definition: ioc.h:193
#define IOC_PORT_MCU_SSI1_TX
Definition: ioc.h:194
#define IOC_PORT_MCU_SSI1_CLK
Definition: ioc.h:196
#define IOID_UNUSED
Definition: ioc.h:151
#define IOC_STD_INPUT
Definition: ioc.h:315
#define IOC_STD_OUTPUT
Definition: ioc.h:320
#define IOC_PORT_MCU_SSI0_TX
Definition: ioc.h:171
#define IOC_PORT_MCU_SSI1_FSS
Definition: ioc.h:195
#define ASSERT(expr)
Definition: debug.h:71
#define IOC_PORT_MCU_SSI0_CLK
Definition: ioc.h:173
#define NUM_IO_MAX
Definition: ioc.h:112
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:96
#define IOC_PORT_MCU_SSI0_RX
Definition: ioc.h:170
#define IOC_PORT_MCU_SSI0_FSS
Definition: ioc.h:172
Here is the call graph for this function:

§ 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.

The UART pins must be properly configured for the UART peripheral to function correctly. This function provides a typical configuration for those pin(s). Other configurations may work as well depending upon the board setup (for example, using the on-chip pull-ups).

Note
If a UART pin is not intended to be used, then the parameter in the function should be IOID_UNUSED.
Parameters
ui32Baseis the base address of the UART module.
ui32Rxis the IO Id of the IO to use as UART Receive.
ui32Txis the IO Id of the IO to use as UART Transmit.
ui32Ctsis the IO Id of the IO to use for UART Clear to send.
ui32Rtsis the IO Id of the IO to use for UART Request to send.
Returns
None

Referenced by IOCIntStatus().

499 {
500  // Check the arguments.
501  ASSERT(ui32Base == UART0_BASE);
502  ASSERT((ui32Rx < NUM_IO_MAX) || (ui32Rx == IOID_UNUSED));
503  ASSERT((ui32Tx < NUM_IO_MAX) || (ui32Tx == IOID_UNUSED));
504  ASSERT((ui32Cts < NUM_IO_MAX) || (ui32Cts == IOID_UNUSED));
505  ASSERT((ui32Rts < NUM_IO_MAX) || (ui32Rts == IOID_UNUSED));
506 
507  // Setup the IOs in the desired configuration.
508  if(ui32Rx != IOID_UNUSED)
509  {
511  }
512  if(ui32Tx != IOID_UNUSED)
513  {
515  }
516  if(ui32Cts != IOID_UNUSED)
517  {
519  }
520  if(ui32Rts != IOID_UNUSED)
521  {
523  }
524 }
#define IOC_PORT_MCU_UART0_RTS
Definition: ioc.h:179
#define IOID_UNUSED
Definition: ioc.h:151
#define IOC_STD_INPUT
Definition: ioc.h:315
#define IOC_STD_OUTPUT
Definition: ioc.h:320
#define IOC_PORT_MCU_UART0_TX
Definition: ioc.h:177
#define ASSERT(expr)
Definition: debug.h:71
#define NUM_IO_MAX
Definition: ioc.h:112
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:96
#define IOC_PORT_MCU_UART0_RX
Definition: ioc.h:176
#define IOC_PORT_MCU_UART0_CTS
Definition: ioc.h:178
Here is the call graph for this function:

§ IOCPortConfigureGet()

uint32_t IOCPortConfigureGet ( uint32_t  ui32IOId)

Get the configuration of an IO port.

This function is used for getting the configuration of an IO.

Each IO port has a dedicated register for setting up the IO. This function returns the current configuration for the given IO.

Parameters
ui32IOIdselects the IO to return the configuration for.
Returns
Returns the IO Port configuration. See IOCPortConfigureSet() for configuration options.
119 {
120  uint32_t ui32Reg;
121 
122  // Check the arguments.
123  ASSERT(ui32IOId < NUM_IO_MAX);
124 
125  // Get the register address.
126  ui32Reg = IOC_BASE + ( ui32IOId << 2 );
127 
128  // Return the IO configuration.
129  return HWREG(ui32Reg);
130 }
#define ASSERT(expr)
Definition: debug.h:71
#define NUM_IO_MAX
Definition: ioc.h:112

§ IOCPortConfigureSet()

void IOCPortConfigureSet ( uint32_t  ui32IOId,
uint32_t  ui32PortId,
uint32_t  ui32IOConfig 
)

Set the configuration of an IO port.

This function is used to configure the functionality of an IO.

The ui32IOId parameter specifies which IO to configure.

The ui32PortId parameter specifies which functional peripheral to hook up to this IO.

The ui32IOConfig parameter consists of a bitwise OR'ed value of all the available configuration modes

Note
All IO Ports are tied to a specific functionality in a sub module except for the IOC_PORT_AUX_IO. Each of the IOs in the AUX domain are hardcoded to a specific IO. When enabling one or more pins for the AUX domain, they should all be configured to using IOC_PORT_AUX_IO.
Parameters
ui32IOIddefines the IO to configure and must be one of the following:
ui32PortIdselects the functional IO port to connect. The available IO ports are:
ui32IOConfigis the IO configuration consisting of the bitwise OR of all configuration modes:
Returns
None

Referenced by IOCPinTypeAux(), IOCPinTypeGpioInput(), IOCPinTypeGpioOutput(), IOCPinTypeI2c(), IOCPinTypeSsiMaster(), IOCPinTypeSsiSlave(), IOCPinTypeUart(), and SetupAfterColdResetWakeupFromShutDownCfg3().

98 {
99  uint32_t ui32Reg;
100 
101  // Check the arguments.
102  ASSERT(ui32IOId < NUM_IO_MAX);
103  ASSERT(ui32PortId <= IOC_PORT_RFC_GPI1);
104 
105  // Get the register address.
106  ui32Reg = IOC_BASE + ( ui32IOId << 2 );
107 
108  // Configure the port.
109  HWREG(ui32Reg) = ui32IOConfig | ui32PortId;
110 }
#define ASSERT(expr)
Definition: debug.h:71
#define NUM_IO_MAX
Definition: ioc.h:112
#define IOC_PORT_RFC_GPI1
Definition: ioc.h:208

Macro Definition Documentation

§ IOC_BOTH_EDGES

#define IOC_BOTH_EDGES   0x00030000

Referenced by IOCIOIntSet().

§ IOC_CURRENT_2MA

#define IOC_CURRENT_2MA   0x00000000

§ IOC_CURRENT_4MA

#define IOC_CURRENT_4MA   0x00000400

Referenced by IOCIODrvStrengthSet().

§ IOC_CURRENT_8MA

#define IOC_CURRENT_8MA   0x00000800

Referenced by IOCIODrvStrengthSet().

§ IOC_EVT_AON_PROG0_DISABLE

#define IOC_EVT_AON_PROG0_DISABLE   0x00000000

§ IOC_EVT_AON_PROG0_ENABLE

#define IOC_EVT_AON_PROG0_ENABLE   0x00200000

§ IOC_EVT_AON_PROG1_DISABLE

#define IOC_EVT_AON_PROG1_DISABLE   0x00000000

§ IOC_EVT_AON_PROG1_ENABLE

#define IOC_EVT_AON_PROG1_ENABLE   0x00400000

§ IOC_EVT_AON_PROG2_DISABLE

#define IOC_EVT_AON_PROG2_DISABLE   0x00000000

§ IOC_EVT_AON_PROG2_ENABLE

#define IOC_EVT_AON_PROG2_ENABLE   0x00800000

§ IOC_EVT_MCU_WU_DISABLE

#define IOC_EVT_MCU_WU_DISABLE   0x00000000

§ IOC_EVT_MCU_WU_ENABLE

#define IOC_EVT_MCU_WU_ENABLE   0x00000040

§ IOC_EVT_RTC_DISABLE

#define IOC_EVT_RTC_DISABLE   0x00000000

§ IOC_EVT_RTC_ENABLE

#define IOC_EVT_RTC_ENABLE   0x00000080

§ IOC_FALLING_EDGE

#define IOC_FALLING_EDGE   0x00010000

Referenced by IOCIOIntSet().

§ IOC_HYST_DISABLE

#define IOC_HYST_DISABLE   0x00000000

Referenced by IOCIOHystSet(), and IOCPinTypeI2c().

§ IOC_HYST_ENABLE

#define IOC_HYST_ENABLE   0x40000000

§ IOC_INPUT_DISABLE

#define IOC_INPUT_DISABLE   0x00000000

Referenced by IOCIOInputSet().

§ IOC_INPUT_ENABLE

#define IOC_INPUT_ENABLE   0x20000000

Referenced by IOCIOInputSet(), and IOCPinTypeI2c().

§ IOC_INT_DISABLE

#define IOC_INT_DISABLE   0x00000000

Referenced by IOCIOIntSet(), and IOCPinTypeI2c().

§ IOC_INT_ENABLE

#define IOC_INT_ENABLE   0x00040000

Referenced by IOCIOIntSet().

§ IOC_INT_M

#define IOC_INT_M   0x00070000

§ IOC_IOID_MASK

#define IOC_IOID_MASK   0x000000FF

§ IOC_IOMODE_INV

#define IOC_IOMODE_INV   0x01000000

Referenced by IOCIOModeSet().

§ IOC_IOMODE_NORMAL

#define IOC_IOMODE_NORMAL   0x00000000

Referenced by IOCIOModeSet().

§ IOC_IOMODE_OPEN_DRAIN_INV

#define IOC_IOMODE_OPEN_DRAIN_INV   0x05000000

Referenced by IOCIOModeSet().

§ IOC_IOMODE_OPEN_DRAIN_NORMAL

#define IOC_IOMODE_OPEN_DRAIN_NORMAL   0x04000000

Referenced by IOCIOModeSet(), and IOCPinTypeI2c().

§ IOC_IOMODE_OPEN_SRC_INV

#define IOC_IOMODE_OPEN_SRC_INV   0x07000000

Referenced by IOCIOModeSet().

§ IOC_IOMODE_OPEN_SRC_NORMAL

#define IOC_IOMODE_OPEN_SRC_NORMAL   0x06000000

Referenced by IOCIOModeSet().

§ IOC_IOPULL_DOWN

#define IOC_IOPULL_DOWN   0x00002000

Referenced by IOCIOPortPullSet().

§ IOC_IOPULL_M

#define IOC_IOPULL_M   0x00006000

§ IOC_IOPULL_UP

#define IOC_IOPULL_UP   0x00004000

Referenced by IOCIOPortPullSet(), and IOCPinTypeI2c().

§ IOC_NO_EDGE

#define IOC_NO_EDGE   0x00000000

Referenced by IOCIOIntSet(), and IOCPinTypeI2c().

§ IOC_NO_IOPULL

#define IOC_NO_IOPULL   0x00006000

Referenced by IOCIOPortPullSet().

§ IOC_NO_WAKE_UP

#define IOC_NO_WAKE_UP   0x00000000

Referenced by IOCIOShutdownSet(), and IOCPinTypeI2c().

§ IOC_PORT_AON_CLK32K

#define IOC_PORT_AON_CLK32K   0x00000007

§ IOC_PORT_AUX_IO

#define IOC_PORT_AUX_IO   0x00000008

Referenced by IOCPinTypeAux().

§ IOC_PORT_GPIO

#define IOC_PORT_GPIO   0x00000000

§ IOC_PORT_MCU_I2C_MSSCL

#define IOC_PORT_MCU_I2C_MSSCL   0x0000000E

Referenced by IOCPinTypeI2c().

§ IOC_PORT_MCU_I2C_MSSDA

#define IOC_PORT_MCU_I2C_MSSDA   0x0000000D

Referenced by IOCPinTypeI2c().

§ IOC_PORT_MCU_I2S_AD0

#define IOC_PORT_MCU_I2S_AD0   0x00000025

§ IOC_PORT_MCU_I2S_AD1

#define IOC_PORT_MCU_I2S_AD1   0x00000026

§ IOC_PORT_MCU_I2S_BCLK

#define IOC_PORT_MCU_I2S_BCLK   0x00000028

§ IOC_PORT_MCU_I2S_MCLK

#define IOC_PORT_MCU_I2S_MCLK   0x00000029

§ IOC_PORT_MCU_I2S_WCLK

#define IOC_PORT_MCU_I2S_WCLK   0x00000027

§ IOC_PORT_MCU_PORT_EVENT0

#define IOC_PORT_MCU_PORT_EVENT0   0x00000017

§ IOC_PORT_MCU_PORT_EVENT1

#define IOC_PORT_MCU_PORT_EVENT1   0x00000018

§ IOC_PORT_MCU_PORT_EVENT2

#define IOC_PORT_MCU_PORT_EVENT2   0x00000019

§ IOC_PORT_MCU_PORT_EVENT3

#define IOC_PORT_MCU_PORT_EVENT3   0x0000001A

§ IOC_PORT_MCU_PORT_EVENT4

#define IOC_PORT_MCU_PORT_EVENT4   0x0000001B

§ IOC_PORT_MCU_PORT_EVENT5

#define IOC_PORT_MCU_PORT_EVENT5   0x0000001C

§ IOC_PORT_MCU_PORT_EVENT6

#define IOC_PORT_MCU_PORT_EVENT6   0x0000001D

§ IOC_PORT_MCU_PORT_EVENT7

#define IOC_PORT_MCU_PORT_EVENT7   0x0000001E

§ IOC_PORT_MCU_SSI0_CLK

#define IOC_PORT_MCU_SSI0_CLK   0x0000000C

§ IOC_PORT_MCU_SSI0_FSS

#define IOC_PORT_MCU_SSI0_FSS   0x0000000B

§ IOC_PORT_MCU_SSI0_RX

#define IOC_PORT_MCU_SSI0_RX   0x00000009

§ IOC_PORT_MCU_SSI0_TX

#define IOC_PORT_MCU_SSI0_TX   0x0000000A

§ IOC_PORT_MCU_SSI1_CLK

#define IOC_PORT_MCU_SSI1_CLK   0x00000024

§ IOC_PORT_MCU_SSI1_FSS

#define IOC_PORT_MCU_SSI1_FSS   0x00000023

§ IOC_PORT_MCU_SSI1_RX

#define IOC_PORT_MCU_SSI1_RX   0x00000021

§ IOC_PORT_MCU_SSI1_TX

#define IOC_PORT_MCU_SSI1_TX   0x00000022

§ IOC_PORT_MCU_SWV

#define IOC_PORT_MCU_SWV   0x00000020

§ IOC_PORT_MCU_UART0_CTS

#define IOC_PORT_MCU_UART0_CTS   0x00000011

Referenced by IOCPinTypeUart().

§ IOC_PORT_MCU_UART0_RTS

#define IOC_PORT_MCU_UART0_RTS   0x00000012

Referenced by IOCPinTypeUart().

§ IOC_PORT_MCU_UART0_RX

#define IOC_PORT_MCU_UART0_RX   0x0000000F

Referenced by IOCPinTypeUart().

§ IOC_PORT_MCU_UART0_TX

#define IOC_PORT_MCU_UART0_TX   0x00000010

Referenced by IOCPinTypeUart().

§ IOC_PORT_MCU_UART1_CTS

#define IOC_PORT_MCU_UART1_CTS   0x00000015

§ IOC_PORT_MCU_UART1_RTS

#define IOC_PORT_MCU_UART1_RTS   0x00000016

§ IOC_PORT_MCU_UART1_RX

#define IOC_PORT_MCU_UART1_RX   0x00000013

§ IOC_PORT_MCU_UART1_TX

#define IOC_PORT_MCU_UART1_TX   0x00000014

§ IOC_PORT_RFC_GPI0

#define IOC_PORT_RFC_GPI0   0x00000033

§ IOC_PORT_RFC_GPI1

#define IOC_PORT_RFC_GPI1   0x00000034

§ IOC_PORT_RFC_GPO0

#define IOC_PORT_RFC_GPO0   0x0000002F

§ IOC_PORT_RFC_GPO1

#define IOC_PORT_RFC_GPO1   0x00000030

§ IOC_PORT_RFC_GPO2

#define IOC_PORT_RFC_GPO2   0x00000031

§ IOC_PORT_RFC_GPO3

#define IOC_PORT_RFC_GPO3   0x00000032

§ IOC_PORT_RFC_SMI_CL_IN

#define IOC_PORT_RFC_SMI_CL_IN   0x00000038

§ IOC_PORT_RFC_SMI_CL_OUT

#define IOC_PORT_RFC_SMI_CL_OUT   0x00000037

§ IOC_PORT_RFC_SMI_DL_IN

#define IOC_PORT_RFC_SMI_DL_IN   0x00000036

§ IOC_PORT_RFC_SMI_DL_OUT

#define IOC_PORT_RFC_SMI_DL_OUT   0x00000035

§ IOC_PORT_RFC_TRC

#define IOC_PORT_RFC_TRC   0x0000002E

§ IOC_RISING_EDGE

#define IOC_RISING_EDGE   0x00020000

Referenced by IOCIOIntSet().

§ IOC_SLEW_DISABLE

#define IOC_SLEW_DISABLE   0x00000000

Referenced by IOCIOSlewCtrlSet(), and IOCPinTypeI2c().

§ IOC_SLEW_ENABLE

#define IOC_SLEW_ENABLE   0x00001000

Referenced by IOCIOSlewCtrlSet().

§ IOC_STD_INPUT

#define IOC_STD_INPUT
Value:
IOC_NO_IOPULL | IOC_SLEW_DISABLE | \
IOC_HYST_DISABLE | IOC_NO_EDGE | \
IOC_INT_DISABLE | IOC_IOMODE_NORMAL | \
IOC_NO_WAKE_UP | IOC_INPUT_ENABLE )
#define IOC_INPUT_ENABLE
Definition: ioc.h:221
#define IOC_CURRENT_2MA
Definition: ioc.h:281
#define IOC_NO_EDGE
Definition: ioc.h:258
#define IOC_SLEW_DISABLE
Definition: ioc.h:220
#define IOC_STRENGTH_AUTO
Definition: ioc.h:285
#define IOC_IOMODE_NORMAL
Definition: ioc.h:240

Referenced by IOCPinTypeAux(), IOCPinTypeGpioInput(), IOCPinTypeSsiMaster(), IOCPinTypeSsiSlave(), IOCPinTypeUart(), and SetupAfterColdResetWakeupFromShutDownCfg3().

§ IOC_STD_OUTPUT

#define IOC_STD_OUTPUT
Value:
IOC_NO_IOPULL | IOC_SLEW_DISABLE | \
IOC_HYST_DISABLE | IOC_NO_EDGE | \
IOC_INT_DISABLE | IOC_IOMODE_NORMAL | \
IOC_NO_WAKE_UP | IOC_INPUT_DISABLE )
#define IOC_INPUT_DISABLE
Definition: ioc.h:222
#define IOC_CURRENT_2MA
Definition: ioc.h:281
#define IOC_NO_EDGE
Definition: ioc.h:258
#define IOC_SLEW_DISABLE
Definition: ioc.h:220
#define IOC_STRENGTH_AUTO
Definition: ioc.h:285
#define IOC_IOMODE_NORMAL
Definition: ioc.h:240

Referenced by IOCPinTypeGpioOutput(), IOCPinTypeSsiMaster(), IOCPinTypeSsiSlave(), and IOCPinTypeUart().

§ IOC_STRENGTH_AUTO

#define IOC_STRENGTH_AUTO   0x00000000

§ IOC_STRENGTH_MAX

#define IOC_STRENGTH_MAX   0x00000300

Referenced by IOCIODrvStrengthSet().

§ IOC_STRENGTH_MED

#define IOC_STRENGTH_MED   0x00000200

Referenced by IOCIODrvStrengthSet().

§ IOC_STRENGTH_MIN

#define IOC_STRENGTH_MIN   0x00000100

Referenced by IOCIODrvStrengthSet().

§ IOC_WAKE_ON_HIGH

#define IOC_WAKE_ON_HIGH   0x18000000

Referenced by IOCIOShutdownSet().

§ IOC_WAKE_ON_LOW

#define IOC_WAKE_ON_LOW   0x10000000

Referenced by IOCIOShutdownSet().

§ IOID_0

#define IOID_0   0x00000000

§ IOID_1

#define IOID_1   0x00000001

§ IOID_10

#define IOID_10   0x0000000A

§ IOID_11

#define IOID_11   0x0000000B

§ IOID_12

#define IOID_12   0x0000000C

§ IOID_13

#define IOID_13   0x0000000D

§ IOID_14

#define IOID_14   0x0000000E

§ IOID_15

#define IOID_15   0x0000000F

§ IOID_16

#define IOID_16   0x00000010

§ IOID_17

#define IOID_17   0x00000011

§ IOID_18

#define IOID_18   0x00000012

§ IOID_19

#define IOID_19   0x00000013

§ IOID_2

#define IOID_2   0x00000002

§ IOID_20

#define IOID_20   0x00000014

§ IOID_21

#define IOID_21   0x00000015

§ IOID_22

#define IOID_22   0x00000016

§ IOID_23

#define IOID_23   0x00000017

§ IOID_24

#define IOID_24   0x00000018

§ IOID_25

#define IOID_25   0x00000019

§ IOID_26

#define IOID_26   0x0000001A

§ IOID_27

#define IOID_27   0x0000001B

§ IOID_28

#define IOID_28   0x0000001C

§ IOID_29

#define IOID_29   0x0000001D

§ IOID_3

#define IOID_3   0x00000003

§ IOID_30

#define IOID_30   0x0000001E

§ IOID_31

#define IOID_31   0x0000001F

Referenced by IOCIntClear(), and IOCIntStatus().

§ IOID_4

#define IOID_4   0x00000004

§ IOID_5

#define IOID_5   0x00000005

§ IOID_6

#define IOID_6   0x00000006

§ IOID_7

#define IOID_7   0x00000007

§ IOID_8

#define IOID_8   0x00000008

§ IOID_9

#define IOID_9   0x00000009

§ IOID_UNUSED

#define IOID_UNUSED   0xFFFFFFFF

§ NUM_IO_MAX

§ NUM_IO_PORTS

#define NUM_IO_PORTS   56