Okay, thanks already for the replies. Do I understand this correctly: embedded-hal is meant to provide simplified access to hardware / interfaces when programming for embedded devices. The raspberry pi is technically no real embedded / edge device, but instead is considered a full linux machine (in a standard installation). The library I linked is built upon embedded-hal so it can be used in any context where the embedded-hal traits are implemented. Since RPPAL already provides a feature that implements the embedded-hal traits, I could use RPPAL to initialize an SPI device and then pass it to the initialization logic of the MFRC522 library. Am I understanding this correctly?