Device tree pin mux doesn't match /sys/class/gpio when gpio is exported

I have a custom DTS I use for a custom cape on the BBB.

The .dts file compiles well, I move the .dtbo to /lib/firmware, and then run

sudo update-initramfs -uk uname -r

In /boot/uEnv.txt I have listed my custom overlay:

cat /boot/uEnv.txt
uname_r=4.4.16-bone-rt-r11
####################uuid=81b9a3e8-1ff6-4797-b2eb-f4517ab96628
dtb=am335x-boneblack-emmc-overlay.dtb
cape_enable=bone_capemgr.enable_partno=BB-APA-01,BB-ADC

uuid=1b14b637-50ab-491b-9568-ace879cb1ef2

After the BBB boots I can see my pins muxed correctly.

For example, in my .dts file I have a line for P9_17 to be an output, pulled, pulled:

0x15c 0x17 /* P9_17 87 |

I can look at this pin and see GPIO 87 matches what my .dtbo is telling to be:

cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins | grep 87
pin 28 (44e10870.0) 00000026 pinctrl-single
pin 29 (44e10874.0) 00000006 pinctrl-single
pin 30 (44e10878.0) 0000000f pinctrl-single
pin 31 (44e1087c.0) 0000000f pinctrl-single
pin 87 (44e1095c.0) 00000017 pinctrl-single

However, when the BBB boots and go export gpio 87 and look at its direction I see at as an input:

root:gpio# echo 87 > export
root:gpio# cat gpio87/direction
in

Why is that?

Thanks in advance