13 #include <linux/device.h>
14 #include <linux/kernel.h>
15 #include <linux/slab.h>
17 #include <linux/list.h>
18 #include <linux/module.h>
31 struct iio_dev *indio_dev = dev_to_iio_dev(dev);
39 return sprintf(buf,
"%u\n", val);
48 struct iio_dev *indio_dev = dev_to_iio_dev(dev);
56 return sprintf(buf,
"%u\n", val);
65 struct iio_dev *indio_dev = dev_to_iio_dev(dev);
73 return sprintf(buf,
"%u\n", val);
83 struct iio_dev *indio_dev = dev_to_iio_dev(dev);
90 return sprintf(buf,
"%u\n", val);
99 struct iio_dev *indio_dev = dev_to_iio_dev(dev);
111 return ret ? ret : len;
120 struct iio_dev *indio_dev = dev_to_iio_dev(dev);
132 return ret ? ret : len;
141 struct iio_dev *indio_dev = dev_to_iio_dev(dev);
153 return ret ? ret : len;
162 struct iio_dev *indio_dev = dev_to_iio_dev(dev);
174 return ret ? ret : len;
177 static int ade7854_reset(
struct device *dev)
179 struct iio_dev *indio_dev = dev_to_iio_dev(dev);
192 const char *buf,
size_t len)
200 return ade7854_reset(dev);
426 static int ade7854_set_irq(
struct device *dev,
bool enable)
428 struct iio_dev *indio_dev = dev_to_iio_dev(dev);
452 static int ade7854_initial_setup(
struct iio_dev *indio_dev)
458 ret = ade7854_set_irq(dev,
false);
460 dev_err(dev,
"disable irq failed");
477 static struct attribute *ade7854_attributes[] = {
478 &iio_dev_attr_aigain.dev_attr.attr,
479 &iio_dev_attr_bigain.dev_attr.attr,
480 &iio_dev_attr_cigain.dev_attr.attr,
481 &iio_dev_attr_nigain.dev_attr.attr,
482 &iio_dev_attr_avgain.dev_attr.attr,
483 &iio_dev_attr_bvgain.dev_attr.attr,
484 &iio_dev_attr_cvgain.dev_attr.attr,
485 &iio_dev_attr_linecyc.dev_attr.attr,
486 &iio_dev_attr_sagcyc.dev_attr.attr,
487 &iio_dev_attr_cfcyc.dev_attr.attr,
488 &iio_dev_attr_peakcyc.dev_attr.attr,
489 &iio_dev_attr_chksum.dev_attr.attr,
490 &iio_dev_attr_apparent_power_a_gain.dev_attr.attr,
491 &iio_dev_attr_apparent_power_b_gain.dev_attr.attr,
492 &iio_dev_attr_apparent_power_c_gain.dev_attr.attr,
493 &iio_dev_attr_active_power_a_offset.dev_attr.attr,
494 &iio_dev_attr_active_power_b_offset.dev_attr.attr,
495 &iio_dev_attr_active_power_c_offset.dev_attr.attr,
496 &iio_dev_attr_reactive_power_a_gain.dev_attr.attr,
497 &iio_dev_attr_reactive_power_b_gain.dev_attr.attr,
498 &iio_dev_attr_reactive_power_c_gain.dev_attr.attr,
499 &iio_dev_attr_reactive_power_a_offset.dev_attr.attr,
500 &iio_dev_attr_reactive_power_b_offset.dev_attr.attr,
501 &iio_dev_attr_reactive_power_c_offset.dev_attr.attr,
502 &iio_dev_attr_awatthr.dev_attr.attr,
503 &iio_dev_attr_bwatthr.dev_attr.attr,
504 &iio_dev_attr_cwatthr.dev_attr.attr,
505 &iio_dev_attr_afwatthr.dev_attr.attr,
506 &iio_dev_attr_bfwatthr.dev_attr.attr,
507 &iio_dev_attr_cfwatthr.dev_attr.attr,
508 &iio_dev_attr_avarhr.dev_attr.attr,
509 &iio_dev_attr_bvarhr.dev_attr.attr,
510 &iio_dev_attr_cvarhr.dev_attr.attr,
511 &iio_dev_attr_angle0.dev_attr.attr,
512 &iio_dev_attr_angle1.dev_attr.attr,
513 &iio_dev_attr_angle2.dev_attr.attr,
514 &iio_dev_attr_avahr.dev_attr.attr,
515 &iio_dev_attr_bvahr.dev_attr.attr,
516 &iio_dev_attr_cvahr.dev_attr.attr,
517 &iio_const_attr_sampling_frequency_available.dev_attr.attr,
518 &iio_dev_attr_reset.dev_attr.attr,
519 &iio_const_attr_name.dev_attr.attr,
520 &iio_dev_attr_vpeak.dev_attr.attr,
521 &iio_dev_attr_ipeak.dev_attr.attr,
522 &iio_dev_attr_aphcal.dev_attr.attr,
523 &iio_dev_attr_bphcal.dev_attr.attr,
524 &iio_dev_attr_cphcal.dev_attr.attr,
525 &iio_dev_attr_cf1den.dev_attr.attr,
526 &iio_dev_attr_cf2den.dev_attr.attr,
527 &iio_dev_attr_cf3den.dev_attr.attr,
528 &iio_dev_attr_airms.dev_attr.attr,
529 &iio_dev_attr_birms.dev_attr.attr,
530 &iio_dev_attr_cirms.dev_attr.attr,
531 &iio_dev_attr_nirms.dev_attr.attr,
532 &iio_dev_attr_avrms.dev_attr.attr,
533 &iio_dev_attr_bvrms.dev_attr.attr,
534 &iio_dev_attr_cvrms.dev_attr.attr,
535 &iio_dev_attr_airmsos.dev_attr.attr,
536 &iio_dev_attr_birmsos.dev_attr.attr,
537 &iio_dev_attr_cirmsos.dev_attr.attr,
538 &iio_dev_attr_avrmsos.dev_attr.attr,
539 &iio_dev_attr_bvrmsos.dev_attr.attr,
540 &iio_dev_attr_cvrmsos.dev_attr.attr,
541 &iio_dev_attr_volt_a.dev_attr.attr,
542 &iio_dev_attr_volt_b.dev_attr.attr,
543 &iio_dev_attr_volt_c.dev_attr.attr,
544 &iio_dev_attr_current_a.dev_attr.attr,
545 &iio_dev_attr_current_b.dev_attr.attr,
546 &iio_dev_attr_current_c.dev_attr.attr,
551 .attrs = ade7854_attributes,
554 static const struct iio_info ade7854_info = {
555 .attrs = &ade7854_attribute_group,
566 indio_dev->
dev.parent =
dev;
567 indio_dev->
info = &ade7854_info;
575 ret = ade7854_initial_setup(indio_dev);
577 goto error_unreg_dev;