Lines Matching refs:sid
62 static u8 sunxi_sid_read_byte(const struct sunxi_sid *sid, in sunxi_sid_read_byte() argument
67 sid_key = ioread32be(sid->base + round_down(offset, 4)); in sunxi_sid_read_byte()
76 struct sunxi_sid *sid = context; in sunxi_sid_read() local
80 offset += sid->value_offset; in sunxi_sid_read()
83 *buf++ = sunxi_sid_read_byte(sid, offset++); in sunxi_sid_read()
88 static int sun8i_sid_register_readout(const struct sunxi_sid *sid, in sun8i_sid_register_readout() argument
98 writel(reg_val, sid->base + SUN8I_SID_PRCTL); in sun8i_sid_register_readout()
100 ret = readl_poll_timeout(sid->base + SUN8I_SID_PRCTL, reg_val, in sun8i_sid_register_readout()
105 writel(0, sid->base + SUN8I_SID_PRCTL); in sun8i_sid_register_readout()
114 struct sunxi_sid *sid; in sunxi_sid_probe() local
119 sid = devm_kzalloc(dev, sizeof(*sid), GFP_KERNEL); in sunxi_sid_probe()
120 if (!sid) in sunxi_sid_probe()
126 sid->value_offset = cfg->value_offset; in sunxi_sid_probe()
129 sid->base = devm_ioremap_resource(dev, res); in sunxi_sid_probe()
130 if (IS_ERR(sid->base)) in sunxi_sid_probe()
131 return PTR_ERR(sid->base); in sunxi_sid_probe()
146 ret = sun8i_sid_register_readout(sid, i); in sunxi_sid_probe()
155 econfig.priv = sid; in sunxi_sid_probe()
167 randomness[i] = sunxi_sid_read_byte(sid, i); in sunxi_sid_probe()