You have a number of options here:
- The ZigBee Linux HA Gateway reference design (HW/SW):
http://www.ti.com/tool/CC2531EM-IOT-HOME-GATEWAY-RD
http://www.ti.com/tool/z-stack - Z-STACK-LINUX-GATEWAY
Out of the Box this connects to CC2531 via CDC USB. However by modifying the NPI_Gateway.cfg and the zigbeeHAgw script files you can reconfigure it to use UART or SPI. The CC2530 will need to by preogrammed with the ZNP FW available in http://www.ti.com/tool/z-stack - Z-STACK-HOME SDK under Z-Stack Home 1.2.2.42930\Projects\zstack\ZNP\CC253x, prebuilt binaries are in Z-Stack Home 1.2.2.42930\Projects\zstack\ZAP\ZNP-HexFiles\CC2530.
This option is specifically for Linux, it uses 4 application space servers to manage the Data Plane, Control Plan and Field Upgrade, offering a high level Home Automation API through protobuf over local sockets. It uses the existing CDC, UART or SPI kernel drivers. It would not lend its self to a kernel space driver.
- The open source ZNP Host framework reference design. This is cross platform framework and could be ported to a kernel space driver, however it does not support SPI, UART only. The CC2530 FW would be the same as above and does support SPI, so you would need to port the ZNP framework to use SPI.
http://www.ti.com/tool/TIDC-ZNP-HOST-SW3
https://git.ti.com/znp-host-framework/znp-host-framework
Regards,
TC.