Hi,
this is my understanding
1) Direction field generation
In the latest Pins tool, when a pad is muxed as GPIO, the generated pin_settings_config_t will include a .direction member. When the pad is muxed to a peripheral alternate function, the .direction field is omitted, because the GPIO direction is irrelevant in that mode and the peripheral owns the signal direction.
2) “not specified” → High‑Z via PIDR
For GPIO selection and “not specified” option, tool generates .direction = PORT_CI_PORT_PIN_HIGH_Z, which resolves into a high‑impedance configuration at init time. The driver will disable the input buffer via GPIOx_PIDR (Port Input Disable Register), so:
- Output driver is not enabled.
- Input buffer is disabled → the pad is high‑Z.
Practically, this is the tool’s way to express “leave the pin floating” (no drive, no sense) in generated code without you needing to do extra steps.
3) see above (2)
Any pin with GPIO mux and “not specified” will end up tri‑stated by virtue of PIDR settings (and no output driver enabled).
BR, Petr