Thanks Igor. So to confirm,
- if I set the GPIO GDIR as output, the PAD_* settings PS and PE are ignored, and the output is Push-Pull
- If I set GPIO_GDIR as input, the PAD_* settings PS and PE take effect
For the Drive Low, Pull-Up High, I don't understand how I'm able to Drive Low if I configure the DIR to be input. Shouldn't the GPIO output block be disabled/tri-stated and only enable the input? It seems like there is a potential for contention if I set the DIR as input and set DR to be 0.
This behavior you've described is not documented, or maybe I'm not understanding the documentation correctly:
8.3.5.1 GPIO data register (GPIOx_DR) : If GDIR[n] is cleared and IOMUXC input mode is GPIO, then reading DR[n] returns the corresponding input signal's value.
There is no mention of what happens on the Pad if you set or clear the DR when GDIR[n] is cleared (input).
Thanks