use mutex instead of semaphore in SPI core/init code