• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/drivers/mfd/

Lines Matching defs:ab3100

64 	struct ab3100 *ab3100 = dev_get_drvdata(dev->parent);
66 return (int)ab3100->chip_id;
69 static int ab3100_set_register_interruptible(struct ab3100 *ab3100,
75 err = mutex_lock_interruptible(&ab3100->access_mutex);
84 err = i2c_master_send(ab3100->i2c_client, regandval, 2);
86 dev_err(ab3100->dev,
90 dev_err(ab3100->dev,
99 mutex_unlock(&ab3100->access_mutex);
106 struct ab3100 *ab3100 = dev_get_drvdata(dev->parent);
108 return ab3100_set_register_interruptible(ab3100, reg, value);
118 static int ab3100_set_test_register_interruptible(struct ab3100 *ab3100,
124 err = mutex_lock_interruptible(&ab3100->access_mutex);
128 err = i2c_master_send(ab3100->testreg_client, regandval, 2);
130 dev_err(ab3100->dev,
134 dev_err(ab3100->dev,
143 mutex_unlock(&ab3100->access_mutex);
148 static int ab3100_get_register_interruptible(struct ab3100 *ab3100,
153 err = mutex_lock_interruptible(&ab3100->access_mutex);
163 err = i2c_master_send(ab3100->i2c_client, &reg, 1);
165 dev_err(ab3100->dev,
170 dev_err(ab3100->dev,
181 err = i2c_master_recv(ab3100->i2c_client, regval, 1);
183 dev_err(ab3100->dev,
188 dev_err(ab3100->dev,
200 mutex_unlock(&ab3100->access_mutex);
207 struct ab3100 *ab3100 = dev_get_drvdata(dev->parent);
209 return ab3100_get_register_interruptible(ab3100, reg, value);
212 static int ab3100_get_register_page_interruptible(struct ab3100 *ab3100,
217 if (ab3100->chip_id == 0xa0 ||
218 ab3100->chip_id == 0xa1)
222 err = mutex_lock_interruptible(&ab3100->access_mutex);
229 err = i2c_master_send(ab3100->i2c_client, &first_reg, 1);
231 dev_err(ab3100->dev,
236 dev_err(ab3100->dev,
244 err = i2c_master_recv(ab3100->i2c_client, regvals, numregs);
246 dev_err(ab3100->dev,
251 dev_err(ab3100->dev,
263 mutex_unlock(&ab3100->access_mutex);
270 struct ab3100 *ab3100 = dev_get_drvdata(dev->parent);
272 return ab3100_get_register_page_interruptible(ab3100,
276 static int ab3100_mask_and_set_register_interruptible(struct ab3100 *ab3100,
282 err = mutex_lock_interruptible(&ab3100->access_mutex);
287 err = i2c_master_send(ab3100->i2c_client, &reg, 1);
289 dev_err(ab3100->dev,
294 dev_err(ab3100->dev,
302 err = i2c_master_recv(ab3100->i2c_client, &regandval[1], 1);
304 dev_err(ab3100->dev,
309 dev_err(ab3100->dev,
322 err = i2c_master_send(ab3100->i2c_client, regandval, 2);
324 dev_err(ab3100->dev,
329 dev_err(ab3100->dev,
341 mutex_unlock(&ab3100->access_mutex);
348 struct ab3100 *ab3100 = dev_get_drvdata(dev->parent);
350 return ab3100_mask_and_set_register_interruptible(ab3100,
357 int ab3100_event_register(struct ab3100 *ab3100,
360 return blocking_notifier_chain_register(&ab3100->event_subscribers,
368 int ab3100_event_unregister(struct ab3100 *ab3100,
371 return blocking_notifier_chain_unregister(&ab3100->event_subscribers,
380 struct ab3100 *ab3100 = dev_get_drvdata(dev->parent);
381 if (!ab3100->startup_events_read)
383 memcpy(event, ab3100->startup_events, 3);
405 struct ab3100 *ab3100 = data;
412 err = ab3100_get_register_page_interruptible(ab3100, AB3100_EVENTA1,
421 if (!ab3100->startup_events_read) {
422 ab3100->startup_events[0] = event_regs[0];
423 ab3100->startup_events[1] = event_regs[1];
424 ab3100->startup_events[2] = event_regs[2];
425 ab3100->startup_events_read = true;
433 blocking_notifier_call_chain(&ab3100->event_subscribers,
436 dev_dbg(ab3100->dev,
442 dev_dbg(ab3100->dev,
453 struct ab3100 *ab3100 = s->private;
460 ab3100_get_register_interruptible(ab3100, reg, &value);
480 struct ab3100 *ab3100;
495 struct ab3100 *ab3100 = priv->ab3100;
540 ab3100_get_register_interruptible(ab3100, reg, &regvalue);
542 dev_info(ab3100->dev,
572 ab3100_set_register_interruptible(ab3100, reg, value);
573 ab3100_get_register_interruptible(ab3100, reg, &regvalue);
575 dev_info(ab3100->dev,
595 static void ab3100_setup_debugfs(struct ab3100 *ab3100)
599 ab3100_dir = debugfs_create_dir("ab3100", NULL);
604 S_IRUGO, ab3100_dir, ab3100,
611 ab3100_get_priv.ab3100 = ab3100;
621 ab3100_set_priv.ab3100 = ab3100;
649 static inline void ab3100_setup_debugfs(struct ab3100 *ab3100)
715 static int __init ab3100_setup(struct ab3100 *ab3100)
721 err = ab3100_set_register_interruptible(ab3100,
733 if (ab3100->chip_id == 0xc4) {
734 dev_warn(ab3100->dev,
737 err = ab3100_set_test_register_interruptible(ab3100,
760 AB3100_DEVICE(dac, "ab3100-dac");
761 AB3100_DEVICE(leds, "ab3100-leds");
762 AB3100_DEVICE(power, "ab3100-power");
763 AB3100_DEVICE(regulators, "ab3100-regulators");
764 AB3100_DEVICE(sim, "ab3100-sim");
765 AB3100_DEVICE(uart, "ab3100-uart");
766 AB3100_DEVICE(rtc, "ab3100-rtc");
767 AB3100_DEVICE(charger, "ab3100-charger");
768 AB3100_DEVICE(boost, "ab3100-boost");
769 AB3100_DEVICE(adc, "ab3100-adc");
770 AB3100_DEVICE(fuelgauge, "ab3100-fuelgauge");
771 AB3100_DEVICE(vibrator, "ab3100-vibrator");
772 AB3100_DEVICE(otp, "ab3100-otp");
773 AB3100_DEVICE(codec, "ab3100-codec");
855 struct ab3100 *ab3100;
861 ab3100 = kzalloc(sizeof(struct ab3100), GFP_KERNEL);
862 if (!ab3100) {
868 mutex_init(&ab3100->access_mutex);
869 BLOCKING_INIT_NOTIFIER_HEAD(&ab3100->event_subscribers);
871 ab3100->i2c_client = client;
872 ab3100->dev = &ab3100->i2c_client->dev;
874 i2c_set_clientdata(client, ab3100);
877 err = ab3100_get_register_interruptible(ab3100, AB3100_CID,
878 &ab3100->chip_id);
887 if (ids[i].id == ab3100->chip_id) {
889 snprintf(&ab3100->chip_name[0],
890 sizeof(ab3100->chip_name) - 1,
904 ab3100->chip_id);
911 &ab3100->chip_name[0]);
914 ab3100->testreg_client = i2c_new_dummy(client->adapter,
916 if (!ab3100->testreg_client) {
921 err = ab3100_setup(ab3100);
926 IRQF_ONESHOT, "ab3100-core", ab3100);
943 platform_set_drvdata(ab3100_platform_devs[i], ab3100);
950 ab3100_setup_debugfs(ab3100);
957 i2c_unregister_device(ab3100->testreg_client);
960 kfree(ab3100);
966 struct ab3100 *ab3100 = i2c_get_clientdata(client);
974 i2c_unregister_device(ab3100->testreg_client);
980 free_irq(client->irq, ab3100);
981 kfree(ab3100);
986 { "ab3100", 0 },
993 .name = "ab3100",