Lines Matching refs:tps

38 	struct tps65217 *tps = irq_data_get_irq_chip_data(data);  in tps65217_irq_lock()  local
40 mutex_lock(&tps->irq_lock); in tps65217_irq_lock()
45 struct tps65217 *tps = irq_data_get_irq_chip_data(data); in tps65217_irq_sync_unlock() local
48 ret = tps65217_set_bits(tps, TPS65217_REG_INT, TPS65217_INT_MASK, in tps65217_irq_sync_unlock()
49 tps->irq_mask, TPS65217_PROTECT_NONE); in tps65217_irq_sync_unlock()
51 dev_err(tps->dev, "Failed to sync IRQ masks\n"); in tps65217_irq_sync_unlock()
53 mutex_unlock(&tps->irq_lock); in tps65217_irq_sync_unlock()
58 struct tps65217 *tps = irq_data_get_irq_chip_data(data); in tps65217_irq_enable() local
61 tps->irq_mask &= ~mask; in tps65217_irq_enable()
66 struct tps65217 *tps = irq_data_get_irq_chip_data(data); in tps65217_irq_disable() local
69 tps->irq_mask |= mask; in tps65217_irq_disable()
105 struct tps65217 *tps = data; in tps65217_irq_thread() local
111 ret = tps65217_reg_read(tps, TPS65217_REG_INT, &status); in tps65217_irq_thread()
113 dev_err(tps->dev, "Failed to read IRQ status: %d\n", in tps65217_irq_thread()
120 handle_nested_irq(irq_find_mapping(tps->irq_domain, i)); in tps65217_irq_thread()
134 struct tps65217 *tps = h->host_data; in tps65217_irq_map() local
136 irq_set_chip_data(virq, tps); in tps65217_irq_map()
139 irq_set_parent(virq, tps->irq); in tps65217_irq_map()
149 static int tps65217_irq_init(struct tps65217 *tps, int irq) in tps65217_irq_init() argument
153 mutex_init(&tps->irq_lock); in tps65217_irq_init()
154 tps->irq = irq; in tps65217_irq_init()
157 tps->irq_mask = TPS65217_INT_MASK; in tps65217_irq_init()
158 tps65217_set_bits(tps, TPS65217_REG_INT, TPS65217_INT_MASK, in tps65217_irq_init()
161 tps->irq_domain = irq_domain_add_linear(tps->dev->of_node, in tps65217_irq_init()
162 TPS65217_NUM_IRQ, &tps65217_irq_domain_ops, tps); in tps65217_irq_init()
163 if (!tps->irq_domain) { in tps65217_irq_init()
164 dev_err(tps->dev, "Could not create IRQ domain\n"); in tps65217_irq_init()
168 ret = devm_request_threaded_irq(tps->dev, irq, NULL, in tps65217_irq_init()
170 "tps65217-irq", tps); in tps65217_irq_init()
172 dev_err(tps->dev, "Failed to request IRQ %d: %d\n", in tps65217_irq_init()
189 int tps65217_reg_read(struct tps65217 *tps, unsigned int reg, in tps65217_reg_read() argument
192 return regmap_read(tps->regmap, reg, val); in tps65217_reg_read()
204 int tps65217_reg_write(struct tps65217 *tps, unsigned int reg, in tps65217_reg_write() argument
212 return regmap_write(tps->regmap, reg, val); in tps65217_reg_write()
215 ret = regmap_write(tps->regmap, TPS65217_REG_PASSWORD, in tps65217_reg_write()
220 return regmap_write(tps->regmap, reg, val); in tps65217_reg_write()
223 ret = regmap_write(tps->regmap, TPS65217_REG_PASSWORD, in tps65217_reg_write()
227 ret = regmap_write(tps->regmap, reg, val); in tps65217_reg_write()
230 ret = regmap_write(tps->regmap, TPS65217_REG_PASSWORD, in tps65217_reg_write()
234 return regmap_write(tps->regmap, reg, val); in tps65217_reg_write()
250 static int tps65217_update_bits(struct tps65217 *tps, unsigned int reg, in tps65217_update_bits() argument
256 ret = tps65217_reg_read(tps, reg, &data); in tps65217_update_bits()
258 dev_err(tps->dev, "Read from reg 0x%x failed\n", reg); in tps65217_update_bits()
265 ret = tps65217_reg_write(tps, reg, data, level); in tps65217_update_bits()
267 dev_err(tps->dev, "Write for reg 0x%x failed\n", reg); in tps65217_update_bits()
272 int tps65217_set_bits(struct tps65217 *tps, unsigned int reg, in tps65217_set_bits() argument
275 return tps65217_update_bits(tps, reg, mask, val, level); in tps65217_set_bits()
279 int tps65217_clear_bits(struct tps65217 *tps, unsigned int reg, in tps65217_clear_bits() argument
282 return tps65217_update_bits(tps, reg, mask, 0, level); in tps65217_clear_bits()
312 struct tps65217 *tps; in tps65217_probe() local
320 tps = devm_kzalloc(&client->dev, sizeof(*tps), GFP_KERNEL); in tps65217_probe()
321 if (!tps) in tps65217_probe()
324 i2c_set_clientdata(client, tps); in tps65217_probe()
325 tps->dev = &client->dev; in tps65217_probe()
327 tps->regmap = devm_regmap_init_i2c(client, &tps65217_regmap_config); in tps65217_probe()
328 if (IS_ERR(tps->regmap)) { in tps65217_probe()
329 ret = PTR_ERR(tps->regmap); in tps65217_probe()
330 dev_err(tps->dev, "Failed to allocate register map: %d\n", in tps65217_probe()
336 tps65217_irq_init(tps, client->irq); in tps65217_probe()
345 ret = devm_mfd_add_devices(tps->dev, -1, tps65217s, in tps65217_probe()
347 tps->irq_domain); in tps65217_probe()
349 dev_err(tps->dev, "mfd_add_devices failed: %d\n", ret); in tps65217_probe()
353 ret = tps65217_reg_read(tps, TPS65217_REG_CHIPID, &version); in tps65217_probe()
355 dev_err(tps->dev, "Failed to read revision register: %d\n", in tps65217_probe()
362 ret = tps65217_set_bits(tps, TPS65217_REG_STATUS, in tps65217_probe()
366 dev_warn(tps->dev, "unable to set the status OFF\n"); in tps65217_probe()
369 dev_info(tps->dev, "TPS65217 ID %#x version 1.%d\n", in tps65217_probe()
378 struct tps65217 *tps = i2c_get_clientdata(client); in tps65217_remove() local
383 virq = irq_find_mapping(tps->irq_domain, i); in tps65217_remove()
388 irq_domain_remove(tps->irq_domain); in tps65217_remove()
389 tps->irq_domain = NULL; in tps65217_remove()