Lines Matching full:trng
37 struct ingenic_trng *trng = container_of(rng, struct ingenic_trng, rng);
40 ctrl = readl(trng->base + TRNG_REG_CFG_OFFSET);
42 writel(ctrl, trng->base + TRNG_REG_CFG_OFFSET);
49 struct ingenic_trng *trng = container_of(rng, struct ingenic_trng, rng);
52 ctrl = readl(trng->base + TRNG_REG_CFG_OFFSET);
54 writel(ctrl, trng->base + TRNG_REG_CFG_OFFSET);
59 struct ingenic_trng *trng = container_of(rng, struct ingenic_trng, rng);
64 ret = readl_poll_timeout(trng->base + TRNG_REG_STATUS_OFFSET, status,
71 *data = readl(trng->base + TRNG_REG_RANDOMNUM_OFFSET);
78 struct ingenic_trng *trng;
82 trng = devm_kzalloc(&pdev->dev, sizeof(*trng), GFP_KERNEL);
83 if (!trng)
86 trng->base = devm_platform_ioremap_resource(pdev, 0);
87 if (IS_ERR(trng->base))
88 return dev_err_probe(&pdev->dev, PTR_ERR(trng->base),
96 trng->rng.name = pdev->name;
97 trng->rng.init = ingenic_trng_init;
98 trng->rng.cleanup = ingenic_trng_cleanup;
99 trng->rng.read = ingenic_trng_read;
101 ret = devm_hwrng_register(&pdev->dev, &trng->rng);
105 platform_set_drvdata(pdev, trng);
120 .name = "ingenic-trng",