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

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
877 {
878  // Check the arguments.
879  ASSERT(ui32IOId <= IOID_31);
880 
881  // Clear the requested interrupt source by clearing the event.
882  GPIO_clearEventDio(ui32IOId);
883 }
static void GPIO_clearEventDio(uint32_t dioNumber)
Clears the IO event status of a specific DIO.
Definition: gpio.h:591
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:152

Here is the call graph for this function:

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
441 {
442  uint32_t ui32IOReg;
443  uint32_t ui32Config;
444 
445  // Check the arguments.
446  ASSERT(ui32IOId <= IOID_31);
447 
448  // Get the register address.
449  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
450 
451  // Disable the specified interrupt.
452  ui32Config = HWREG(ui32IOReg);
453  ui32Config &= ~IOC_IOCFG0_EDGE_IRQ_EN;
454  HWREG(ui32IOReg) = ui32Config;
455 }
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:152
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
418 {
419  uint32_t ui32IOReg;
420  uint32_t ui32Config;
421 
422  // Check the arguments.
423  ASSERT(ui32IOId <= IOID_31);
424 
425  // Get the register address.
426  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
427 
428  // Enable the specified interrupt.
429  ui32Config = HWREG(ui32IOReg);
430  ui32Config |= IOC_IOCFG0_EDGE_IRQ_EN;
431  HWREG(ui32IOReg) = ui32Config;
432 }
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:152
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.
780 {
781  // Register the interrupt handler.
782  IntRegister(INT_AON_GPIO_EDGE, pfnHandler);
783 
784  // Enable the IO edge interrupt.
785  IntEnable(INT_AON_GPIO_EDGE);
786 }
void IntRegister(uint32_t ui32Interrupt, void(*pfnHandler)(void))
Registers a function as an interrupt handler in the dynamic vector table.
Definition: interrupt.c:153
void IntEnable(uint32_t ui32Interrupt)
Enables an interrupt or system exception.
Definition: interrupt.c:283

Here is the call graph for this function:

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
899 {
900  // Check the arguments.
901  ASSERT(ui32IOId <= IOID_31);
902 
903  // Get the event status.
904  return (GPIO_getEventDio(ui32IOId));
905 }
static uint32_t GPIO_getEventDio(uint32_t dioNumber)
Gets the event status of a specific DIO.
Definition: gpio.h:539
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:152

Here is the call graph for this function:

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.
803 {
804  // Disable the interrupts.
805  IntDisable(INT_AON_GPIO_EDGE);
806 
807  // Unregister the interrupt handler.
808  IntUnregister(INT_AON_GPIO_EDGE);
809 }
void IntUnregister(uint32_t ui32Interrupt)
Unregisters an interrupt handler in the dynamic vector table.
Definition: interrupt.c:189
void IntDisable(uint32_t ui32Interrupt)
Disables an interrupt or system exception.
Definition: interrupt.c:327

Here is the call graph for this function:

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
364 {
365  uint32_t ui32IOReg;
366  uint32_t ui32Config;
367 
368  // Check the arguments.
369  ASSERT(ui32IOId <= IOID_31);
370  ASSERT((ui32IOCurrent == IOC_CURRENT_2MA) ||
371  (ui32IOCurrent == IOC_CURRENT_4MA) ||
372  (ui32IOCurrent == IOC_CURRENT_8MA));
373  ASSERT((ui32DrvStrength == IOC_STRENGTH_MIN) ||
374  (ui32DrvStrength == IOC_STRENGTH_MAX) ||
375  (ui32DrvStrength == IOC_STRENGTH_MED) ||
376  (ui32DrvStrength == IOC_STRENGTH_AUTO));
377 
378  // Get the register address.
379  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
380 
381  // Configure the IO.
382  ui32Config = HWREG(ui32IOReg);
383  ui32Config &= ~(IOC_IOCFG0_IOCURR_M | IOC_IOCFG0_IOSTR_M);
384  HWREG(ui32IOReg) = ui32Config | (ui32IOCurrent | ui32DrvStrength);
385 }
#define IOC_STRENGTH_MED
Definition: ioc.h:292
#define IOC_STRENGTH_MAX
Definition: ioc.h:290
#define ASSERT(expr)
Definition: debug.h:73
#define IOC_STRENGTH_MIN
Definition: ioc.h:294
#define IOC_CURRENT_2MA
Definition: ioc.h:284
#define IOC_CURRENT_8MA
Definition: ioc.h:286
#define IOC_CURRENT_4MA
Definition: ioc.h:285
#define IOC_STRENGTH_AUTO
Definition: ioc.h:288
#define IOID_31
Definition: ioc.h:152
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.
226 {
227  uint32_t ui32IOReg;
228  uint32_t ui32Config;
229 
230  // Check the arguments.
231  ASSERT(ui32IOId <= IOID_31);
232  ASSERT( (ui32Evt & ~(IOC_IOCFG0_IOEV_AON_PROG2_EN_M |
236  IOC_IOCFG0_IOEV_MCU_WU_EN_M) ) == 0x00000000);
237 
238  // Get the register address.
239  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
240 
241  // Read current configuration.
242  ui32Config = HWREG(ui32IOReg);
243 
244  // Disable generation of all events.
245  ui32Config &= ~(IOC_IOCFG0_IOEV_AON_PROG2_EN_M |
250 
251  // Enable the required events.
252  HWREG(ui32IOReg) = ui32Config | ui32Evt;
253 }
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:152
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
288 {
289  uint32_t ui32IOReg;
290  uint32_t ui32Config;
291 
292  // Check the arguments.
293  ASSERT(ui32IOId <= IOID_31);
294  ASSERT((ui32Hysteresis == IOC_HYST_ENABLE) ||
295  (ui32Hysteresis == IOC_HYST_DISABLE));
296 
297  // Get the register address.
298  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
299 
300  // Configure the IO.
301  ui32Config = HWREG(ui32IOReg);
302  ui32Config &= ~IOC_IOCFG0_HYST_EN;
303  HWREG(ui32IOReg) = ui32Config | ui32Hysteresis;
304 }
#define ASSERT(expr)
Definition: debug.h:73
#define IOC_HYST_ENABLE
Definition: ioc.h:225
#define IOC_HYST_DISABLE
Definition: ioc.h:226
#define IOID_31
Definition: ioc.h:152
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
313 {
314  uint32_t ui32IOReg;
315  uint32_t ui32Config;
316 
317  // Check the arguments.
318  ASSERT(ui32IOId <= IOID_31);
319  ASSERT((ui32Input == IOC_INPUT_ENABLE) ||
320  (ui32Input == IOC_INPUT_DISABLE));
321 
322  // Get the register address.
323  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
324 
325  // Configure the IO.
326  ui32Config = HWREG(ui32IOReg);
327  ui32Config &= ~IOC_IOCFG0_IE;
328  HWREG(ui32IOReg) = ui32Config | ui32Input;
329 }
#define IOC_INPUT_ENABLE
Definition: ioc.h:223
#define IOC_INPUT_DISABLE
Definition: ioc.h:224
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:152
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
197 {
198  uint32_t ui32IOReg;
199  uint32_t ui32Config;
200 
201  // Check the arguments.
202  ASSERT(ui32IOId <= IOID_31);
203  ASSERT((ui32Int == IOC_INT_ENABLE) ||
204  (ui32Int == IOC_INT_DISABLE));
205  ASSERT((ui32EdgeDet == IOC_NO_EDGE) ||
206  (ui32EdgeDet == IOC_FALLING_EDGE) ||
207  (ui32EdgeDet == IOC_RISING_EDGE) ||
208  (ui32EdgeDet == IOC_BOTH_EDGES));
209 
210  // Get the register address.
211  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
212 
213  // Configure the IO.
214  ui32Config = HWREG(ui32IOReg);
216  HWREG(ui32IOReg) = ui32Config | ((ui32Int ? IOC_IOCFG0_EDGE_IRQ_EN : 0) | ui32EdgeDet);
217 }
#define IOC_FALLING_EDGE
Definition: ioc.h:261
#define IOC_BOTH_EDGES
Definition: ioc.h:263
#define IOC_INT_DISABLE
Definition: ioc.h:265
#define IOC_RISING_EDGE
Definition: ioc.h:262
#define ASSERT(expr)
Definition: debug.h:73
#define IOC_NO_EDGE
Definition: ioc.h:260
#define IOC_INT_ENABLE
Definition: ioc.h:264
#define IOID_31
Definition: ioc.h:152
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
168 {
169  uint32_t ui32Reg;
170  uint32_t ui32Config;
171 
172  // Check the arguments.
173  ASSERT(ui32IOId <= IOID_31);
174  ASSERT((ui32IOMode == IOC_IOMODE_NORMAL) ||
175  (ui32IOMode == IOC_IOMODE_INV) ||
176  (ui32IOMode == IOC_IOMODE_OPEN_DRAIN_NORMAL) ||
177  (ui32IOMode == IOC_IOMODE_OPEN_DRAIN_INV) ||
178  (ui32IOMode == IOC_IOMODE_OPEN_SRC_NORMAL) ||
179  (ui32IOMode == IOC_IOMODE_OPEN_SRC_INV));
180 
181  // Get the register address.
182  ui32Reg = IOC_BASE + ( ui32IOId << 2 );
183 
184  // Configure the IO.
185  ui32Config = HWREG(ui32Reg);
186  ui32Config &= ~IOC_IOCFG0_IOMODE_M;
187  HWREG(ui32Reg) = ui32Config | ui32IOMode;
188 }
#define IOC_IOMODE_OPEN_SRC_INV
Definition: ioc.h:251
#define IOC_IOMODE_OPEN_DRAIN_INV
Definition: ioc.h:246
#define IOC_IOMODE_OPEN_SRC_NORMAL
Definition: ioc.h:249
#define IOC_IOMODE_INV
Definition: ioc.h:243
#define ASSERT(expr)
Definition: debug.h:73
#define IOC_IOMODE_OPEN_DRAIN_NORMAL
Definition: ioc.h:244
#define IOID_31
Definition: ioc.h:152
#define IOC_IOMODE_NORMAL
Definition: ioc.h:242
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
394 {
395  uint32_t ui32IOReg;
396  uint32_t ui32Config;
397 
398  // Check the arguments.
399  ASSERT(ui32IOId <= IOID_31);
400  ASSERT(ui32PortId <= IOC_PORT_RFC_GPI1);
401 
402  // Get the register address.
403  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
404 
405  // Configure the IO.
406  ui32Config = HWREG(ui32IOReg);
407  ui32Config &= ~IOC_IOCFG0_PORT_ID_M;
408  HWREG(ui32IOReg) = ui32Config | ui32PortId;
409 }
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:152
#define IOC_PORT_RFC_GPI1
Definition: ioc.h:210
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
262 {
263  uint32_t ui32IOReg;
264  uint32_t ui32Config;
265 
266  // Check the argument.
267  ASSERT(ui32IOId <= IOID_31);
268  ASSERT((ui32Pull == IOC_NO_IOPULL) ||
269  (ui32Pull == IOC_IOPULL_UP) ||
270  (ui32Pull == IOC_IOPULL_DOWN));
271 
272  // Get the register address.
273  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
274 
275  // Configure the IO.
276  ui32Config = HWREG(ui32IOReg);
277  ui32Config &= ~IOC_IOCFG0_PULL_CTL_M;
278  HWREG(ui32IOReg) = ui32Config | ui32Pull;
279 }
#define IOC_IOPULL_DOWN
Definition: ioc.h:275
#define IOC_IOPULL_UP
Definition: ioc.h:274
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:152
#define IOC_NO_IOPULL
Definition: ioc.h:273
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
141 {
142  uint32_t ui32Reg;
143  uint32_t ui32Config;
144 
145  // Check the arguments.
146  ASSERT(ui32IOId <= IOID_31);
147  ASSERT((ui32IOShutdown == IOC_NO_WAKE_UP) ||
148  (ui32IOShutdown == IOC_WAKE_ON_LOW) ||
149  (ui32IOShutdown == IOC_WAKE_ON_HIGH));
150 
151  // Get the register address.
152  ui32Reg = IOC_BASE + ( ui32IOId << 2 );
153 
154  // Configure the IO.
155  ui32Config = HWREG(ui32Reg);
156  ui32Config &= ~IOC_IOCFG0_WU_CFG_M;
157  HWREG(ui32Reg) = ui32Config | ui32IOShutdown;
158 }
#define IOC_WAKE_ON_HIGH
Definition: ioc.h:235
#define IOC_NO_WAKE_UP
Definition: ioc.h:233
#define IOC_WAKE_ON_LOW
Definition: ioc.h:234
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:152
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
338 {
339  uint32_t ui32IOReg;
340  uint32_t ui32Config;
341 
342  // Check the arguments.
343  ASSERT(ui32IOId <= IOID_31);
344  ASSERT((ui32SlewEnable == IOC_SLEW_ENABLE) ||
345  (ui32SlewEnable == IOC_SLEW_DISABLE));
346 
347  // Get the register address.
348  ui32IOReg = IOC_BASE + ( ui32IOId << 2 );
349 
350  // Configure the IO.
351  ui32Config = HWREG(ui32IOReg);
352  ui32Config &= ~IOC_IOCFG0_SLEW_RED;
353  HWREG(ui32IOReg) = ui32Config | ui32SlewEnable;
354 }
#define IOC_SLEW_ENABLE
Definition: ioc.h:221
#define ASSERT(expr)
Definition: debug.h:73
#define IOC_SLEW_DISABLE
Definition: ioc.h:222
#define IOID_31
Definition: ioc.h:152
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
677 {
678  // Check the arguments.
679  ASSERT((ui32IOId <= IOID_31) || (ui32IOId == IOID_UNUSED));
680 
681  // Setup the IO.
683 }
#define IOC_PORT_AUX_IO
Definition: ioc.h:171
#define IOID_UNUSED
Definition: ioc.h:153
#define IOC_STD_INPUT
Definition: ioc.h:318
#define ASSERT(expr)
Definition: debug.h:73
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:98
#define IOID_31
Definition: ioc.h:152

Here is the call graph for this function:

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
464 {
465  // Check the arguments.
466  ASSERT(ui32IOId <= IOID_31);
467 
468  // Setup the IO for standard input.
470 
471  // Enable input mode in the GPIO module.
473 }
#define IOC_STD_INPUT
Definition: ioc.h:318
#define IOC_PORT_GPIO
Definition: ioc.h:169
#define ASSERT(expr)
Definition: debug.h:73
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:98
#define GPIO_OUTPUT_DISABLE
Definition: gpio.h:150
#define IOID_31
Definition: ioc.h:152
static void GPIO_setOutputEnableDio(uint32_t dioNumber, uint32_t outputEnableValue)
Sets output enable of a specific DIO.
Definition: gpio.h:479

Here is the call graph for this function:

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
482 {
483  // Check the arguments.
484  ASSERT(ui32IOId <= IOID_31);
485 
486  // Setup the IO for standard input.
488 
489  // Enable output mode in the GPIO module.
491 }
#define IOC_PORT_GPIO
Definition: ioc.h:169
#define GPIO_OUTPUT_ENABLE
Definition: gpio.h:151
#define IOC_STD_OUTPUT
Definition: ioc.h:323
#define ASSERT(expr)
Definition: debug.h:73
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:98
#define IOID_31
Definition: ioc.h:152
static void GPIO_setOutputEnableDio(uint32_t dioNumber, uint32_t outputEnableValue)
Sets output enable of a specific DIO.
Definition: gpio.h:479

Here is the call graph for this function:

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
651 {
652  uint32_t ui32IOConfig;
653 
654  // Check the arguments.
655  ASSERT((ui32Data <= IOID_31) || (ui32Data == IOID_UNUSED));
656  ASSERT((ui32Clk <= IOID_31) || (ui32Clk == IOID_UNUSED));
657 
658  // Define the IO configuration parameters.
659  ui32IOConfig = IOC_CURRENT_2MA | IOC_STRENGTH_AUTO | IOC_IOPULL_UP |
663 
664  // Setup the IOs in the desired configuration.
665  IOCPortConfigureSet(ui32Data, IOC_PORT_MCU_I2C_MSSDA, ui32IOConfig);
666  IOCPortConfigureSet(ui32Clk, IOC_PORT_MCU_I2C_MSSCL, ui32IOConfig);
667 }
#define IOC_INPUT_ENABLE
Definition: ioc.h:223
#define IOC_PORT_MCU_I2C_MSSDA
Definition: ioc.h:176
#define IOID_UNUSED
Definition: ioc.h:153
#define IOC_IOPULL_UP
Definition: ioc.h:274
#define IOC_PORT_MCU_I2C_MSSCL
Definition: ioc.h:177
#define IOC_INT_DISABLE
Definition: ioc.h:265
#define IOC_NO_WAKE_UP
Definition: ioc.h:233
#define ASSERT(expr)
Definition: debug.h:73
#define IOC_CURRENT_2MA
Definition: ioc.h:284
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:98
#define IOC_NO_EDGE
Definition: ioc.h:260
#define IOC_IOMODE_OPEN_DRAIN_NORMAL
Definition: ioc.h:244
#define IOC_SLEW_DISABLE
Definition: ioc.h:222
#define IOC_STRENGTH_AUTO
Definition: ioc.h:288
#define IOC_HYST_DISABLE
Definition: ioc.h:226
#define IOID_31
Definition: ioc.h:152

Here is the call graph for this function:

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
537 {
538  // Check the arguments.
539  ASSERT((ui32Base == SSI0_BASE) || (ui32Base == SSI1_BASE));
540  ASSERT((ui32Rx <= IOID_31) || (ui32Rx == IOID_UNUSED));
541  ASSERT((ui32Tx <= IOID_31) || (ui32Tx == IOID_UNUSED));
542  ASSERT((ui32Fss <= IOID_31) || (ui32Fss == IOID_UNUSED));
543  ASSERT((ui32Clk <= IOID_31) || (ui32Clk == IOID_UNUSED));
544 
545  // Setup the IOs in the desired configuration.
546  if(ui32Base == SSI0_BASE)
547  {
548  if(ui32Rx != IOID_UNUSED)
549  {
551  }
552  if(ui32Tx != IOID_UNUSED)
553  {
555  }
556  if(ui32Fss != IOID_UNUSED)
557  {
559  }
560  if(ui32Clk != IOID_UNUSED)
561  {
563  }
564  }
565  else
566  {
567  if(ui32Rx != IOID_UNUSED)
568  {
570  }
571  if(ui32Tx != IOID_UNUSED)
572  {
574  }
575  if(ui32Fss != IOID_UNUSED)
576  {
578  }
579  if(ui32Clk != IOID_UNUSED)
580  {
582  }
583  }
584 }
#define IOC_PORT_MCU_SSI1_RX
Definition: ioc.h:195
#define IOC_PORT_MCU_SSI1_TX
Definition: ioc.h:196
#define IOC_PORT_MCU_SSI1_CLK
Definition: ioc.h:198
#define IOID_UNUSED
Definition: ioc.h:153
#define IOC_STD_INPUT
Definition: ioc.h:318
#define IOC_STD_OUTPUT
Definition: ioc.h:323
#define IOC_PORT_MCU_SSI0_TX
Definition: ioc.h:173
#define IOC_PORT_MCU_SSI1_FSS
Definition: ioc.h:197
#define ASSERT(expr)
Definition: debug.h:73
#define IOC_PORT_MCU_SSI0_CLK
Definition: ioc.h:175
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:98
#define IOC_PORT_MCU_SSI0_RX
Definition: ioc.h:172
#define IOID_31
Definition: ioc.h:152
#define IOC_PORT_MCU_SSI0_FSS
Definition: ioc.h:174

Here is the call graph for this function:

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
595 {
596  // Check the arguments.
597  ASSERT((ui32Base == SSI0_BASE) || (ui32Base == SSI1_BASE));
598  ASSERT((ui32Rx <= IOID_31) || (ui32Rx == IOID_UNUSED));
599  ASSERT((ui32Tx <= IOID_31) || (ui32Tx == IOID_UNUSED));
600  ASSERT((ui32Fss <= IOID_31) || (ui32Fss == IOID_UNUSED));
601  ASSERT((ui32Clk <= IOID_31) || (ui32Clk == IOID_UNUSED));
602 
603  // Setup the IOs in the desired configuration.
604  if(ui32Base == SSI0_BASE)
605  {
606  if(ui32Rx != IOID_UNUSED)
607  {
609  }
610  if(ui32Tx != IOID_UNUSED)
611  {
613  }
614  if(ui32Fss != IOID_UNUSED)
615  {
617  }
618  if(ui32Clk != IOID_UNUSED)
619  {
621  }
622  }
623  else
624  {
625  if(ui32Rx != IOID_UNUSED)
626  {
628  }
629  if(ui32Tx != IOID_UNUSED)
630  {
632  }
633  if(ui32Fss != IOID_UNUSED)
634  {
636  }
637  if(ui32Clk != IOID_UNUSED)
638  {
640  }
641  }
642 }
#define IOC_PORT_MCU_SSI1_RX
Definition: ioc.h:195
#define IOC_PORT_MCU_SSI1_TX
Definition: ioc.h:196
#define IOC_PORT_MCU_SSI1_CLK
Definition: ioc.h:198
#define IOID_UNUSED
Definition: ioc.h:153
#define IOC_STD_INPUT
Definition: ioc.h:318
#define IOC_STD_OUTPUT
Definition: ioc.h:323
#define IOC_PORT_MCU_SSI0_TX
Definition: ioc.h:173
#define IOC_PORT_MCU_SSI1_FSS
Definition: ioc.h:197
#define ASSERT(expr)
Definition: debug.h:73
#define IOC_PORT_MCU_SSI0_CLK
Definition: ioc.h:175
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:98
#define IOC_PORT_MCU_SSI0_RX
Definition: ioc.h:172
#define IOID_31
Definition: ioc.h:152
#define IOC_PORT_MCU_SSI0_FSS
Definition: ioc.h:174

Here is the call graph for this function:

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
501 {
502  // Check the arguments.
503  ASSERT(ui32Base == UART0_BASE);
504  ASSERT((ui32Rx <= IOID_31) || (ui32Rx == IOID_UNUSED));
505  ASSERT((ui32Tx <= IOID_31) || (ui32Tx == IOID_UNUSED));
506  ASSERT((ui32Cts <= IOID_31) || (ui32Cts == IOID_UNUSED));
507  ASSERT((ui32Rts <= IOID_31) || (ui32Rts == IOID_UNUSED));
508 
509  // Setup the IOs in the desired configuration.
510  if(ui32Rx != IOID_UNUSED)
511  {
513  }
514  if(ui32Tx != IOID_UNUSED)
515  {
517  }
518  if(ui32Cts != IOID_UNUSED)
519  {
521  }
522  if(ui32Rts != IOID_UNUSED)
523  {
525  }
526 }
#define IOC_PORT_MCU_UART0_RTS
Definition: ioc.h:181
#define IOID_UNUSED
Definition: ioc.h:153
#define IOC_STD_INPUT
Definition: ioc.h:318
#define IOC_STD_OUTPUT
Definition: ioc.h:323
#define IOC_PORT_MCU_UART0_TX
Definition: ioc.h:179
#define ASSERT(expr)
Definition: debug.h:73
void IOCPortConfigureSet(uint32_t ui32IOId, uint32_t ui32PortId, uint32_t ui32IOConfig)
Set the configuration of an IO port.
Definition: ioc.c:98
#define IOC_PORT_MCU_UART0_RX
Definition: ioc.h:178
#define IOC_PORT_MCU_UART0_CTS
Definition: ioc.h:180
#define IOID_31
Definition: ioc.h:152

Here is the call graph for this function:

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.
121 {
122  uint32_t ui32Reg;
123 
124  // Check the arguments.
125  ASSERT(ui32IOId <= IOID_31);
126 
127  // Get the register address.
128  ui32Reg = IOC_BASE + ( ui32IOId << 2 );
129 
130  // Return the IO configuration.
131  return HWREG(ui32Reg);
132 }
#define ASSERT(expr)
Definition: debug.h:73
#define IOID_31
Definition: ioc.h:152
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().

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

Macro Definition Documentation

#define IOC_BOTH_EDGES   0x00030000

Referenced by IOCIOIntSet().

#define IOC_CURRENT_2MA   0x00000000
#define IOC_CURRENT_4MA   0x00000400

Referenced by IOCIODrvStrengthSet().

#define IOC_CURRENT_8MA   0x00000800

Referenced by IOCIODrvStrengthSet().

#define IOC_EVT_AON_PROG0_DISABLE   0x00000000
#define IOC_EVT_AON_PROG0_ENABLE   0x00200000
#define IOC_EVT_AON_PROG1_DISABLE   0x00000000
#define IOC_EVT_AON_PROG1_ENABLE   0x00400000
#define IOC_EVT_AON_PROG2_DISABLE   0x00000000
#define IOC_EVT_AON_PROG2_ENABLE   0x00800000
#define IOC_EVT_MCU_WU_DISABLE   0x00000000
#define IOC_EVT_MCU_WU_ENABLE   0x00000040
#define IOC_EVT_RTC_DISABLE   0x00000000
#define IOC_EVT_RTC_ENABLE   0x00000080
#define IOC_FALLING_EDGE   0x00010000

Referenced by IOCIOIntSet().

#define IOC_HYST_DISABLE   0x00000000

Referenced by IOCIOHystSet(), and IOCPinTypeI2c().

#define IOC_HYST_ENABLE   0x40000000
#define IOC_INPUT_DISABLE   0x00000000

Referenced by IOCIOInputSet().

#define IOC_INPUT_ENABLE   0x20000000

Referenced by IOCIOInputSet(), and IOCPinTypeI2c().

#define IOC_INT_DISABLE   0x00000000

Referenced by IOCIOIntSet(), and IOCPinTypeI2c().

#define IOC_INT_ENABLE   0x00040000

Referenced by IOCIOIntSet().

#define IOC_INT_M   0x00070000
#define IOC_IOID_MASK   0x000000FF
#define IOC_IOMODE_INV   0x01000000

Referenced by IOCIOModeSet().

#define IOC_IOMODE_NORMAL   0x00000000

Referenced by IOCIOModeSet().

#define IOC_IOMODE_OPEN_DRAIN_INV   0x05000000

Referenced by IOCIOModeSet().

#define IOC_IOMODE_OPEN_DRAIN_NORMAL   0x04000000

Referenced by IOCIOModeSet(), and IOCPinTypeI2c().

#define IOC_IOMODE_OPEN_SRC_INV   0x07000000

Referenced by IOCIOModeSet().

#define IOC_IOMODE_OPEN_SRC_NORMAL   0x06000000

Referenced by IOCIOModeSet().

#define IOC_IOPULL_DOWN   0x00002000

Referenced by IOCIOPortPullSet().

#define IOC_IOPULL_M   0x00006000
#define IOC_IOPULL_M   0x00006000
#define IOC_IOPULL_UP   0x00004000

Referenced by IOCIOPortPullSet(), and IOCPinTypeI2c().

#define IOC_NO_EDGE   0x00000000

Referenced by IOCIOIntSet(), and IOCPinTypeI2c().

#define IOC_NO_IOPULL   0x00006000

Referenced by IOCIOPortPullSet().

#define IOC_NO_WAKE_UP   0x00000000

Referenced by IOCIOShutdownSet(), and IOCPinTypeI2c().

#define IOC_PORT_AON_CLK32K   0x00000007
#define IOC_PORT_AUX_IO   0x00000008

Referenced by IOCPinTypeAux().

#define IOC_PORT_GPIO   0x00000000
#define IOC_PORT_MCU_I2C_MSSCL   0x0000000E

Referenced by IOCPinTypeI2c().

#define IOC_PORT_MCU_I2C_MSSDA   0x0000000D

Referenced by IOCPinTypeI2c().

#define IOC_PORT_MCU_I2S_AD0   0x00000025
#define IOC_PORT_MCU_I2S_AD1   0x00000026
#define IOC_PORT_MCU_I2S_BCLK   0x00000028
#define IOC_PORT_MCU_I2S_MCLK   0x00000029
#define IOC_PORT_MCU_I2S_WCLK   0x00000027
#define IOC_PORT_MCU_PORT_EVENT0   0x00000017
#define IOC_PORT_MCU_PORT_EVENT1   0x00000018
#define IOC_PORT_MCU_PORT_EVENT2   0x00000019
#define IOC_PORT_MCU_PORT_EVENT3   0x0000001A
#define IOC_PORT_MCU_PORT_EVENT4   0x0000001B
#define IOC_PORT_MCU_PORT_EVENT5   0x0000001C
#define IOC_PORT_MCU_PORT_EVENT6   0x0000001D
#define IOC_PORT_MCU_PORT_EVENT7   0x0000001E
#define IOC_PORT_MCU_SSI0_CLK   0x0000000C
#define IOC_PORT_MCU_SSI0_FSS   0x0000000B
#define IOC_PORT_MCU_SSI0_RX   0x00000009
#define IOC_PORT_MCU_SSI0_TX   0x0000000A
#define IOC_PORT_MCU_SSI1_CLK   0x00000024
#define IOC_PORT_MCU_SSI1_FSS   0x00000023
#define IOC_PORT_MCU_SSI1_RX   0x00000021
#define IOC_PORT_MCU_SSI1_TX   0x00000022
#define IOC_PORT_MCU_SWV   0x00000020
#define IOC_PORT_MCU_UART0_CTS   0x00000011

Referenced by IOCPinTypeUart().

#define IOC_PORT_MCU_UART0_RTS   0x00000012

Referenced by IOCPinTypeUart().

#define IOC_PORT_MCU_UART0_RX   0x0000000F

Referenced by IOCPinTypeUart().

#define IOC_PORT_MCU_UART0_TX   0x00000010

Referenced by IOCPinTypeUart().

#define IOC_PORT_MCU_UART1_CTS   0x00000015
#define IOC_PORT_MCU_UART1_RTS   0x00000016
#define IOC_PORT_MCU_UART1_RX   0x00000013
#define IOC_PORT_MCU_UART1_TX   0x00000014
#define IOC_PORT_RFC_GPI0   0x00000033
#define IOC_PORT_RFC_GPI1   0x00000034
#define IOC_PORT_RFC_GPO0   0x0000002F
#define IOC_PORT_RFC_GPO1   0x00000030
#define IOC_PORT_RFC_GPO2   0x00000031
#define IOC_PORT_RFC_GPO3   0x00000032
#define IOC_PORT_RFC_SMI_CL_IN   0x00000038
#define IOC_PORT_RFC_SMI_CL_OUT   0x00000037
#define IOC_PORT_RFC_SMI_DL_IN   0x00000036
#define IOC_PORT_RFC_SMI_DL_OUT   0x00000035
#define IOC_PORT_RFC_TRC   0x0000002E
#define IOC_RISING_EDGE   0x00020000

Referenced by IOCIOIntSet().

#define IOC_SLEW_DISABLE   0x00000000

Referenced by IOCIOSlewCtrlSet(), and IOCPinTypeI2c().

#define IOC_SLEW_ENABLE   0x00001000

Referenced by IOCIOSlewCtrlSet().

#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:223
#define IOC_CURRENT_2MA
Definition: ioc.h:284
#define IOC_NO_EDGE
Definition: ioc.h:260
#define IOC_SLEW_DISABLE
Definition: ioc.h:222
#define IOC_STRENGTH_AUTO
Definition: ioc.h:288
#define IOC_IOMODE_NORMAL
Definition: ioc.h:242

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

#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:224
#define IOC_CURRENT_2MA
Definition: ioc.h:284
#define IOC_NO_EDGE
Definition: ioc.h:260
#define IOC_SLEW_DISABLE
Definition: ioc.h:222
#define IOC_STRENGTH_AUTO
Definition: ioc.h:288
#define IOC_IOMODE_NORMAL
Definition: ioc.h:242

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

#define IOC_STRENGTH_AUTO   0x00000000
#define IOC_STRENGTH_MAX   0x00000300

Referenced by IOCIODrvStrengthSet().

#define IOC_STRENGTH_MED   0x00000200

Referenced by IOCIODrvStrengthSet().

#define IOC_STRENGTH_MIN   0x00000100

Referenced by IOCIODrvStrengthSet().

#define IOC_WAKE_ON_HIGH   0x18000000

Referenced by IOCIOShutdownSet().

#define IOC_WAKE_ON_LOW   0x10000000

Referenced by IOCIOShutdownSet().

#define IOID_0   0x00000000
#define IOID_1   0x00000001
#define IOID_10   0x0000000A
#define IOID_11   0x0000000B
#define IOID_12   0x0000000C
#define IOID_13   0x0000000D
#define IOID_14   0x0000000E
#define IOID_15   0x0000000F
#define IOID_16   0x00000010
#define IOID_17   0x00000011
#define IOID_18   0x00000012
#define IOID_19   0x00000013
#define IOID_2   0x00000002
#define IOID_20   0x00000014
#define IOID_21   0x00000015
#define IOID_22   0x00000016
#define IOID_23   0x00000017
#define IOID_24   0x00000018
#define IOID_25   0x00000019
#define IOID_26   0x0000001A
#define IOID_27   0x0000001B
#define IOID_28   0x0000001C
#define IOID_29   0x0000001D
#define IOID_3   0x00000003
#define IOID_30   0x0000001E
#define IOID_4   0x00000004
#define IOID_5   0x00000005
#define IOID_6   0x00000006
#define IOID_7   0x00000007
#define IOID_8   0x00000008
#define IOID_9   0x00000009
#define IOID_UNUSED   0xFFFFFFFF
#define NUM_IO_MAX   32
#define NUM_IO_PORTS   56