Another too large commit to implement SPI
Enhance pin mode settings