I have set up to use P1.3 and P1.2 for an I2C interface. I have connected 3.3K pullups on these two pins. After going through the setup and deasserting the software reset the I2C transaction does not get into even the first START byte out. The I2C status registers show that bus busy is asserted without having any other device connected to the bus which explains why the start is not initiated. Both SCL and SDA pins measure high (3V3). And I did verify that I have set the select pins to choose peripheral instead of GPIO.
I then chose to troubleshoot the pin behavior by reconfiguring to GPIO and making all P1 pins outputs. P1OUT is set to 08h to drive only P1.3 high. I then set a breakpoint in the code to examine the register contents. It shows P1OUT to contain the expected 08h. But P1IN shows an input value of 2Fh. My understanding is that it should match P1OUT if there are no other connections unless there is a faulty device. Measurement of P1.2 and P1.3 verifies they are both high instead of the intended value P1.2 low, P1.3 high.
Is there any other reasonable explanation for this unintended behavior?