GPIO Default PU/PD/Drive conditions?

So after I had a nice PCB all laid out and routed I was looking at some of the GPIO I was planning to use with a voltmeter and noticed I had a lot of problems. These problems took the form of some GPIO being pulled up or down at power-up in opposition to the control signals I was planning.

1.) One case was P9_15 where the bootup condition is 1.6V??? That would hold my signal right smack in no-mans-land between high and low. Looking at the schematic I see that pin is in tug-of-war with another one that is not on the headers so I don’t understand the intention there.

2.) In another case the pin I selected was pulled low which means I would be putting invalid data on an output buffer because the /OE line is pulled low at power on unless my external pull-up was extremely strong.

3.) The worst case I found however, was the LCD control signals shared with GPIO (P8_27 - P8_30). LCD_DE and LCD_HSYNC are both driven low at boot and my design originally had those setup as BBB Inputs that would be fed from an external buffer. The moment that /SYS_RESETn went high, those buffers would be enabled and driving their outputs as well. If there is a conflict then I have a clear contention issue that could zap one or the other part. I discovered this when connecting those pins to a pull-up had no effect on the output voltage. Where they simply pulled low then my pull-up would have created a voltage divider and raised the voltage at that pin.

Is there anything that lists the pins and the default logic state that’s on them when the device boots? I also didn’t see anything that mentioned the SRM about being wary of LCD_HSYNC and LCD_DE being driven low. I looked at the schematic and there is a resistor shown on each of those signals but no indication of the value. Is that to protect from contention? If the HDMI framer is disabled should/will those pins remain driven?

The data manual lists the default state of the pins at power up. That is the first thing I would look at as there is nothing you can do to change those…Be careful on the LCD pins as those are also the boot pins.

After that, you can change the default setting from the SW by crating your own DTS file.


You want the actual data sheet for the AM335x. Chapter 2 "Terminal
Descriptions" lists the pin state during and after reset, as well as I/O
buffer details (drive strength, pull up/down capability, hysteresis,
etc) for each package pin. You still have to refer to the BeagleBone
schematic for some things (like your two pins tied together, or external
pull up/down resistors as used on the LCD/boot pins).