The IOC allows software to configure the pins based on the requirements of the application. The software can configure different characteristic settings for any or all of the I/O pins. All of the following features are controlled in the IOC:IOCn registers:
- Drive Strength(IOC:IOCFGn.IOSTR)
- Configures the output drive strength of an I/O pin. By setting the IOC:IOCn IOSTR bit to 0x0, the drive strength is automatically updated based on inputs from the battery monitor, BATMON, to maintain current output across the VDDS range.
- Drive Current(IOC.IOCFGn[11:10] IOCURR)
- Configures the maximum current of an I/O pin. See the device-specific data sheet for individual I/O current capability.
- Pull Control(IOC:IOCn.PULLCTL)
- Configures a weak pull on an I/O pin. The following can be set: pullup, pulldown, or no pull. See the data sheet for specific pullup and pulldown current.
- Slew Control (IOC:IOCn.SLEWRED)
- Sets normal or reduced slew rate on an I/O pin
- Hysteresis (IOC:IOCFGn.HYSTEN)
- Enables or disables input hysteresis on an I/O pin
- Open-Source or Open-Drain Configuration (IOC:IOCn.IOMODE)
- Configures the pin as normal, open source, or open drain. All of these configurations can be set to either inverted or normal (non-inverted).
- Edge Detection (IOC:IOCn.EDGEDET)
- Enables edge detection on I/O pin. The following modes are supported:
- Rising edge
- Falling edge
- Trigger on both rising and falling
- No edge detection
- Edge detection can be used for event generation on the AON event fabric and a wake from standby signal to PMCTL.
- Wake from Shutdown (IOC:IOCn.WUCFGSD)
- Enables wake-up from shutdown. The following modes are supported:
- Wake on low, wake-up triggered when the pin level is low.
- Wake on high, wake-up triggered when the pin level is high.
- Input Driver (IOC:IOCn.INPEN)
- Enables or disables the I/O input driver
- Pin Configuration (IOC.IOCn[2:0] PORTCFG)
- Selects the function of the pin. See the device specific data sheet for available functionality per I/O pin.