Lines Matching refs:rngdev
66 struct tx4939_rng *rngdev = container_of(rng, struct tx4939_rng, rng);
69 if (rngdev->data_avail)
70 return rngdev->data_avail;
73 if (!(read_rng(rngdev->base, TX4939_RNG_RCSR)
75 rngdev->databuf[0] =
76 read_rng(rngdev->base, TX4939_RNG_ROR(0));
77 rngdev->databuf[1] =
78 read_rng(rngdev->base, TX4939_RNG_ROR(1));
79 rngdev->databuf[2] =
80 read_rng(rngdev->base, TX4939_RNG_ROR(2));
81 rngdev->data_avail =
82 sizeof(rngdev->databuf) / sizeof(u32);
85 rngdev->base, TX4939_RNG_RCSR);
94 return rngdev->data_avail;
99 struct tx4939_rng *rngdev = container_of(rng, struct tx4939_rng, rng);
101 rngdev->data_avail--;
102 *buffer = *((u32 *)&rngdev->databuf + rngdev->data_avail);
108 struct tx4939_rng *rngdev;
115 rngdev = devm_kzalloc(&dev->dev, sizeof(*rngdev), GFP_KERNEL);
116 if (!rngdev)
121 rngdev->base = devm_ioremap(&dev->dev, r->start, resource_size(r));
122 if (!rngdev->base)
125 rngdev->rng.name = dev_name(&dev->dev);
126 rngdev->rng.data_present = tx4939_rng_data_present;
127 rngdev->rng.data_read = tx4939_rng_data_read;
131 write_rng(TX4939_RNG_RCSR_RST, rngdev->base, TX4939_RNG_RCSR);
132 write_rng(0, rngdev->base, TX4939_RNG_RCSR);
134 write_rng(TX4939_RNG_RCSR_ST, rngdev->base, TX4939_RNG_RCSR);
145 rngdev->data_avail = 0;
146 if (!tx4939_rng_data_present(&rngdev->rng, 1))
150 platform_set_drvdata(dev, rngdev);
151 return hwrng_register(&rngdev->rng);
156 struct tx4939_rng *rngdev = platform_get_drvdata(dev);
158 hwrng_unregister(&rngdev->rng);