This kernel module creates the /sys/devices/platform/mts-io enumeration of the features for MTAC PULSE boards. This driver requires the mtac.ko driver loaded first. depmod should take care of this. This driver used to attempt to set "open drain" from the GPIO driver. This is not allowed by the Atmel GPIO driver. In newer kernels it warns that this does not work. Open drain must be set by the Atmel pinctrl driver for Atmel GPIO controllers. Atmel calls "Open Drain" "MultiDriver". The lack of multidrive was verified in kernel 3.12.70, mLinux 4.1.1 with MTAC-PULSE-BP in slot AP1. The pin for AP1_NRESET is PB12. The AP2_NRESET is PB13. The device address for PIOB is 0xFFFF F600. The offset for register PIO_MDSR is 0x58. PIO_MDSR is Multi-Driver Status Register, and Multi-Driver is what Atmel calls Open Drain. mtcdt:/home/mtadm# devmem2 0xfffff658 * /dev/mem opened. Memory mapped at address 0xb6f35000. Read at address 0xFFFFF658 (0xb6f35658): 0x00000000 This says that in 4.1.1 mLinux, no outputs for PIOB are set to multi-driver. mtcdt:/sys/devices/platform/mts-io/ap1# cat hw-version MTAC-PULSE-0.0 pinctrl settings must be done in device tree for Atmel processors when trying to set pull-up, pull-down, or multi-drive.