linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v8 0/3] hwrng: add hwrng support for Rockchip RK3568
@ 2024-07-21  0:46 Daniel Golle
  2024-07-21  0:47 ` [PATCH v8 1/3] dt-bindings: rng: Add Rockchip RK3568 TRNG Daniel Golle
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Daniel Golle @ 2024-07-21  0:46 UTC (permalink / raw)
  To: Daniel Golle, Aurelien Jarno, Olivia Mackall, Herbert Xu,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner,
	Philipp Zabel, Dragan Simic, Uwe Kleine-König, Sascha Hauer,
	Cristian Ciocaltea, Martin Kaiser, Francesco Dolcini,
	Ard Biesheuvel, linux-crypto, devicetree, linux-arm-kernel,
	linux-rockchip, linux-kernel

Rockchip SoCs used to have a random number generator as part of their
crypto device.

However newer Rockchip SoCs like the RK3568 have an independent True
Random Number Generator device. This patchset adds a driver for it and
enables it in the device tree for RTK3568.

Tested on FriendlyARM NanoPi R5C.

v7 -> v8:
 * Patch 1: document new properties
   - introduce 'rockchip,sample-count'
   - require to specify 'quality' (0~1024)

 * Patch 2:
   - read sample-count and quality from DT

 * Patch 3:
   - disable hwrng in rk356x.dtsi, enable only in rk3568.dtsi
   - set sample-count 1000 and quality 900 (87.9%) as before

v6 -> v7:
 * Patch 1: unchanged

 * Patch 2: bring back rk_rng_write_ctl()
   - bring back rk_rng_write_ctl() with improved comment to describe
     the hardware.

 * Patch 3: unchaned

v5 -> v6:
 * Patch 1: unchanged

 * Patch 2: get rid of #ifdef
   - use if (IS_ENABLED(...)) { ... }instead of #ifdef inside functions
   - use __maybe_unused for functions previously enclosed by #ifdef'ery

 * Patch 3: unchanged

v4 -> v5:
 * Patch 1: always use RK3568 name
   - use full RK3568 name in patch description
   - add RK3568 to title in binding

 * Patch 2: full name and cosmetics
   - also always mention RK3568 as there may be other RNG in other
     (future) Rockchip SoCs
   - remove debug output on successful probe
   - use MODULE_AUTHOR several times instead of single comma-separated

 * Patch 3: unchanged

v3 -> v4:
 * Patch 1: minor corrections
   - fix Rokchip -> Rockchip typo
   - change commit title as requested

 * Patch 2: improved error handling and resource management
   - Always use writel() instead of writel_relaxed()
   - Use pm_runtime_resume_and_get
   - Correctly return error code in rk_rng_read()
   - Make use of devm_reset_control_array_get_exclusive
   - Use devm_pm_runtime_enable and there by get rid of rk_rng_remove()

 * Patch 3:
   - Move node to conform with ordering by address

v2 -> v3: patch adopted by Daniel Golle
 * Patch 1: address comments of Krzysztof Kozlowski, add MAINTAINERS
   - improved description
   - meaningful clock-names
   - add entry in MAINTAINERS files

 * Patch 2: numerous code-style improvements
   - drop misleading rk_rng_write_ctl(), simplify I/O writes
   - drop unused TRNG_RNG_DOUT_[1-7] macros
   - handle error handling for pm_runtime_get_sync()
   - use memcpy_fromio() instead of open coding for-loop
   - some minor white-spaces fixes

 * Patch 3:
   - use clock-names as defined in dt-bindings

v1 -> v2:
 * Patch 1: fix issues reported by Rob Herring and Krzysztof Kozlowski:
   - Rename rockchip-rng.yaml into rockchip,rk3568-rng.yaml
   - Fix binding title and description
   - Fix compatible property
   - Rename clocks and add the corresponding descriptions
   - Drop reset-names
   - Add a bus definition with #address-cells and #size-cells to the
     example.

 * Patch 2: fix issue reported by kernel test robot <lkp@intel.com>
   - Do not read the random registers as big endian, looking at the
     RK3568 TRM this is actually not needed. This fixes a sparse
     warning.

 * Patch 3: unchanged


Aurelien Jarno (3):
  dt-bindings: rng: Add Rockchip RK3568 TRNG
  hwrng: add hwrng driver for Rockchip RK3568 SoC
  arm64: dts: rockchip: add DT entry for RNG to RK356x

 .../bindings/rng/rockchip,rk3568-rng.yaml     |  82 +++++++
 MAINTAINERS                                   |   7 +
 arch/arm64/boot/dts/rockchip/rk3568.dtsi      |   7 +
 arch/arm64/boot/dts/rockchip/rk356x.dtsi      |  10 +
 drivers/char/hw_random/Kconfig                |  14 ++
 drivers/char/hw_random/Makefile               |   1 +
 drivers/char/hw_random/rockchip-rng.c         | 230 ++++++++++++++++++
 7 files changed, 351 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml
 create mode 100644 drivers/char/hw_random/rockchip-rng.c

-- 
2.45.2


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2024-07-21 13:51 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-21  0:46 [PATCH v8 0/3] hwrng: add hwrng support for Rockchip RK3568 Daniel Golle
2024-07-21  0:47 ` [PATCH v8 1/3] dt-bindings: rng: Add Rockchip RK3568 TRNG Daniel Golle
2024-07-21  0:48 ` [PATCH v8 2/3] hwrng: add hwrng driver for Rockchip RK3568 SoC Daniel Golle
2024-07-21  0:48 ` [PATCH v8 3/3] arm64: dts: rockchip: add DT entry for RNG to RK356x Daniel Golle
2024-07-21 12:07   ` Jason A. Donenfeld
2024-07-21 12:39     ` Dragan Simic
2024-07-21 13:49     ` Daniel Golle
2024-07-21 13:51       ` Jason A. Donenfeld

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).