Lines Matching refs:rdev

143 int retu_read(struct retu_dev *rdev, u8 reg)  in retu_read()  argument
148 mutex_lock(&rdev->mutex); in retu_read()
149 ret = regmap_read(rdev->regmap, reg, &value); in retu_read()
150 mutex_unlock(&rdev->mutex); in retu_read()
156 int retu_write(struct retu_dev *rdev, u8 reg, u16 data) in retu_write() argument
160 mutex_lock(&rdev->mutex); in retu_write()
161 ret = regmap_write(rdev->regmap, reg, data); in retu_write()
162 mutex_unlock(&rdev->mutex); in retu_write()
170 struct retu_dev *rdev = retu_pm_power_off; in retu_power_off() local
176 regmap_read(rdev->regmap, RETU_REG_CC1, &reg); in retu_power_off()
177 regmap_write(rdev->regmap, RETU_REG_CC1, reg | 2); in retu_power_off()
180 regmap_write(rdev->regmap, RETU_REG_WATCHDOG, 0); in retu_power_off()
233 struct retu_dev *rdev; in retu_probe() local
240 rdev = devm_kzalloc(&i2c->dev, sizeof(*rdev), GFP_KERNEL); in retu_probe()
241 if (rdev == NULL) in retu_probe()
244 i2c_set_clientdata(i2c, rdev); in retu_probe()
245 rdev->dev = &i2c->dev; in retu_probe()
246 mutex_init(&rdev->mutex); in retu_probe()
247 rdev->regmap = devm_regmap_init(&i2c->dev, &retu_bus, &i2c->dev, in retu_probe()
249 if (IS_ERR(rdev->regmap)) in retu_probe()
250 return PTR_ERR(rdev->regmap); in retu_probe()
252 ret = retu_read(rdev, RETU_REG_ASICR); in retu_probe()
254 dev_err(rdev->dev, "could not read %s revision: %d\n", in retu_probe()
259 dev_info(rdev->dev, "%s%s%s v%d.%d found\n", rdat->chip_name, in retu_probe()
265 ret = retu_write(rdev, rdat->irq_chip->mask_base, 0xffff); in retu_probe()
269 ret = regmap_add_irq_chip(rdev->regmap, i2c->irq, IRQF_ONESHOT, -1, in retu_probe()
270 rdat->irq_chip, &rdev->irq_data); in retu_probe()
274 ret = mfd_add_devices(rdev->dev, -1, rdat->children, rdat->nchildren, in retu_probe()
275 NULL, regmap_irq_chip_get_base(rdev->irq_data), in retu_probe()
278 regmap_del_irq_chip(i2c->irq, rdev->irq_data); in retu_probe()
283 retu_pm_power_off = rdev; in retu_probe()
292 struct retu_dev *rdev = i2c_get_clientdata(i2c); in retu_remove() local
294 if (retu_pm_power_off == rdev) { in retu_remove()
298 mfd_remove_devices(rdev->dev); in retu_remove()
299 regmap_del_irq_chip(i2c->irq, rdev->irq_data); in retu_remove()