Beaglebone pin header initialization during boot


I am using the PRU to write to P9 header pins of the beagle bone black.
Load a device tree to configure the pins used by the PRU and this works fine (can toggle them with the PRU).
Using mode 5 with pull down enabled. Disabled HDMI dt due to audio conflict. Enabled HDMIN dt (without audio).

After booting the beaglebone black:

  • pin P9_29 is high, while
  • pin P9_31 is low.

Both pins have the same configuration in the device tree.
I would like to have the pins low after booting.

According the TRM, all pins are low initialized.

So, somewere, pin P9_29 is explicitly set high during the boot process.
This can be in u-boot, or in the linux kernel (I guess u-boot).

I am unable to find where this happens.
Searched in a lot of u-boot files, without luck.

Can somebody give me a pointer to the place where the pin initialization is done?
I am using the Debian 3.8.13-bone72 kernel: Linux beaglebone 3.8.13-bone72 #1 SMP Tue Jun 16 21:36:04 UTC 2015 armv7l GNU/Linux


You could try to connect an oscilloscope to the pins, with trigger
properly set and pay attention what's happening when it transitions.