We had picked the Apalis TK1 GPIO7 (GPIO3_PDD.01) as an input function based on the TK1 datasheet, and were surprised to find the port in electrical conflict with the driving device as well as being unable to export the port (see forum Question 15272). The TK1 pins function list identifies X1 Pin 15 (PEX_L0_RST_N) with the SFIO0 function on GPIO3_PDD.01 (GPIO7) as “pe0_rst_I” which implies the port defaults to an input similarly to “pe_wake_I”. Since there is no mention of pe0_rst_I in table 6-24 (additional PCIe Control Signals), and GPIO7 is identified in table 6-4 of the GPIOs section 6.2 as PEX_L0_RST_N with no further details, one is led to believe that pe0_rst_I in the pins function table defines the port as an input by default.
GPIOs section 6.2 cautions about selecting the correct type of GPIO but the warning appears strictly aimed at the electrical capability of the IO. Table 6-4 does not identify the kernel default configurations of the GPIO ports, making it impossible for designers to pick appropriate default-configured GPIOs through the datasheet alone. In the case of GPIO7, it is set as an output on the TK1 Apalis eval design to fix an errata on a PCIe expander device, and this configuration appears to be retained in the kernel by default. It would be very helpful to include such information in the datasheet if it is a fixed feature in the kernel.