implementation of the SI470x dirver