hwrng: atmel - use HZ_PER_MHZ in atmel_trng_init()

Combine and inline the rate check to simplify the code. Drop the local
rate variable and use HZ_PER_MHZ instead of the hard-coded frequency.

Signed-off-by: Thorsten Blum <blum@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
Thorsten Blum 2026-09-29 23:37:50 +02:00 committed by Herbert Xu
parent 611b15d344
commit 7d91d0ae0c

View File

@ -17,6 +17,7 @@
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/units.h>
#define TRNG_CR 0x00
#define TRNG_MR 0x04
@ -85,20 +86,14 @@ static int atmel_trng_read(struct hwrng *rng, void *buf, size_t max,
static int atmel_trng_init(struct atmel_trng *trng)
{
unsigned long rate;
int ret;
ret = clk_prepare_enable(trng->clk);
if (ret)
return ret;
if (trng->has_half_rate) {
rate = clk_get_rate(trng->clk);
/* if peripheral clk is above 100MHz, set HALFR */
if (rate > 100000000)
writel(TRNG_HALFR, trng->base + TRNG_MR);
}
if (trng->has_half_rate && clk_get_rate(trng->clk) > 100 * HZ_PER_MHZ)
writel(TRNG_HALFR, trng->base + TRNG_MR);
writel(TRNG_KEY | 1, trng->base + TRNG_CR);