High Z. Use High Z for the pin to be input digital. High Z Analog. This mode is similar to the High Z state, but the digital input section is disabled. Select this mode to use this pin as an analog input or output. This mode must be selected if the pin is unused. Each GPIO pin has a Schmitt trigger cell which interfaces with the internal digital data bus. In High Z Analog mode, this Schmitt trigger cell is disabled. This prevents oscillations at the Schmitt trigger output when the analog signal on the pin is at threshold levels. Open Drain High. In this mode, the HIGH output is driven with a strong drive. The LOW output is High Z. Open Drain Low. In this mode, the LOW output is driven with a strong drive and HIGH output is open. This mode is suitable for I2C bus where external pull up resistors are used. Strong. Use the Strong mode if your pin is output. The pin has a low impedance connection to VSS and VDD. Do not use the Strong mode if the pin is an input. Pull Down. In this mode, HIGH output is driven strong, and LOW output is through an internal pull down resistor of approximately 5.6K. This mode is used as an input, for example with a switch connected to VCC. This mode is also used as output. Pull Up. This mode is the opposite of the Pull Down mode. In this mode, HIGH output is driven strong and LOW output is through an internal pull down resistor of approximately 5.6K. This mode is used as an input, for example with a switch connected to GND. When used as input, the corresponding bit in the PRTxDR register must be set to enable the pull up resistor. Once the pull up resistor is enabled, the state of the pin is read using the PRTxDR register. This mode is also used as output.