This patchset adds to support StarFive JH7110 TRNG driver. Due to lack of readl_relaxed API, the first patch tries to import the APIs(read/write_relaxed) from Linux kernel's implementation. The second patch adds the missing security clocks which are required by the trng IP.
This IP can support 128-bit and 256-bit random number generation but this patch makes 256-bit default mode for convenience. Change from v3: - Patch #3: Make one call to generate random number according to 128 or 256 bits of entropy which is suggested by Heinrich. Changes from v2: - Patch #3: Add error handling codes of probe() which are suggested by Jaehoon Changes from v1: - Patch #3: Apply Heinrich's reviews and his codes - Patch #5: Add Heinrich's R-b tag Chanho Park (5): riscv: import read/write_relaxed functions clk: starfive: jh7110: Add security clocks rng: Add StarFive JH7110 RNG driver riscv: dts: jh7110: Add rng device tree node configs: visionfive2: Enable JH7110 RNG driver arch/riscv/dts/jh7110.dtsi | 10 + arch/riscv/include/asm/io.h | 45 ++++ configs/starfive_visionfive2_defconfig | 2 + drivers/clk/starfive/clk-jh7110.c | 10 + drivers/rng/Kconfig | 6 + drivers/rng/Makefile | 1 + drivers/rng/jh7110_rng.c | 274 +++++++++++++++++++++++++ 7 files changed, 348 insertions(+) create mode 100644 drivers/rng/jh7110_rng.c -- 2.39.2