Zephyr Shell with custom interface transport layer

I want to use the Zephyr Shell with my own transport layer. Since the only connection I will have to the modem is over SPI, I want to have the SPI read/writes handled with custom interface functions that replace, for example, the UART interface.

How can I make my own interface functions for the Zephyr shell?

Related