Commit 3a491aeae86577e0f23cd094f3e16351b6061209
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
Merge tag 'v3.6-rc1-iio-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/…
…jic23/iio into staging-linus IIO fixes for v3.6-rc1 These mostly consist of fixes from Lars-Peter Clausen that were the first part of a large series reworking the drivers concerned. Turns out these drivers had quite a wealth of minor bugs. Also here are some build warning fixes for lm3533-als and adjd_s111 (both new drives in this cycle). Final elements are a a div factor overflow and a warning related fix in a couple of Analog Devices drivers. All in all nothing major, but a worthwhile bunch of short fixes.
Showing 8 changed files Side-by-side Diff
drivers/iio/frequency/adf4350.c
... | ... | @@ -129,7 +129,7 @@ |
129 | 129 | { |
130 | 130 | struct adf4350_platform_data *pdata = st->pdata; |
131 | 131 | u64 tmp; |
132 | - u32 div_gcd, prescaler; | |
132 | + u32 div_gcd, prescaler, chspc; | |
133 | 133 | u16 mdiv, r_cnt = 0; |
134 | 134 | u8 band_sel_div; |
135 | 135 | |
136 | 136 | |
137 | 137 | |
... | ... | @@ -158,15 +158,21 @@ |
158 | 158 | if (pdata->ref_div_factor) |
159 | 159 | r_cnt = pdata->ref_div_factor - 1; |
160 | 160 | |
161 | + chspc = st->chspc; | |
162 | + | |
161 | 163 | do { |
162 | - r_cnt = adf4350_tune_r_cnt(st, r_cnt); | |
164 | + do { | |
165 | + do { | |
166 | + r_cnt = adf4350_tune_r_cnt(st, r_cnt); | |
167 | + st->r1_mod = st->fpfd / chspc; | |
168 | + if (r_cnt > ADF4350_MAX_R_CNT) { | |
169 | + /* try higher spacing values */ | |
170 | + chspc++; | |
171 | + r_cnt = 0; | |
172 | + } | |
173 | + } while ((st->r1_mod > ADF4350_MAX_MODULUS) && r_cnt); | |
174 | + } while (r_cnt == 0); | |
163 | 175 | |
164 | - st->r1_mod = st->fpfd / st->chspc; | |
165 | - while (st->r1_mod > ADF4350_MAX_MODULUS) { | |
166 | - r_cnt = adf4350_tune_r_cnt(st, r_cnt); | |
167 | - st->r1_mod = st->fpfd / st->chspc; | |
168 | - } | |
169 | - | |
170 | 176 | tmp = freq * (u64)st->r1_mod + (st->fpfd > 1); |
171 | 177 | do_div(tmp, st->fpfd); /* Div round closest (n + d/2)/d */ |
172 | 178 | st->r0_fract = do_div(tmp, st->r1_mod); |
... | ... | @@ -194,7 +200,7 @@ |
194 | 200 | st->regs[ADF4350_REG0] = ADF4350_REG0_INT(st->r0_int) | |
195 | 201 | ADF4350_REG0_FRACT(st->r0_fract); |
196 | 202 | |
197 | - st->regs[ADF4350_REG1] = ADF4350_REG1_PHASE(0) | | |
203 | + st->regs[ADF4350_REG1] = ADF4350_REG1_PHASE(1) | | |
198 | 204 | ADF4350_REG1_MOD(st->r1_mod) | |
199 | 205 | prescaler; |
200 | 206 |
drivers/iio/light/adjd_s311.c
... | ... | @@ -271,9 +271,10 @@ |
271 | 271 | const unsigned long *scan_mask) |
272 | 272 | { |
273 | 273 | struct adjd_s311_data *data = iio_priv(indio_dev); |
274 | - data->buffer = krealloc(data->buffer, indio_dev->scan_bytes, | |
275 | - GFP_KERNEL); | |
276 | - if (!data->buffer) | |
274 | + | |
275 | + kfree(data->buffer); | |
276 | + data->buffer = kmalloc(indio_dev->scan_bytes, GFP_KERNEL); | |
277 | + if (data->buffer == NULL) | |
277 | 278 | return -ENOMEM; |
278 | 279 | |
279 | 280 | return 0; |
drivers/iio/light/lm3533-als.c
... | ... | @@ -404,7 +404,7 @@ |
404 | 404 | return ret; |
405 | 405 | } |
406 | 406 | |
407 | -static int show_thresh_either_en(struct device *dev, | |
407 | +static ssize_t show_thresh_either_en(struct device *dev, | |
408 | 408 | struct device_attribute *attr, |
409 | 409 | char *buf) |
410 | 410 | { |
... | ... | @@ -424,7 +424,7 @@ |
424 | 424 | return scnprintf(buf, PAGE_SIZE, "%u\n", enable); |
425 | 425 | } |
426 | 426 | |
427 | -static int store_thresh_either_en(struct device *dev, | |
427 | +static ssize_t store_thresh_either_en(struct device *dev, | |
428 | 428 | struct device_attribute *attr, |
429 | 429 | const char *buf, size_t len) |
430 | 430 | { |
drivers/staging/iio/adc/ad7192.c
... | ... | @@ -754,7 +754,7 @@ |
754 | 754 | else |
755 | 755 | st->mode &= ~AD7192_MODE_ACX; |
756 | 756 | |
757 | - ad7192_write_reg(st, AD7192_REG_GPOCON, 3, st->mode); | |
757 | + ad7192_write_reg(st, AD7192_REG_MODE, 3, st->mode); | |
758 | 758 | break; |
759 | 759 | default: |
760 | 760 | ret = -EINVAL; |
... | ... | @@ -798,6 +798,11 @@ |
798 | 798 | .attrs = ad7195_attributes, |
799 | 799 | }; |
800 | 800 | |
801 | +static unsigned int ad7192_get_temp_scale(bool unipolar) | |
802 | +{ | |
803 | + return unipolar ? 2815 * 2 : 2815; | |
804 | +} | |
805 | + | |
801 | 806 | static int ad7192_read_raw(struct iio_dev *indio_dev, |
802 | 807 | struct iio_chan_spec const *chan, |
803 | 808 | int *val, |
... | ... | @@ -824,19 +829,6 @@ |
824 | 829 | *val = (smpl >> chan->scan_type.shift) & |
825 | 830 | ((1 << (chan->scan_type.realbits)) - 1); |
826 | 831 | |
827 | - switch (chan->type) { | |
828 | - case IIO_VOLTAGE: | |
829 | - if (!unipolar) | |
830 | - *val -= (1 << (chan->scan_type.realbits - 1)); | |
831 | - break; | |
832 | - case IIO_TEMP: | |
833 | - *val -= 0x800000; | |
834 | - *val /= 2815; /* temp Kelvin */ | |
835 | - *val -= 273; /* temp Celsius */ | |
836 | - break; | |
837 | - default: | |
838 | - return -EINVAL; | |
839 | - } | |
840 | 832 | return IIO_VAL_INT; |
841 | 833 | |
842 | 834 | case IIO_CHAN_INFO_SCALE: |
843 | 835 | |
... | ... | @@ -848,11 +840,21 @@ |
848 | 840 | mutex_unlock(&indio_dev->mlock); |
849 | 841 | return IIO_VAL_INT_PLUS_NANO; |
850 | 842 | case IIO_TEMP: |
851 | - *val = 1000; | |
852 | - return IIO_VAL_INT; | |
843 | + *val = 0; | |
844 | + *val2 = 1000000000 / ad7192_get_temp_scale(unipolar); | |
845 | + return IIO_VAL_INT_PLUS_NANO; | |
853 | 846 | default: |
854 | 847 | return -EINVAL; |
855 | 848 | } |
849 | + case IIO_CHAN_INFO_OFFSET: | |
850 | + if (!unipolar) | |
851 | + *val = -(1 << (chan->scan_type.realbits - 1)); | |
852 | + else | |
853 | + *val = 0; | |
854 | + /* Kelvin to Celsius */ | |
855 | + if (chan->type == IIO_TEMP) | |
856 | + *val -= 273 * ad7192_get_temp_scale(unipolar); | |
857 | + return IIO_VAL_INT; | |
856 | 858 | } |
857 | 859 | |
858 | 860 | return -EINVAL; |
... | ... | @@ -890,7 +892,7 @@ |
890 | 892 | } |
891 | 893 | ret = 0; |
892 | 894 | } |
893 | - | |
895 | + break; | |
894 | 896 | default: |
895 | 897 | ret = -EINVAL; |
896 | 898 | } |
897 | 899 | |
898 | 900 | |
899 | 901 | |
... | ... | @@ -942,20 +944,22 @@ |
942 | 944 | .channel = _chan, \ |
943 | 945 | .channel2 = _chan2, \ |
944 | 946 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | \ |
945 | - IIO_CHAN_INFO_SCALE_SHARED_BIT, \ | |
947 | + IIO_CHAN_INFO_SCALE_SHARED_BIT | \ | |
948 | + IIO_CHAN_INFO_OFFSET_SHARED_BIT, \ | |
946 | 949 | .address = _address, \ |
947 | 950 | .scan_index = _si, \ |
948 | - .scan_type = IIO_ST('s', 24, 32, 0)} | |
951 | + .scan_type = IIO_ST('u', 24, 32, 0)} | |
949 | 952 | |
950 | 953 | #define AD7192_CHAN(_chan, _address, _si) \ |
951 | 954 | { .type = IIO_VOLTAGE, \ |
952 | 955 | .indexed = 1, \ |
953 | 956 | .channel = _chan, \ |
954 | 957 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | \ |
955 | - IIO_CHAN_INFO_SCALE_SHARED_BIT, \ | |
958 | + IIO_CHAN_INFO_SCALE_SHARED_BIT | \ | |
959 | + IIO_CHAN_INFO_OFFSET_SHARED_BIT, \ | |
956 | 960 | .address = _address, \ |
957 | 961 | .scan_index = _si, \ |
958 | - .scan_type = IIO_ST('s', 24, 32, 0)} | |
962 | + .scan_type = IIO_ST('u', 24, 32, 0)} | |
959 | 963 | |
960 | 964 | #define AD7192_CHAN_TEMP(_chan, _address, _si) \ |
961 | 965 | { .type = IIO_TEMP, \ |
... | ... | @@ -965,7 +969,7 @@ |
965 | 969 | IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \ |
966 | 970 | .address = _address, \ |
967 | 971 | .scan_index = _si, \ |
968 | - .scan_type = IIO_ST('s', 24, 32, 0)} | |
972 | + .scan_type = IIO_ST('u', 24, 32, 0)} | |
969 | 973 | |
970 | 974 | static struct iio_chan_spec ad7192_channels[] = { |
971 | 975 | AD7192_CHAN_DIFF(1, 2, NULL, AD7192_CH_AIN1P_AIN2M, 0), |
drivers/staging/iio/adc/ad7298_ring.c
drivers/staging/iio/adc/ad7780.c
... | ... | @@ -131,9 +131,10 @@ |
131 | 131 | .indexed = 1, |
132 | 132 | .channel = 0, |
133 | 133 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
134 | - IIO_CHAN_INFO_SCALE_SHARED_BIT, | |
134 | + IIO_CHAN_INFO_SCALE_SHARED_BIT | | |
135 | + IIO_CHAN_INFO_OFFSET_SHARED_BIT, | |
135 | 136 | .scan_type = { |
136 | - .sign = 's', | |
137 | + .sign = 'u', | |
137 | 138 | .realbits = 24, |
138 | 139 | .storagebits = 32, |
139 | 140 | .shift = 8, |
140 | 141 | |
... | ... | @@ -146,9 +147,10 @@ |
146 | 147 | .indexed = 1, |
147 | 148 | .channel = 0, |
148 | 149 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
149 | - IIO_CHAN_INFO_SCALE_SHARED_BIT, | |
150 | + IIO_CHAN_INFO_SCALE_SHARED_BIT | | |
151 | + IIO_CHAN_INFO_OFFSET_SHARED_BIT, | |
150 | 152 | .scan_type = { |
151 | - .sign = 's', | |
153 | + .sign = 'u', | |
152 | 154 | .realbits = 20, |
153 | 155 | .storagebits = 32, |
154 | 156 | .shift = 12, |
drivers/staging/iio/adc/ad7793.c
... | ... | @@ -563,8 +563,9 @@ |
563 | 563 | return len; |
564 | 564 | } |
565 | 565 | |
566 | -static IIO_DEVICE_ATTR_NAMED(in_m_in_scale_available, in-in_scale_available, | |
567 | - S_IRUGO, ad7793_show_scale_available, NULL, 0); | |
566 | +static IIO_DEVICE_ATTR_NAMED(in_m_in_scale_available, | |
567 | + in_voltage-voltage_scale_available, S_IRUGO, | |
568 | + ad7793_show_scale_available, NULL, 0); | |
568 | 569 | |
569 | 570 | static struct attribute *ad7793_attributes[] = { |
570 | 571 | &iio_dev_attr_sampling_frequency.dev_attr.attr, |
... | ... | @@ -604,9 +605,6 @@ |
604 | 605 | *val = (smpl >> chan->scan_type.shift) & |
605 | 606 | ((1 << (chan->scan_type.realbits)) - 1); |
606 | 607 | |
607 | - if (!unipolar) | |
608 | - *val -= (1 << (chan->scan_type.realbits - 1)); | |
609 | - | |
610 | 608 | return IIO_VAL_INT; |
611 | 609 | |
612 | 610 | case IIO_CHAN_INFO_SCALE: |
613 | 611 | |
614 | 612 | |
615 | 613 | |
... | ... | @@ -620,25 +618,38 @@ |
620 | 618 | return IIO_VAL_INT_PLUS_NANO; |
621 | 619 | } else { |
622 | 620 | /* 1170mV / 2^23 * 6 */ |
623 | - scale_uv = (1170ULL * 100000000ULL * 6ULL) | |
624 | - >> (chan->scan_type.realbits - | |
625 | - (unipolar ? 0 : 1)); | |
621 | + scale_uv = (1170ULL * 100000000ULL * 6ULL); | |
626 | 622 | } |
627 | 623 | break; |
628 | 624 | case IIO_TEMP: |
629 | - /* Always uses unity gain and internal ref */ | |
630 | - scale_uv = (2500ULL * 100000000ULL) | |
631 | - >> (chan->scan_type.realbits - | |
632 | - (unipolar ? 0 : 1)); | |
625 | + /* 1170mV / 0.81 mV/C / 2^23 */ | |
626 | + scale_uv = 1444444444444ULL; | |
633 | 627 | break; |
634 | 628 | default: |
635 | 629 | return -EINVAL; |
636 | 630 | } |
637 | 631 | |
638 | - *val2 = do_div(scale_uv, 100000000) * 10; | |
639 | - *val = scale_uv; | |
640 | - | |
632 | + scale_uv >>= (chan->scan_type.realbits - (unipolar ? 0 : 1)); | |
633 | + *val = 0; | |
634 | + *val2 = scale_uv; | |
641 | 635 | return IIO_VAL_INT_PLUS_NANO; |
636 | + case IIO_CHAN_INFO_OFFSET: | |
637 | + if (!unipolar) | |
638 | + *val = -(1 << (chan->scan_type.realbits - 1)); | |
639 | + else | |
640 | + *val = 0; | |
641 | + | |
642 | + /* Kelvin to Celsius */ | |
643 | + if (chan->type == IIO_TEMP) { | |
644 | + unsigned long long offset; | |
645 | + unsigned int shift; | |
646 | + | |
647 | + shift = chan->scan_type.realbits - (unipolar ? 0 : 1); | |
648 | + offset = 273ULL << shift; | |
649 | + do_div(offset, 1444); | |
650 | + *val -= offset; | |
651 | + } | |
652 | + return IIO_VAL_INT; | |
642 | 653 | } |
643 | 654 | return -EINVAL; |
644 | 655 | } |
... | ... | @@ -676,7 +687,7 @@ |
676 | 687 | } |
677 | 688 | ret = 0; |
678 | 689 | } |
679 | - | |
690 | + break; | |
680 | 691 | default: |
681 | 692 | ret = -EINVAL; |
682 | 693 | } |
683 | 694 | |
... | ... | @@ -720,9 +731,10 @@ |
720 | 731 | .channel2 = 0, |
721 | 732 | .address = AD7793_CH_AIN1P_AIN1M, |
722 | 733 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
723 | - IIO_CHAN_INFO_SCALE_SHARED_BIT, | |
734 | + IIO_CHAN_INFO_SCALE_SHARED_BIT | | |
735 | + IIO_CHAN_INFO_OFFSET_SHARED_BIT, | |
724 | 736 | .scan_index = 0, |
725 | - .scan_type = IIO_ST('s', 24, 32, 0) | |
737 | + .scan_type = IIO_ST('u', 24, 32, 0) | |
726 | 738 | }, |
727 | 739 | .channel[1] = { |
728 | 740 | .type = IIO_VOLTAGE, |
729 | 741 | |
... | ... | @@ -732,9 +744,10 @@ |
732 | 744 | .channel2 = 1, |
733 | 745 | .address = AD7793_CH_AIN2P_AIN2M, |
734 | 746 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
735 | - IIO_CHAN_INFO_SCALE_SHARED_BIT, | |
747 | + IIO_CHAN_INFO_SCALE_SHARED_BIT | | |
748 | + IIO_CHAN_INFO_OFFSET_SHARED_BIT, | |
736 | 749 | .scan_index = 1, |
737 | - .scan_type = IIO_ST('s', 24, 32, 0) | |
750 | + .scan_type = IIO_ST('u', 24, 32, 0) | |
738 | 751 | }, |
739 | 752 | .channel[2] = { |
740 | 753 | .type = IIO_VOLTAGE, |
741 | 754 | |
... | ... | @@ -744,9 +757,10 @@ |
744 | 757 | .channel2 = 2, |
745 | 758 | .address = AD7793_CH_AIN3P_AIN3M, |
746 | 759 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
747 | - IIO_CHAN_INFO_SCALE_SHARED_BIT, | |
760 | + IIO_CHAN_INFO_SCALE_SHARED_BIT | | |
761 | + IIO_CHAN_INFO_OFFSET_SHARED_BIT, | |
748 | 762 | .scan_index = 2, |
749 | - .scan_type = IIO_ST('s', 24, 32, 0) | |
763 | + .scan_type = IIO_ST('u', 24, 32, 0) | |
750 | 764 | }, |
751 | 765 | .channel[3] = { |
752 | 766 | .type = IIO_VOLTAGE, |
753 | 767 | |
... | ... | @@ -757,9 +771,10 @@ |
757 | 771 | .channel2 = 2, |
758 | 772 | .address = AD7793_CH_AIN1M_AIN1M, |
759 | 773 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
760 | - IIO_CHAN_INFO_SCALE_SHARED_BIT, | |
774 | + IIO_CHAN_INFO_SCALE_SHARED_BIT | | |
775 | + IIO_CHAN_INFO_OFFSET_SHARED_BIT, | |
761 | 776 | .scan_index = 3, |
762 | - .scan_type = IIO_ST('s', 24, 32, 0) | |
777 | + .scan_type = IIO_ST('u', 24, 32, 0) | |
763 | 778 | }, |
764 | 779 | .channel[4] = { |
765 | 780 | .type = IIO_TEMP, |
... | ... | @@ -769,7 +784,7 @@ |
769 | 784 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
770 | 785 | IIO_CHAN_INFO_SCALE_SEPARATE_BIT, |
771 | 786 | .scan_index = 4, |
772 | - .scan_type = IIO_ST('s', 24, 32, 0), | |
787 | + .scan_type = IIO_ST('u', 24, 32, 0), | |
773 | 788 | }, |
774 | 789 | .channel[5] = { |
775 | 790 | .type = IIO_VOLTAGE, |
776 | 791 | |
... | ... | @@ -778,9 +793,10 @@ |
778 | 793 | .channel = 4, |
779 | 794 | .address = AD7793_CH_AVDD_MONITOR, |
780 | 795 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
781 | - IIO_CHAN_INFO_SCALE_SEPARATE_BIT, | |
796 | + IIO_CHAN_INFO_SCALE_SEPARATE_BIT | | |
797 | + IIO_CHAN_INFO_OFFSET_SHARED_BIT, | |
782 | 798 | .scan_index = 5, |
783 | - .scan_type = IIO_ST('s', 24, 32, 0), | |
799 | + .scan_type = IIO_ST('u', 24, 32, 0), | |
784 | 800 | }, |
785 | 801 | .channel[6] = IIO_CHAN_SOFT_TIMESTAMP(6), |
786 | 802 | }, |
787 | 803 | |
... | ... | @@ -793,9 +809,10 @@ |
793 | 809 | .channel2 = 0, |
794 | 810 | .address = AD7793_CH_AIN1P_AIN1M, |
795 | 811 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
796 | - IIO_CHAN_INFO_SCALE_SHARED_BIT, | |
812 | + IIO_CHAN_INFO_SCALE_SHARED_BIT | | |
813 | + IIO_CHAN_INFO_OFFSET_SHARED_BIT, | |
797 | 814 | .scan_index = 0, |
798 | - .scan_type = IIO_ST('s', 16, 32, 0) | |
815 | + .scan_type = IIO_ST('u', 16, 32, 0) | |
799 | 816 | }, |
800 | 817 | .channel[1] = { |
801 | 818 | .type = IIO_VOLTAGE, |
802 | 819 | |
... | ... | @@ -805,9 +822,10 @@ |
805 | 822 | .channel2 = 1, |
806 | 823 | .address = AD7793_CH_AIN2P_AIN2M, |
807 | 824 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
808 | - IIO_CHAN_INFO_SCALE_SHARED_BIT, | |
825 | + IIO_CHAN_INFO_SCALE_SHARED_BIT | | |
826 | + IIO_CHAN_INFO_OFFSET_SHARED_BIT, | |
809 | 827 | .scan_index = 1, |
810 | - .scan_type = IIO_ST('s', 16, 32, 0) | |
828 | + .scan_type = IIO_ST('u', 16, 32, 0) | |
811 | 829 | }, |
812 | 830 | .channel[2] = { |
813 | 831 | .type = IIO_VOLTAGE, |
814 | 832 | |
... | ... | @@ -817,9 +835,10 @@ |
817 | 835 | .channel2 = 2, |
818 | 836 | .address = AD7793_CH_AIN3P_AIN3M, |
819 | 837 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
820 | - IIO_CHAN_INFO_SCALE_SHARED_BIT, | |
838 | + IIO_CHAN_INFO_SCALE_SHARED_BIT | | |
839 | + IIO_CHAN_INFO_OFFSET_SHARED_BIT, | |
821 | 840 | .scan_index = 2, |
822 | - .scan_type = IIO_ST('s', 16, 32, 0) | |
841 | + .scan_type = IIO_ST('u', 16, 32, 0) | |
823 | 842 | }, |
824 | 843 | .channel[3] = { |
825 | 844 | .type = IIO_VOLTAGE, |
826 | 845 | |
... | ... | @@ -830,9 +849,10 @@ |
830 | 849 | .channel2 = 2, |
831 | 850 | .address = AD7793_CH_AIN1M_AIN1M, |
832 | 851 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
833 | - IIO_CHAN_INFO_SCALE_SHARED_BIT, | |
852 | + IIO_CHAN_INFO_SCALE_SHARED_BIT | | |
853 | + IIO_CHAN_INFO_OFFSET_SHARED_BIT, | |
834 | 854 | .scan_index = 3, |
835 | - .scan_type = IIO_ST('s', 16, 32, 0) | |
855 | + .scan_type = IIO_ST('u', 16, 32, 0) | |
836 | 856 | }, |
837 | 857 | .channel[4] = { |
838 | 858 | .type = IIO_TEMP, |
... | ... | @@ -842,7 +862,7 @@ |
842 | 862 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
843 | 863 | IIO_CHAN_INFO_SCALE_SEPARATE_BIT, |
844 | 864 | .scan_index = 4, |
845 | - .scan_type = IIO_ST('s', 16, 32, 0), | |
865 | + .scan_type = IIO_ST('u', 16, 32, 0), | |
846 | 866 | }, |
847 | 867 | .channel[5] = { |
848 | 868 | .type = IIO_VOLTAGE, |
849 | 869 | |
... | ... | @@ -851,9 +871,10 @@ |
851 | 871 | .channel = 4, |
852 | 872 | .address = AD7793_CH_AVDD_MONITOR, |
853 | 873 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
854 | - IIO_CHAN_INFO_SCALE_SEPARATE_BIT, | |
874 | + IIO_CHAN_INFO_SCALE_SEPARATE_BIT | | |
875 | + IIO_CHAN_INFO_OFFSET_SHARED_BIT, | |
855 | 876 | .scan_index = 5, |
856 | - .scan_type = IIO_ST('s', 16, 32, 0), | |
877 | + .scan_type = IIO_ST('u', 16, 32, 0), | |
857 | 878 | }, |
858 | 879 | .channel[6] = IIO_CHAN_SOFT_TIMESTAMP(6), |
859 | 880 | }, |
... | ... | @@ -901,7 +922,7 @@ |
901 | 922 | else if (voltage_uv) |
902 | 923 | st->int_vref_mv = voltage_uv / 1000; |
903 | 924 | else |
904 | - st->int_vref_mv = 2500; /* Build-in ref */ | |
925 | + st->int_vref_mv = 1170; /* Build-in ref */ | |
905 | 926 | |
906 | 927 | spi_set_drvdata(spi, indio_dev); |
907 | 928 | st->spi = spi; |
include/linux/iio/frequency/adf4350.h