Lines Matching defs:rngdev
67 struct tx4939_rng *rngdev = container_of(rng, struct tx4939_rng, rng);
70 if (rngdev->data_avail)
71 return rngdev->data_avail;
74 if (!(read_rng(rngdev->base, TX4939_RNG_RCSR)
76 rngdev->databuf[0] =
77 read_rng(rngdev->base, TX4939_RNG_ROR(0));
78 rngdev->databuf[1] =
79 read_rng(rngdev->base, TX4939_RNG_ROR(1));
80 rngdev->databuf[2] =
81 read_rng(rngdev->base, TX4939_RNG_ROR(2));
82 rngdev->data_avail =
83 sizeof(rngdev->databuf) / sizeof(u32);
86 rngdev->base, TX4939_RNG_RCSR);
95 return rngdev->data_avail;
100 struct tx4939_rng *rngdev = container_of(rng, struct tx4939_rng, rng);
102 rngdev->data_avail--;
103 *buffer = *((u32 *)&rngdev->databuf + rngdev->data_avail);
109 struct tx4939_rng *rngdev;
112 rngdev = devm_kzalloc(&dev->dev, sizeof(*rngdev), GFP_KERNEL);
113 if (!rngdev)
115 rngdev->base = devm_platform_ioremap_resource(dev, 0);
116 if (IS_ERR(rngdev->base))
117 return PTR_ERR(rngdev->base);
119 rngdev->rng.name = dev_name(&dev->dev);
120 rngdev->rng.data_present = tx4939_rng_data_present;
121 rngdev->rng.data_read = tx4939_rng_data_read;
125 write_rng(TX4939_RNG_RCSR_RST, rngdev->base, TX4939_RNG_RCSR);
126 write_rng(0, rngdev->base, TX4939_RNG_RCSR);
128 write_rng(TX4939_RNG_RCSR_ST, rngdev->base, TX4939_RNG_RCSR);
139 rngdev->data_avail = 0;
140 if (!tx4939_rng_data_present(&rngdev->rng, 1))
144 platform_set_drvdata(dev, rngdev);
145 return devm_hwrng_register(&dev->dev, &rngdev->rng);