rngc               23 arch/sparc/prom/ranges.c 	int regc, rngc;
rngc               26 arch/sparc/prom/ranges.c 		for (rngc = 0; rngc < nranges; rngc++)
rngc               27 arch/sparc/prom/ranges.c 			if (regp[regc].which_io == rangep[rngc].ot_child_space)
rngc               29 arch/sparc/prom/ranges.c 		if (rngc == nranges) /* oops */
rngc               31 arch/sparc/prom/ranges.c 		regp[regc].which_io = rangep[rngc].ot_parent_space;
rngc               32 arch/sparc/prom/ranges.c 		regp[regc].phys_addr -= rangep[rngc].ot_child_base;
rngc               33 arch/sparc/prom/ranges.c 		regp[regc].phys_addr += rangep[rngc].ot_parent_base;
rngc               63 drivers/char/hw_random/imx-rngc.c static inline void imx_rngc_irq_mask_clear(struct imx_rngc *rngc)
rngc               68 drivers/char/hw_random/imx-rngc.c 	ctrl = readl(rngc->base + RNGC_CONTROL);
rngc               70 drivers/char/hw_random/imx-rngc.c 	writel(ctrl, rngc->base + RNGC_CONTROL);
rngc               77 drivers/char/hw_random/imx-rngc.c 	cmd = readl(rngc->base + RNGC_COMMAND);
rngc               79 drivers/char/hw_random/imx-rngc.c 	writel(cmd, rngc->base + RNGC_COMMAND);
rngc               82 drivers/char/hw_random/imx-rngc.c static inline void imx_rngc_irq_unmask(struct imx_rngc *rngc)
rngc               86 drivers/char/hw_random/imx-rngc.c 	ctrl = readl(rngc->base + RNGC_CONTROL);
rngc               88 drivers/char/hw_random/imx-rngc.c 	writel(ctrl, rngc->base + RNGC_CONTROL);
rngc               91 drivers/char/hw_random/imx-rngc.c static int imx_rngc_self_test(struct imx_rngc *rngc)
rngc               96 drivers/char/hw_random/imx-rngc.c 	imx_rngc_irq_unmask(rngc);
rngc               99 drivers/char/hw_random/imx-rngc.c 	cmd = readl(rngc->base + RNGC_COMMAND);
rngc              100 drivers/char/hw_random/imx-rngc.c 	writel(cmd | RNGC_CMD_SELF_TEST, rngc->base + RNGC_COMMAND);
rngc              102 drivers/char/hw_random/imx-rngc.c 	ret = wait_for_completion_timeout(&rngc->rng_op_done, RNGC_TIMEOUT);
rngc              104 drivers/char/hw_random/imx-rngc.c 		imx_rngc_irq_mask_clear(rngc);
rngc              108 drivers/char/hw_random/imx-rngc.c 	if (rngc->err_reg != 0) {
rngc              109 drivers/char/hw_random/imx-rngc.c 		imx_rngc_irq_mask_clear(rngc);
rngc              118 drivers/char/hw_random/imx-rngc.c 	struct imx_rngc *rngc = container_of(rng, struct imx_rngc, rng);
rngc              124 drivers/char/hw_random/imx-rngc.c 		status = readl(rngc->base + RNGC_STATUS);
rngc              136 drivers/char/hw_random/imx-rngc.c 			*(u32 *)data = readl(rngc->base + RNGC_FIFO);
rngc              149 drivers/char/hw_random/imx-rngc.c 	struct imx_rngc *rngc = (struct imx_rngc *)priv;
rngc              156 drivers/char/hw_random/imx-rngc.c 	status = readl(rngc->base + RNGC_STATUS);
rngc              157 drivers/char/hw_random/imx-rngc.c 	rngc->err_reg = readl(rngc->base + RNGC_ERROR);
rngc              159 drivers/char/hw_random/imx-rngc.c 	imx_rngc_irq_mask_clear(rngc);
rngc              162 drivers/char/hw_random/imx-rngc.c 		complete(&rngc->rng_op_done);
rngc              169 drivers/char/hw_random/imx-rngc.c 	struct imx_rngc *rngc = container_of(rng, struct imx_rngc, rng);
rngc              174 drivers/char/hw_random/imx-rngc.c 	cmd = readl(rngc->base + RNGC_COMMAND);
rngc              175 drivers/char/hw_random/imx-rngc.c 	writel(cmd | RNGC_CMD_CLR_ERR, rngc->base + RNGC_COMMAND);
rngc              179 drivers/char/hw_random/imx-rngc.c 		imx_rngc_irq_unmask(rngc);
rngc              182 drivers/char/hw_random/imx-rngc.c 		cmd = readl(rngc->base + RNGC_COMMAND);
rngc              183 drivers/char/hw_random/imx-rngc.c 		writel(cmd | RNGC_CMD_SEED, rngc->base + RNGC_COMMAND);
rngc              185 drivers/char/hw_random/imx-rngc.c 		ret = wait_for_completion_timeout(&rngc->rng_op_done,
rngc              189 drivers/char/hw_random/imx-rngc.c 			imx_rngc_irq_mask_clear(rngc);
rngc              193 drivers/char/hw_random/imx-rngc.c 	} while (rngc->err_reg == RNGC_ERROR_STATUS_STAT_ERR);
rngc              195 drivers/char/hw_random/imx-rngc.c 	return rngc->err_reg ? -EIO : 0;
rngc              200 drivers/char/hw_random/imx-rngc.c 	struct imx_rngc *rngc;
rngc              204 drivers/char/hw_random/imx-rngc.c 	rngc = devm_kzalloc(&pdev->dev, sizeof(*rngc), GFP_KERNEL);
rngc              205 drivers/char/hw_random/imx-rngc.c 	if (!rngc)
rngc              208 drivers/char/hw_random/imx-rngc.c 	rngc->base = devm_platform_ioremap_resource(pdev, 0);
rngc              209 drivers/char/hw_random/imx-rngc.c 	if (IS_ERR(rngc->base))
rngc              210 drivers/char/hw_random/imx-rngc.c 		return PTR_ERR(rngc->base);
rngc              212 drivers/char/hw_random/imx-rngc.c 	rngc->clk = devm_clk_get(&pdev->dev, NULL);
rngc              213 drivers/char/hw_random/imx-rngc.c 	if (IS_ERR(rngc->clk)) {
rngc              215 drivers/char/hw_random/imx-rngc.c 		return PTR_ERR(rngc->clk);
rngc              224 drivers/char/hw_random/imx-rngc.c 	ret = clk_prepare_enable(rngc->clk);
rngc              229 drivers/char/hw_random/imx-rngc.c 			irq, imx_rngc_irq, 0, pdev->name, (void *)rngc);
rngc              231 drivers/char/hw_random/imx-rngc.c 		dev_err(rngc->dev, "Can't get interrupt working.\n");
rngc              235 drivers/char/hw_random/imx-rngc.c 	init_completion(&rngc->rng_op_done);
rngc              237 drivers/char/hw_random/imx-rngc.c 	rngc->rng.name = pdev->name;
rngc              238 drivers/char/hw_random/imx-rngc.c 	rngc->rng.init = imx_rngc_init;
rngc              239 drivers/char/hw_random/imx-rngc.c 	rngc->rng.read = imx_rngc_read;
rngc              241 drivers/char/hw_random/imx-rngc.c 	rngc->dev = &pdev->dev;
rngc              242 drivers/char/hw_random/imx-rngc.c 	platform_set_drvdata(pdev, rngc);
rngc              244 drivers/char/hw_random/imx-rngc.c 	imx_rngc_irq_mask_clear(rngc);
rngc              247 drivers/char/hw_random/imx-rngc.c 		ret = imx_rngc_self_test(rngc);
rngc              249 drivers/char/hw_random/imx-rngc.c 			dev_err(rngc->dev, "FSL RNGC self test failed.\n");
rngc              254 drivers/char/hw_random/imx-rngc.c 	ret = hwrng_register(&rngc->rng);
rngc              264 drivers/char/hw_random/imx-rngc.c 	clk_disable_unprepare(rngc->clk);
rngc              271 drivers/char/hw_random/imx-rngc.c 	struct imx_rngc *rngc = platform_get_drvdata(pdev);
rngc              273 drivers/char/hw_random/imx-rngc.c 	hwrng_unregister(&rngc->rng);
rngc              275 drivers/char/hw_random/imx-rngc.c 	clk_disable_unprepare(rngc->clk);
rngc              282 drivers/char/hw_random/imx-rngc.c 	struct imx_rngc *rngc = dev_get_drvdata(dev);
rngc              284 drivers/char/hw_random/imx-rngc.c 	clk_disable_unprepare(rngc->clk);
rngc              291 drivers/char/hw_random/imx-rngc.c 	struct imx_rngc *rngc = dev_get_drvdata(dev);
rngc              293 drivers/char/hw_random/imx-rngc.c 	clk_prepare_enable(rngc->clk);