add spi support