Hello. The following patches add support for the true random number generator found in Samsung Exynos 5250+ SoCs. Patch #1 adds documentation for devicetree bindings. Patch #2 introduces the driver and appropriate changes in Makefile and Kconfig. Patch #3 adds nodes in devicetree files for Exynos SoCs (requires https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux.git/commit/?id=cdd745c8c76b02471d88f467c44a3d4eb431aa0b). Changes in v3: - Changed node-name in device-tree bindings according to from Krzysztof Koz‚łowski's recommendation. - Fixed name and added EXYNOS_ in EXYNOS_TRNG_CTRL_RNGEN - Removed unnecessary label and simplifed the abnormal exit path in exynos_trng_probe() - Replaced __raw_{readl,writel}() with {readl,writel}_relaxed() (thanks PrasannaKumar Muralidharan) Changes in v2: - Fixed indentation in drivers/char/hw_random/Kconfig. - Defined TRNG_CTRL_RGNEN. - Removed global variable exynos_trng_dev. - Removed exynos_trng_{set,get}_reg() functions. - Used the min_t() macro instead of the ternary operator in exynos_trng_do_read(). - Moved trng initialisation to the variable declaration in exynos_trng_init(). - Fixed comment formating. - Removed unnecessary "TODO" comments. - Return ENOMEM, if devm_kzalloc() devm_kstrdup() fail. - Rephrased and unified error messages in exynos_trng_probe(). - Removed nullification of trng->mem. - Added err_pm_get label at the end of exynos_trng_probe(). - Removed double error message at the end of exynos_trng_probe(). - Implemented exynos_trng_remove(). v2 available here: https://www.spinics.net/lists/linux-samsung-soc/msg61280.html https://patchwork.kernel.org/patch/10076225/ https://patchwork.kernel.org/patch/10076227/ https://patchwork.kernel.org/patch/10076237/ v1 can be found: https://www.spinics.net/lists/linux-samsung-soc/msg61253.html https://patchwork.kernel.org/patch/10072967/ https://patchwork.kernel.org/patch/10072971/ https://patchwork.kernel.org/patch/10072963/ ‚Łukasz Stelmach (3): dt-bindings: hwrng: Add Samsung Exynos 5250+ True RNG bindings hwrng: exynos - add Samsung Exynos True RNG driver ARM: dts: exynos: Add nodes for True Random Number Generator .../bindings/rng/samsung,exynos5250-trng.txt | 17 ++ MAINTAINERS | 7 + arch/arm/boot/dts/exynos5.dtsi | 5 + arch/arm/boot/dts/exynos5250.dtsi | 5 + arch/arm/boot/dts/exynos5410.dtsi | 5 + arch/arm/boot/dts/exynos5420.dtsi | 5 + drivers/char/hw_random/Kconfig | 12 + drivers/char/hw_random/Makefile | 1 + drivers/char/hw_random/exynos-trng.c | 245 +++++++++++++++++++++ 9 files changed, 302 insertions(+) create mode 100644 Documentation/devicetree/bindings/rng/samsung,exynos5250-trng.txt create mode 100644 drivers/char/hw_random/exynos-trng.c -- 2.11.0