general hardware (TODO) or software mode SPI communication functionality