Skip to content

Commit

Permalink
hwrng: bcm2835 - Enable BCM2835 RNG to work on BCM63xx platforms
Browse files Browse the repository at this point in the history
We have now incorporated all necessary functionality for the BCM63xx
platforms to successfully migrate over bcm2835-rng, so add the final
bits: Kconfig selection and proper platform_device device type matching
to keep the same platform device name for registration to work.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
  • Loading branch information
Florian Fainelli authored and Herbert Xu committed Nov 29, 2017
1 parent 67fe2fa commit 8705f24
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 4 deletions.
7 changes: 4 additions & 3 deletions drivers/char/hw_random/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -87,12 +87,13 @@ config HW_RANDOM_BCM63XX
If unusure, say Y.

config HW_RANDOM_BCM2835
tristate "Broadcom BCM2835 Random Number Generator support"
depends on ARCH_BCM2835 || ARCH_BCM_NSP || ARCH_BCM_5301X
tristate "Broadcom BCM2835/BCM63xx Random Number Generator support"
depends on ARCH_BCM2835 || ARCH_BCM_NSP || ARCH_BCM_5301X || \
ARCH_BCM_63XX || BCM63XX || BMIPS_GENERIC
default HW_RANDOM
---help---
This driver provides kernel-side support for the Random Number
Generator hardware found on the Broadcom BCM2835 SoCs.
Generator hardware found on the Broadcom BCM2835 and BCM63xx SoCs.

To compile this driver as a module, choose M here: the
module will be called bcm2835-rng
Expand Down
11 changes: 10 additions & 1 deletion drivers/char/hw_random/bcm2835-rng.c
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ static const struct of_device_id bcm2835_rng_of_match[] = {
{ .compatible = "brcm,bcm2835-rng"},
{ .compatible = "brcm,bcm-nsp-rng", .data = &nsp_rng_of_data },
{ .compatible = "brcm,bcm5301x-rng", .data = &nsp_rng_of_data },
{ .compatible = "brcm,bcm6368-rng"},
{},
};

Expand Down Expand Up @@ -165,7 +166,7 @@ static int bcm2835_rng_probe(struct platform_device *pdev)
/* Clock is optional on most platforms */
priv->clk = devm_clk_get(dev, NULL);

priv->rng.name = "bcm2835-rng";
priv->rng.name = pdev->name;
priv->rng.init = bcm2835_rng_init;
priv->rng.read = bcm2835_rng_read;
priv->rng.cleanup = bcm2835_rng_cleanup;
Expand All @@ -191,12 +192,20 @@ static int bcm2835_rng_probe(struct platform_device *pdev)

MODULE_DEVICE_TABLE(of, bcm2835_rng_of_match);

static struct platform_device_id bcm2835_rng_devtype[] = {
{ .name = "bcm2835-rng" },
{ .name = "bcm63xx-rng" },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(platform, bcm2835_rng_devtype);

static struct platform_driver bcm2835_rng_driver = {
.driver = {
.name = "bcm2835-rng",
.of_match_table = bcm2835_rng_of_match,
},
.probe = bcm2835_rng_probe,
.id_table = bcm2835_rng_devtype,
};
module_platform_driver(bcm2835_rng_driver);

Expand Down

0 comments on commit 8705f24

Please sign in to comment.