The Renesas SPI Bus Space Controller (SPIBSC) HW was specifically designed for accessing Serial flash devices (QSPI, HyperFlash, Octa Flash). In the hardware manuals, it is almost always labeled as the "Renesas SPI Multi I/O Bus Controller". However, the HW IP is usually referred to within Renesas as the "SPI BSC". Yes, the R-Car team nicknamed it RPC (for "Reduced Pin Count" flash) after HyperFash support was added...but I personally think that RPC is not a good name for this HW block. This driver has been tested on an RZ/A1H RSK and RZ/A2M EVB. The testing mostly consisted of formatting an area as JFFS2 and doing copying of files and such. While the HW changed a little between the RZ/A1 and RZ/A2 generations, the IP block in the RZ/A2M was taken from the R-Car H3 design, so in theory this driver should work for R-Car Gen3 as well. ========================= Version 2 changes ========================= * I got rid of all the critical clock stuff. The idea is is that if you are planning on using the SPI BSC, even in XIP mode, it should be described in DT. * There is no actual 'runtime pm' implmented in the driver at the moment, and so just the standard enable/disable clock API is used. * The compatible string "jedec,spi-nor" will be used to determine if a spi controller needs to be regitered or not. At the moment there is no setup needed for running in XIP mode, so we just need to signal that the peripheral clock should be left on and then we're done. Chris Brandt (6): spi: Add SPIBSC driver dt-bindings: spi: Document Renesas SPIBSC bindings clk: renesas: r7s9210: Add SPIBSC clock ARM: dts: r7s72100: Add SPIBSC devices ARM: dts: r7s9210: Add SPIBSC device ARM: dts: gr-peach: Enable SPIBSC .../bindings/spi/renesas,spibsc.yaml | 115 ++++ arch/arm/boot/dts/r7s72100-gr-peach.dts | 5 + arch/arm/boot/dts/r7s72100.dtsi | 25 +- arch/arm/boot/dts/r7s9210.dtsi | 11 + drivers/clk/renesas/r7s9210-cpg-mssr.c | 1 + drivers/spi/Kconfig | 8 + drivers/spi/Makefile | 1 + drivers/spi/spi-spibsc.c | 612 ++++++++++++++++++ 8 files changed, 776 insertions(+), 2 deletions(-) create mode 100644 Documentation/devicetree/bindings/spi/renesas,spibsc.yaml create mode 100644 drivers/spi/spi-spibsc.c -- 2.23.0