This patch set introduces the SPI controller emulation for Allwinner A10 SoC and Cubieboard.
Only master-mode functionality of the SPI controller is implemented. Since U-Boot and Linux SPI drivers for Allwinner A10 perform only byte-wide CPU access to the transmit and receive registers of the controller, the emulated controller does not implement DMA handling, and supports only byte-wide access to transmit and receive registers (half-word and word access will be treated as byte access). * diff from v1: - split patch into two parts, one implementing the peripheral and another for integrating peripheral into Allwinner A10 description - fixed issue with CS level handling when channel is not selected (idle mode); this was discovered when CS level handling was converted to a separate function - updated read and write register handling to log error when byte and half-word access not aligned to 4-byte boundary is performed - updated SPDX license tags for both header and c files - various minor fixes suggested in review Strahinja Jankovic (2): hw/ssi: Allwinner A10 SPI emulation {hw/arm,docs/system/arm}: Add SPI to Allwinner A10 docs/system/arm/cubieboard.rst | 1 + hw/arm/Kconfig | 1 + hw/arm/allwinner-a10.c | 8 + hw/ssi/Kconfig | 4 + hw/ssi/allwinner-a10-spi.c | 561 +++++++++++++++++++++++++++++ hw/ssi/meson.build | 1 + hw/ssi/trace-events | 10 + include/hw/arm/allwinner-a10.h | 2 + include/hw/ssi/allwinner-a10-spi.h | 57 +++ 9 files changed, 645 insertions(+) create mode 100644 hw/ssi/allwinner-a10-spi.c create mode 100644 include/hw/ssi/allwinner-a10-spi.h -- 2.39.5