added hardware SPI support