Lines Matching refs:tps

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