Lines Matching defs:tps

184 	struct tps65010	*tps = s->private;
190 switch (tps->model) {
200 mutex_lock(&tps->lock);
206 seq_printf(s, "%scharging\n\n", tps->charging ? "" : "(not) ");
212 value = i2c_smbus_read_byte_data(tps->client, TPS_CHGCONFIG);
213 dbg_chgconf(tps->por, buf, sizeof buf, value);
216 value = i2c_smbus_read_byte_data(tps->client, TPS_CHGSTATUS);
219 value = i2c_smbus_read_byte_data(tps->client, TPS_MASK1);
224 value = i2c_smbus_read_byte_data(tps->client, TPS_REGSTATUS);
227 value = i2c_smbus_read_byte_data(tps->client, TPS_MASK2);
232 queue_delayed_work(system_power_efficient_wq, &tps->work,
236 value = i2c_smbus_read_byte_data(tps->client, TPS_VDCDC1);
240 value = i2c_smbus_read_byte_data(tps->client, TPS_VDCDC2);
244 value = i2c_smbus_read_byte_data(tps->client, TPS_VREGS1);
249 value = i2c_smbus_read_byte_data(tps->client, TPS_LED1_ON);
250 v2 = i2c_smbus_read_byte_data(tps->client, TPS_LED1_PER);
258 value = i2c_smbus_read_byte_data(tps->client, TPS_LED2_ON);
259 v2 = i2c_smbus_read_byte_data(tps->client, TPS_LED2_PER);
267 value = i2c_smbus_read_byte_data(tps->client, TPS_DEFGPIO);
268 v2 = i2c_smbus_read_byte_data(tps->client, TPS_MASK3);
282 mutex_unlock(&tps->lock);
307 static void tps65010_interrupt(struct tps65010 *tps)
317 if (tps->nmask2) {
318 tmp = i2c_smbus_read_byte_data(tps->client, TPS_REGSTATUS);
319 mask = tmp ^ tps->regstatus;
320 tps->regstatus = tmp;
321 mask &= tps->nmask2;
325 tps->regstatus = tmp;
344 if (tps->nmask1) {
345 tmp = i2c_smbus_read_byte_data(tps->client, TPS_CHGSTATUS);
346 mask = tmp ^ tps->chgstatus;
347 tps->chgstatus = tmp;
348 mask &= tps->nmask1;
356 show_chgconfig(tps->por, "conf", tps->chgconf);
362 if (!(tps->chgstatus & ~(TPS_CHG_USB|TPS_CHG_AC))
363 && (tps->chgstatus & (TPS_CHG_USB|TPS_CHG_AC))
364 && (tps->chgconf & TPS_CHARGE_ENABLE)
366 if (tps->chgstatus & TPS_CHG_USB) {
369 set_bit(FLAG_VBUS_CHANGED, &tps->flags);
371 } else if (tps->chgstatus & TPS_CHG_AC)
374 if (charging != tps->charging) {
375 tps->charging = charging;
378 ((tps->chgstatus & (TPS_CHG_USB|TPS_CHG_AC))
386 if ((tps->model != TPS65013 || !tps->charging)
387 && (tps->chgstatus & (TPS_CHG_USB|TPS_CHG_AC)))
390 queue_delayed_work(system_power_efficient_wq, &tps->work,
399 struct tps65010 *tps;
401 tps = container_of(to_delayed_work(work), struct tps65010, work);
402 mutex_lock(&tps->lock);
404 tps65010_interrupt(tps);
406 if (test_and_clear_bit(FLAG_VBUS_CHANGED, &tps->flags)) {
409 chgconfig = i2c_smbus_read_byte_data(tps->client,
412 if (tps->vbus == 500)
414 else if (tps->vbus >= 100)
417 i2c_smbus_write_byte_data(tps->client,
421 tmp = i2c_smbus_read_byte_data(tps->client, TPS_CHGCONFIG);
422 tps->chgconf = tmp;
423 show_chgconfig(tps->por, "update vbus", tmp);
426 if (test_and_clear_bit(FLAG_IRQ_ENABLE, &tps->flags))
427 enable_irq(tps->client->irq);
429 mutex_unlock(&tps->lock);
434 struct tps65010 *tps = _tps;
437 set_bit(FLAG_IRQ_ENABLE, &tps->flags);
438 queue_delayed_work(system_power_efficient_wq, &tps->work, 0);
464 struct tps65010 *tps;
466 tps = gpiochip_get_data(chip);
467 if (!(tps->outmask & (1 << offset)))
481 struct tps65010 *tps;
483 tps = gpiochip_get_data(chip);
486 value = i2c_smbus_read_byte_data(tps->client, TPS_DEFGPIO);
506 struct tps65010 *tps = i2c_get_clientdata(client);
510 board->teardown(client, &tps->chip);
512 free_irq(client->irq, tps);
513 cancel_delayed_work_sync(&tps->work);
514 debugfs_remove(tps->file);
521 struct tps65010 *tps;
533 tps = devm_kzalloc(&client->dev, sizeof(*tps), GFP_KERNEL);
534 if (!tps)
537 mutex_init(&tps->lock);
538 INIT_DELAYED_WORK(&tps->work, tps65010_work);
539 tps->client = client;
540 tps->model = id->driver_data;
547 IRQF_TRIGGER_FALLING, DRIVER_NAME, tps);
558 set_bit(FLAG_IRQ_ENABLE, &tps->flags);
563 switch (tps->model) {
566 tps->por = 1;
570 tps->chgconf = i2c_smbus_read_byte_data(client, TPS_CHGCONFIG);
571 show_chgconfig(tps->por, "conf/init", tps->chgconf);
586 i2c_set_clientdata(client, tps);
587 the_tps = tps;
594 tps->vbus = 100;
601 tps->nmask1 = ~0;
602 (void) i2c_smbus_write_byte_data(client, TPS_MASK1, ~tps->nmask1);
604 tps->nmask2 = TPS_REG_ONOFF;
605 if (tps->model == TPS65013)
606 tps->nmask2 |= TPS_REG_NO_CHG;
607 (void) i2c_smbus_write_byte_data(client, TPS_MASK2, ~tps->nmask2);
612 tps65010_work(&tps->work.work);
614 tps->file = debugfs_create_file(DRIVER_NAME, S_IRUGO, NULL,
615 tps, DEBUG_FOPS);
619 tps->outmask = board->outmask;
621 tps->chip.label = client->name;
622 tps->chip.parent = &client->dev;
623 tps->chip.owner = THIS_MODULE;
625 tps->chip.set = tps65010_gpio_set;
626 tps->chip.direction_output = tps65010_output;
629 tps->chip.get = tps65010_gpio_get;
631 tps->chip.base = -1;
632 tps->chip.ngpio = 7;
633 tps->chip.can_sleep = 1;
635 status = gpiochip_add_data(&tps->chip, tps);
640 status = board->setup(client, &tps->chip);