Hi all, On Renesas R-Car Gen3 platforms, the SPI Multi I/O Bus Controllers (RPC-IF) provide access to HyperFlash or QSPI storage. On production systems, they are typically locked by the TF-A firmware, unless TF-A is built with RCAR_RPC_HYPERFLASH_LOCKED=0. When unlocked, TF-A communicates this to subsequent software by passing a DT fragment that sets the "status" property of the RPC-IF device node to "okay". Unfortunately there are several issues preventing this from working all the way to Linux: 1. TF-A (and U-Boot on the receiving side) uses a device node name that does not conform to the DT specification nor the DT bindings for RPC-IF, 2. While U-Boot receives the RPC-IF enablement from TF-A, it does not propagate it to Linux yet, 3. The DTS files that are part of Linux do not have RPC HyperFlash support yet. The first two issues are handled by patches for TF-A[1] and U-Boot[2]. This patch series takes care of the third issue, by adding device nodes for the RPC-IF interfaces and the HyperFlash devices to the various DTS files. The "status" properties of the RPC-IF device nodes are left "disabled", and are to be updated by U-Boot when unlocked. HyperFlash operation has been tested on a variety of SoCs (R-Car H3 ES1.1 & ES2.0, M3-W ES1.0, M3-N ES1.0, E3 ES1.0, and D3 ES1.1) and boards (Salvator-XS, ULCB, Ebisu-4D, and Draak). For testing, this series and its Linux dependencies (HF fix[3], clk[4], pinctrl[5]) can be found at[6]. Thanks for your comments! [1] "[PATCH TF-A] fix(plat/rcar3): Fix RPC-IF device node name" https://lore.kernel.org/r/3685623bed84674039adb61e723288d359ab0a50.1648544199.git.geert+renesas@xxxxxxxxx [2] "[PATCH u-boot 0/3] renesas: Fix RPC-IF enablement" https://lore.kernel.org/r/cover.1648544792.git.geert+renesas@xxxxxxxxx [3] "[PATCH v3] memory: renesas-rpc-if: Fix HF/OSPI data transfer in Manual mode" https://lore.kernel.org/r/ad6ef2af754c8163f825d3a199d64f910d63f802.1648545212.git.geert+renesas@xxxxxxxxx [4] "[PATCH 0/2] clk: renesas: r8a7799[05]: Add RPC clocks" https://lore.kernel.org/r/cover.1648546700.git.geert+renesas@xxxxxxxxx [5] "[PATCH 0/2] pinctrl: renesas: r8a7799[05]: Add RPC pins, groups, and functions" https://lore.kernel.org/r/cover.1648547080.git.geert+renesas@xxxxxxxxx [6] https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git/log/?h=topic/rcar3-rpc-hf-v1 Geert Uytterhoeven (5): arm64: dts: renesas: rcar-gen3: Add RPC device nodes arm64: dts: renesas: draak: Add RPC HyperFlash device node arm64: dts: renesas: ebisu: Add RPC HyperFlash device node arm64: dts: renesas: salvator-common: Add RPC HyperFlash device node arm64: dts: renesas: ulcb: Add RPC HyperFlash device node arch/arm64/boot/dts/renesas/draak.dtsi | 58 +++++++++++++++++++ arch/arm64/boot/dts/renesas/ebisu.dtsi | 58 +++++++++++++++++++ arch/arm64/boot/dts/renesas/r8a77951.dtsi | 16 +++++ arch/arm64/boot/dts/renesas/r8a77960.dtsi | 16 +++++ arch/arm64/boot/dts/renesas/r8a77961.dtsi | 16 +++++ arch/arm64/boot/dts/renesas/r8a77965.dtsi | 16 +++++ arch/arm64/boot/dts/renesas/r8a77990.dtsi | 16 +++++ arch/arm64/boot/dts/renesas/r8a77995.dtsi | 16 +++++ .../boot/dts/renesas/salvator-common.dtsi | 49 ++++++++++++++++ arch/arm64/boot/dts/renesas/ulcb.dtsi | 49 ++++++++++++++++ 10 files changed, 310 insertions(+) -- 2.25.1 Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds