Defaut pin state for PRU Output pin P8_45


I am using BBB PRU1_0 pin (P8_45) as output. To set the pinmux, I use Device Tree where I put the pin in MODE5:

&am33xx_pinmux {
trigger_pins: trigger_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE5) /* P8_45 | PRU1_0 | lcd_data0 */


PRU Kernel modules are built-in (buildroot system), but I have noticed that during the boot, the state is LOW (not surprising because that pin has a pull-down resistor because it is used to select the boot mode).
Then, later in the kernel boot process, the pin change its state to HIGH (my PRU program is not yet launched).

I can reproduce this on the Debian image, with:



The pin remains low at boot but after

config-pin -a p845 pruout


The pin level become HIGH.

This behavior does not occur on pin P8_46.

I was thinking about setting the pin as INPUT in Device Tree and after starting my PRU program that sets __R30 to 0, switch the pinmux to PRU output. But because I use TI kernel, I am not sure if I can change pinmux on runtime.

Does anyone has a idea why the pin P8_45 switch to high when pinmuxing to PRU out?

Is it possible to change pinmux on runtine?