[PATCH 0/3] hwrng: add Microchip RNG90 support

From: Patrick Tudor

Date: Sat Oct 24 2026 - 18:34:47 EST


The Microchip RNG90 is an I2C cryptographic random number generator at
the fixed 0x40 address. It combines a physical noise source with a
SHA-256 Hash_DRBG and returns a 256-bit result for each Random command.
The device performs runtime health tests and self-tests before releasing
output.

This series documents the compatible, adds the hwrng driver, and adds a
KUnit suite using a scripted I2C adapter. The driver wakes and identifies
the part, validates framing and CRCs, polls within data-sheet deadlines,
recovers once from transport or synchronization failures, and withholds
output after any device verdict or malformed response.

The data sheet specifies 128-bit security strength for each 256-bit
result, but that does not establish entropy per output bit. The driver
therefore starts at the hwrng framework's minimum nonzero quality of 1.
An administrator can raise rng_quality after qualifying the complete
platform and its operating conditions.

Validation against the base commit:

- dt_binding_check for trivial-devices.yaml
- full x86_64 defconfig build and a separate W=1 module rebuild
- UML KUnit: 32 tests passed

The driver was also exercised on physical RNG90 hardware through the
in-tree hid-cp2112 adapter: three 500-block streams, hot unplug/replug,
unbind/rebind, and S3 suspend/resume completed without driver errors.

Signed-off-by: Patrick Tudor <ptudor@xxxxxxxxxx>
---
Patrick Tudor (3):
dt-bindings: trivial-devices: add Microchip RNG90
hwrng: add Microchip RNG90 driver
hwrng: rng90: add KUnit tests

.../devicetree/bindings/trivial-devices.yaml | 2 +
drivers/char/hw_random/Kconfig | 26 +
drivers/char/hw_random/Makefile | 1 +
drivers/char/hw_random/rng90-kunit.c | 820 +++++++++++++++++++++
drivers/char/hw_random/rng90.c | 555 ++++++++++++++
5 files changed, 1404 insertions(+)
---
base-commit: 5b0764a53235d3c77e1ed674e836e1b3fe1a4b1f
change-id: 20261024-rng90-submit-v1-705c3c70a116

Best regards,
--
Patrick Tudor <ptudor@xxxxxxxxxx>