Lines Matching refs:tps

47 	struct tps65217 *tps = irq_data_get_irq_chip_data(data);  in tps65217_irq_lock()  local
49 mutex_lock(&tps->irq_lock); in tps65217_irq_lock()
54 struct tps65217 *tps = irq_data_get_irq_chip_data(data); in tps65217_irq_sync_unlock() local
57 ret = tps65217_set_bits(tps, TPS65217_REG_INT, TPS65217_INT_MASK, in tps65217_irq_sync_unlock()
58 tps->irq_mask, TPS65217_PROTECT_NONE); in tps65217_irq_sync_unlock()
60 dev_err(tps->dev, "Failed to sync IRQ masks\n"); in tps65217_irq_sync_unlock()
62 mutex_unlock(&tps->irq_lock); in tps65217_irq_sync_unlock()
67 struct tps65217 *tps = irq_data_get_irq_chip_data(data); in tps65217_irq_enable() local
70 tps->irq_mask &= ~mask; in tps65217_irq_enable()
75 struct tps65217 *tps = irq_data_get_irq_chip_data(data); in tps65217_irq_disable() local
78 tps->irq_mask |= mask; in tps65217_irq_disable()
114 struct tps65217 *tps = data; in tps65217_irq_thread() local
120 ret = tps65217_reg_read(tps, TPS65217_REG_INT, &status); in tps65217_irq_thread()
122 dev_err(tps->dev, "Failed to read IRQ status: %d\n", in tps65217_irq_thread()
129 handle_nested_irq(irq_find_mapping(tps->irq_domain, i)); in tps65217_irq_thread()
143 struct tps65217 *tps = h->host_data; in tps65217_irq_map() local
145 irq_set_chip_data(virq, tps); in tps65217_irq_map()
148 irq_set_parent(virq, tps->irq); in tps65217_irq_map()
158 static int tps65217_irq_init(struct tps65217 *tps, int irq) in tps65217_irq_init() argument
162 mutex_init(&tps->irq_lock); in tps65217_irq_init()
163 tps->irq = irq; in tps65217_irq_init()
166 tps->irq_mask = TPS65217_INT_MASK; in tps65217_irq_init()
167 tps65217_set_bits(tps, TPS65217_REG_INT, TPS65217_INT_MASK, in tps65217_irq_init()
170 tps->irq_domain = irq_domain_add_linear(tps->dev->of_node, in tps65217_irq_init()
171 TPS65217_NUM_IRQ, &tps65217_irq_domain_ops, tps); in tps65217_irq_init()
172 if (!tps->irq_domain) { in tps65217_irq_init()
173 dev_err(tps->dev, "Could not create IRQ domain\n"); in tps65217_irq_init()
177 ret = devm_request_threaded_irq(tps->dev, irq, NULL, in tps65217_irq_init()
179 "tps65217-irq", tps); in tps65217_irq_init()
181 dev_err(tps->dev, "Failed to request IRQ %d: %d\n", in tps65217_irq_init()
198 int tps65217_reg_read(struct tps65217 *tps, unsigned int reg, in tps65217_reg_read() argument
201 return regmap_read(tps->regmap, reg, val); in tps65217_reg_read()
213 int tps65217_reg_write(struct tps65217 *tps, unsigned int reg, in tps65217_reg_write() argument
221 return regmap_write(tps->regmap, reg, val); in tps65217_reg_write()
224 ret = regmap_write(tps->regmap, TPS65217_REG_PASSWORD, in tps65217_reg_write()
229 return regmap_write(tps->regmap, reg, val); in tps65217_reg_write()
232 ret = regmap_write(tps->regmap, TPS65217_REG_PASSWORD, in tps65217_reg_write()
236 ret = regmap_write(tps->regmap, reg, val); in tps65217_reg_write()
239 ret = regmap_write(tps->regmap, TPS65217_REG_PASSWORD, in tps65217_reg_write()
243 return regmap_write(tps->regmap, reg, val); in tps65217_reg_write()
259 static int tps65217_update_bits(struct tps65217 *tps, unsigned int reg, in tps65217_update_bits() argument
265 ret = tps65217_reg_read(tps, reg, &data); in tps65217_update_bits()
267 dev_err(tps->dev, "Read from reg 0x%x failed\n", reg); in tps65217_update_bits()
274 ret = tps65217_reg_write(tps, reg, data, level); in tps65217_update_bits()
276 dev_err(tps->dev, "Write for reg 0x%x failed\n", reg); in tps65217_update_bits()
281 int tps65217_set_bits(struct tps65217 *tps, unsigned int reg, in tps65217_set_bits() argument
284 return tps65217_update_bits(tps, reg, mask, val, level); in tps65217_set_bits()
288 int tps65217_clear_bits(struct tps65217 *tps, unsigned int reg, in tps65217_clear_bits() argument
291 return tps65217_update_bits(tps, reg, mask, 0, level); in tps65217_clear_bits()
321 struct tps65217 *tps; in tps65217_probe() local
329 tps = devm_kzalloc(&client->dev, sizeof(*tps), GFP_KERNEL); in tps65217_probe()
330 if (!tps) in tps65217_probe()
333 i2c_set_clientdata(client, tps); in tps65217_probe()
334 tps->dev = &client->dev; in tps65217_probe()
336 tps->regmap = devm_regmap_init_i2c(client, &tps65217_regmap_config); in tps65217_probe()
337 if (IS_ERR(tps->regmap)) { in tps65217_probe()
338 ret = PTR_ERR(tps->regmap); in tps65217_probe()
339 dev_err(tps->dev, "Failed to allocate register map: %d\n", in tps65217_probe()
345 tps65217_irq_init(tps, client->irq); in tps65217_probe()
354 ret = devm_mfd_add_devices(tps->dev, -1, tps65217s, in tps65217_probe()
356 tps->irq_domain); in tps65217_probe()
358 dev_err(tps->dev, "mfd_add_devices failed: %d\n", ret); in tps65217_probe()
362 ret = tps65217_reg_read(tps, TPS65217_REG_CHIPID, &version); in tps65217_probe()
364 dev_err(tps->dev, "Failed to read revision register: %d\n", in tps65217_probe()
371 ret = tps65217_set_bits(tps, TPS65217_REG_STATUS, in tps65217_probe()
375 dev_warn(tps->dev, "unable to set the status OFF\n"); in tps65217_probe()
378 dev_info(tps->dev, "TPS65217 ID %#x version 1.%d\n", in tps65217_probe()
387 struct tps65217 *tps = i2c_get_clientdata(client); in tps65217_remove() local
392 virq = irq_find_mapping(tps->irq_domain, i); in tps65217_remove()
397 irq_domain_remove(tps->irq_domain); in tps65217_remove()
398 tps->irq_domain = NULL; in tps65217_remove()