summaryrefslogtreecommitdiff
path: root/drivers/rng/msm_rng.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2025-01-22 11:23:35 -0600
committerTom Rini <trini@konsulko.com>2025-01-22 11:23:35 -0600
commit2eed5a1ff36217372e19f7513bd07077fc76718a (patch)
treee98aadc2d4d04fc12504d00db17c4edc38bbb59d /drivers/rng/msm_rng.c
parent380b32f54f4b30f6f9b430c5d73d8b12f90f2918 (diff)
parent599a1f9076d34c29d3683e0f833706478d62d9e0 (diff)
Merge https://source.denx.de/u-boot/custodians/u-boot-snapdragon
The highlights are: * Fixed boot regression due to broken memory parsing * Enable HW RNG and KASLR on all platforms * Add support for Snapdragon X1 Elite hardware (clk/pinctrl) * Add support for QCS9100 ride automotive development platform (clk/ufs) * Add support for PCIe on SM8550, SM8650 and X1E * Implement software debounce for PMIC buttons Additionally, some minor improvements to "ufetch" have been pulled in: * Show CPU architecture (arm/mips/etc) * Make CONFIG_BLK optional * Fix 32-bit support
Diffstat (limited to 'drivers/rng/msm_rng.c')
-rw-r--r--drivers/rng/msm_rng.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/rng/msm_rng.c b/drivers/rng/msm_rng.c
index 658c153d3ed..f790d3b60f9 100644
--- a/drivers/rng/msm_rng.c
+++ b/drivers/rng/msm_rng.c
@@ -34,6 +34,7 @@
struct msm_rng_priv {
phys_addr_t base;
struct clk clk;
+ bool skip_init;
};
static int msm_rng_read(struct udevice *dev, void *data, size_t len)
@@ -100,10 +101,15 @@ static int msm_rng_probe(struct udevice *dev)
int ret;
+ priv->skip_init = (bool)dev_get_driver_data(dev);
+
priv->base = dev_read_addr(dev);
if (priv->base == FDT_ADDR_T_NONE)
return -EINVAL;
+ if (priv->skip_init)
+ return 0;
+
ret = clk_get_by_index(dev, 0, &priv->clk);
if (ret)
return ret;
@@ -119,6 +125,9 @@ static int msm_rng_remove(struct udevice *dev)
{
struct msm_rng_priv *priv = dev_get_priv(dev);
+ if (priv->skip_init)
+ return 0;
+
return msm_rng_enable(priv, 0);
}
@@ -127,7 +136,9 @@ static const struct dm_rng_ops msm_rng_ops = {
};
static const struct udevice_id msm_rng_match[] = {
- { .compatible = "qcom,prng", },
+ { .compatible = "qcom,prng", .data = (ulong)false },
+ { .compatible = "qcom,prng-ee", .data = (ulong)true },
+ { .compatible = "qcom,trng", .data = (ulong)true },
{},
};