I have an I2C device connected to my TM4C1232C3PM microcontroller. I don't have any external pullups, so I planned to use the internal pullups. At first I had some trouble, but after a bit of debugging I managed to get it to work correctly.
I added a couple of more #defines:
#define GPIO_PIN_TYPE_OD_WPU 0x0000000B // Open-drain with weak pullup
#define GPIO_PIN_TYPE_OD_WPD 0x0000000D // Open-drain with weak pulldown
Then I can call GPIOPadConfigSet() with these and everything works fine, but now I can't use DEBUG mode since
they aren't official defines and the function checks all arguments. Could these defines be added to a future driverlib release?
The same effect can be made by manually turning the pull-up on after calling GPIOPadConfigSet() with GPIO_PIN_TYPE_OD, but it isn't as nice, and there already are GPIO_PIN_TYPE_STD_WPU and GPIO_PIN_TYPE_STD_WPD if you want push-pull pins.
Also, this comment from GPIOPinTypeI2C() seems to be wrong:
//
// Set the pad(s) for open-drain operation with a weak pull-up.
//
GPIOPadConfigSet(ui32Port, ui8Pins, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_OD);
It doesn't actually set the weak pull-up. Using my GPIO_PIN_TYPE_OD_WPU however would work.