Lines Matching +full:meson +full:- +full:device
1 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
32 struct device *dev;
40 *(u32 *)buf = readl_relaxed(data->base + RNG_DATA); in meson_rng_read()
54 return -EBUSY; in meson_rng_wait_status()
64 void __iomem *cfg_addr = data->base + RNG_S4_CFG; in meson_s4_rng_read()
71 dev_err(data->dev, "Seed isn't ready, try again\n"); in meson_s4_rng_read()
77 dev_err(data->dev, "Can't get random number, try again\n"); in meson_s4_rng_read()
81 *(u32 *)buf = readl_relaxed(data->base + RNG_S4_DATA); in meson_s4_rng_read()
88 struct device *dev = &pdev->dev; in meson_rng_probe()
95 return -ENOMEM; in meson_rng_probe()
97 priv = device_get_match_data(&pdev->dev); in meson_rng_probe()
99 return -ENODEV; in meson_rng_probe()
101 data->base = devm_platform_ioremap_resource(pdev, 0); in meson_rng_probe()
102 if (IS_ERR(data->base)) in meson_rng_probe()
103 return PTR_ERR(data->base); in meson_rng_probe()
110 data->rng.name = pdev->name; in meson_rng_probe()
111 data->rng.read = priv->read; in meson_rng_probe()
113 data->dev = &pdev->dev; in meson_rng_probe()
115 return devm_hwrng_register(dev, &data->rng); in meson_rng_probe()
128 .compatible = "amlogic,meson-rng",
132 .compatible = "amlogic,meson-s4-rng",
142 .name = "meson-rng",
149 MODULE_DESCRIPTION("Meson H/W Random Number Generator driver");