mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-04 08:08:54 +00:00
hwrng: stm32 - support RNG configuration locking mechanism
If "st,rng-lock-conf" DT binding property is set for a stm32-rng node, the RNG configuration will be locked until next hardware block reset or platform reset. Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
28d13f3fdb
commit
a1b03e7ade
1 changed files with 5 additions and 0 deletions
|
@ -62,6 +62,7 @@ struct stm32_rng_private {
|
|||
struct reset_control *rst;
|
||||
const struct stm32_rng_data *data;
|
||||
bool ced;
|
||||
bool lock_conf;
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -301,6 +302,9 @@ static int stm32_rng_init(struct hwrng *rng)
|
|||
|
||||
reg &= ~RNG_CR_CONDRST;
|
||||
reg |= RNG_CR_RNGEN;
|
||||
if (priv->lock_conf)
|
||||
reg |= RNG_CR_CONFLOCK;
|
||||
|
||||
writel_relaxed(reg, priv->base + RNG_CR);
|
||||
|
||||
err = readl_relaxed_poll_timeout_atomic(priv->base + RNG_CR, reg,
|
||||
|
@ -439,6 +443,7 @@ static int stm32_rng_probe(struct platform_device *ofdev)
|
|||
}
|
||||
|
||||
priv->ced = of_property_read_bool(np, "clock-error-detect");
|
||||
priv->lock_conf = of_property_read_bool(np, "st,rng-lock-conf");
|
||||
|
||||
priv->data = of_device_get_match_data(dev);
|
||||
if (!priv->data)
|
||||
|
|
Loading…
Reference in a new issue