Hi All-
I am very confused by what I am seeing on low GPIO on DM648. I have UHPIEN tied high (and verifed that the 648 indeed sees it as high--UHPI bit in BOOTCFG reg is 1), to enable the low GPIO instead of the PCI interface signals. All of the low GPIOs are unconnected on my hardware platform (no external pull-ups or pull-downs). From the DM648 data sheet, GPIO 7 and 4 have internal pull-ups, and the other low GPIO have internal pulldowns.
However, after reset, I set power and clock to GPIOs, set all the GPIOs to inputs, and read them, I am getting 0xFF on the low GPIOs instead of the expected 0x90. Looking at the gpio registers, DIR01[7..0]=0xFF, and IN_DAT01[7..0]=0xFF. When I subsequently configure them as outputs, and set them high or low, IN_DAT01[7..0] correctly reflects the state I set them to. I cannot scope the actual values on the GPIO signals, as they are not routed from the BGA.
On a different platform, where again UHPIEN is high and I actually use GPIO2 and GPIO3 but they have no external pull-ups or pull-downs, I looked at them with scope after power-on with no boot. Indeed, they were both high, not low as they should have been due to their rumored "internal pull-down".
Can anyone help me understand what is going on here? Is the data sheet wrong (it seems to me GPIO[7..0] all have internal pull ups)? Or are the internal pull-ups/pull-downs different depending on whether PCI interface or UHPI/GPIO is muxed to them?
Thanks in advance,
Jim Gort