Lines Matching +full:st +full:- +full:microelectronics
1 // SPDX-License-Identifier: GPL-2.0-only
3 * ST Random Number Generator Driver ST's Platforms
5 * Author: Pankaj Dev: <pankaj.dev@st.com>
50 struct st_rng_data *ddata = (struct st_rng_data *)rng->priv; in st_rng_read()
54 /* Wait until FIFO is full - max 4uS*/ in st_rng_read()
56 status = readl_relaxed(ddata->base + ST_RNG_STATUS_REG); in st_rng_read()
67 readl_relaxed(ddata->base + ST_RNG_DATA_REG); in st_rng_read()
79 ddata = devm_kzalloc(&pdev->dev, sizeof(*ddata), GFP_KERNEL); in st_rng_probe()
81 return -ENOMEM; in st_rng_probe()
87 clk = devm_clk_get_enabled(&pdev->dev, NULL); in st_rng_probe()
91 ddata->ops.priv = (unsigned long)ddata; in st_rng_probe()
92 ddata->ops.read = st_rng_read; in st_rng_probe()
93 ddata->ops.name = pdev->name; in st_rng_probe()
94 ddata->base = base; in st_rng_probe()
96 ret = devm_hwrng_register(&pdev->dev, &ddata->ops); in st_rng_probe()
98 dev_err(&pdev->dev, "Failed to register HW RNG\n"); in st_rng_probe()
102 dev_info(&pdev->dev, "Successfully registered HW RNG\n"); in st_rng_probe()
108 { .compatible = "st,rng" },
115 .name = "st-hwrandom",
123 MODULE_AUTHOR("Pankaj Dev <pankaj.dev@st.com>");
124 MODULE_DESCRIPTION("ST Microelectronics HW Random Number Generator");