Skip to content

Commit e003d67

Browse files
Sam Protsenkoherbertx
authored andcommitted
hwrng: exynos - Implement bus clock control
Some SoCs like Exynos850 might require the SSS bus clock (PCLK) to be enabled in order to access TRNG registers. Add and handle the optional PCLK clock accordingly to make it possible. Signed-off-by: Sam Protsenko <[email protected]> Reviewed-by: Krzysztof Kozlowski <[email protected]> Reviewed-by: Anand Moon <[email protected]> Signed-off-by: Herbert Xu <[email protected]>
1 parent 81da805 commit e003d67

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

drivers/char/hw_random/exynos-trng.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@
4747
struct exynos_trng_dev {
4848
struct device *dev;
4949
void __iomem *mem;
50-
struct clk *clk;
50+
struct clk *clk; /* operating clock */
51+
struct clk *pclk; /* bus clock */
5152
struct hwrng rng;
5253
};
5354

@@ -141,6 +142,13 @@ static int exynos_trng_probe(struct platform_device *pdev)
141142
goto err_clock;
142143
}
143144

145+
trng->pclk = devm_clk_get_optional_enabled(&pdev->dev, "pclk");
146+
if (IS_ERR(trng->pclk)) {
147+
ret = dev_err_probe(&pdev->dev, PTR_ERR(trng->pclk),
148+
"Could not get pclk\n");
149+
goto err_clock;
150+
}
151+
144152
ret = devm_hwrng_register(&pdev->dev, &trng->rng);
145153
if (ret) {
146154
dev_err(&pdev->dev, "Could not register hwrng device.\n");

0 commit comments

Comments
 (0)