diff options
| -rw-r--r-- | drivers/iio/frequency/adf4350.c | 24 | ||||
| -rw-r--r-- | drivers/iio/light/adjd_s311.c | 7 | ||||
| -rw-r--r-- | drivers/iio/light/lm3533-als.c | 4 | ||||
| -rw-r--r-- | drivers/staging/iio/adc/ad7192.c | 48 | ||||
| -rw-r--r-- | drivers/staging/iio/adc/ad7298_ring.c | 2 | ||||
| -rw-r--r-- | drivers/staging/iio/adc/ad7780.c | 10 | ||||
| -rw-r--r-- | drivers/staging/iio/adc/ad7793.c | 99 | ||||
| -rw-r--r-- | include/linux/iio/frequency/adf4350.h | 2 |
8 files changed, 116 insertions, 80 deletions
diff --git a/drivers/iio/frequency/adf4350.c b/drivers/iio/frequency/adf4350.c index 59fbb3ae40e7..e35bb8f6fe75 100644 --- a/drivers/iio/frequency/adf4350.c +++ b/drivers/iio/frequency/adf4350.c | |||
| @@ -129,7 +129,7 @@ static int adf4350_set_freq(struct adf4350_state *st, unsigned long long freq) | |||
| 129 | { | 129 | { |
| 130 | struct adf4350_platform_data *pdata = st->pdata; | 130 | struct adf4350_platform_data *pdata = st->pdata; |
| 131 | u64 tmp; | 131 | u64 tmp; |
| 132 | u32 div_gcd, prescaler; | 132 | u32 div_gcd, prescaler, chspc; |
| 133 | u16 mdiv, r_cnt = 0; | 133 | u16 mdiv, r_cnt = 0; |
| 134 | u8 band_sel_div; | 134 | u8 band_sel_div; |
| 135 | 135 | ||
| @@ -158,14 +158,20 @@ static int adf4350_set_freq(struct adf4350_state *st, unsigned long long freq) | |||
| 158 | if (pdata->ref_div_factor) | 158 | if (pdata->ref_div_factor) |
| 159 | r_cnt = pdata->ref_div_factor - 1; | 159 | r_cnt = pdata->ref_div_factor - 1; |
| 160 | 160 | ||
| 161 | do { | 161 | chspc = st->chspc; |
| 162 | r_cnt = adf4350_tune_r_cnt(st, r_cnt); | ||
| 163 | 162 | ||
| 164 | st->r1_mod = st->fpfd / st->chspc; | 163 | do { |
| 165 | while (st->r1_mod > ADF4350_MAX_MODULUS) { | 164 | do { |
| 166 | r_cnt = adf4350_tune_r_cnt(st, r_cnt); | 165 | do { |
| 167 | st->r1_mod = st->fpfd / st->chspc; | 166 | r_cnt = adf4350_tune_r_cnt(st, r_cnt); |
| 168 | } | 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); | ||
| 169 | 175 | ||
| 170 | tmp = freq * (u64)st->r1_mod + (st->fpfd > 1); | 176 | tmp = freq * (u64)st->r1_mod + (st->fpfd > 1); |
| 171 | do_div(tmp, st->fpfd); /* Div round closest (n + d/2)/d */ | 177 | do_div(tmp, st->fpfd); /* Div round closest (n + d/2)/d */ |
| @@ -194,7 +200,7 @@ static int adf4350_set_freq(struct adf4350_state *st, unsigned long long freq) | |||
| 194 | st->regs[ADF4350_REG0] = ADF4350_REG0_INT(st->r0_int) | | 200 | st->regs[ADF4350_REG0] = ADF4350_REG0_INT(st->r0_int) | |
| 195 | ADF4350_REG0_FRACT(st->r0_fract); | 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 | ADF4350_REG1_MOD(st->r1_mod) | | 204 | ADF4350_REG1_MOD(st->r1_mod) | |
| 199 | prescaler; | 205 | prescaler; |
| 200 | 206 | ||
diff --git a/drivers/iio/light/adjd_s311.c b/drivers/iio/light/adjd_s311.c index 1cbb449b319a..9a99f43094f0 100644 --- a/drivers/iio/light/adjd_s311.c +++ b/drivers/iio/light/adjd_s311.c | |||
| @@ -271,9 +271,10 @@ static int adjd_s311_update_scan_mode(struct iio_dev *indio_dev, | |||
| 271 | const unsigned long *scan_mask) | 271 | const unsigned long *scan_mask) |
| 272 | { | 272 | { |
| 273 | struct adjd_s311_data *data = iio_priv(indio_dev); | 273 | struct adjd_s311_data *data = iio_priv(indio_dev); |
| 274 | data->buffer = krealloc(data->buffer, indio_dev->scan_bytes, | 274 | |
| 275 | GFP_KERNEL); | 275 | kfree(data->buffer); |
| 276 | if (!data->buffer) | 276 | data->buffer = kmalloc(indio_dev->scan_bytes, GFP_KERNEL); |
| 277 | if (data->buffer == NULL) | ||
| 277 | return -ENOMEM; | 278 | return -ENOMEM; |
| 278 | 279 | ||
| 279 | return 0; | 280 | return 0; |
diff --git a/drivers/iio/light/lm3533-als.c b/drivers/iio/light/lm3533-als.c index c3e7bac13123..e45712a921ce 100644 --- a/drivers/iio/light/lm3533-als.c +++ b/drivers/iio/light/lm3533-als.c | |||
| @@ -404,7 +404,7 @@ out: | |||
| 404 | return ret; | 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 | struct device_attribute *attr, | 408 | struct device_attribute *attr, |
| 409 | char *buf) | 409 | char *buf) |
| 410 | { | 410 | { |
| @@ -424,7 +424,7 @@ static int show_thresh_either_en(struct device *dev, | |||
| 424 | return scnprintf(buf, PAGE_SIZE, "%u\n", enable); | 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 | struct device_attribute *attr, | 428 | struct device_attribute *attr, |
| 429 | const char *buf, size_t len) | 429 | const char *buf, size_t len) |
| 430 | { | 430 | { |
diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c index 22c3923d55eb..095837285f4f 100644 --- a/drivers/staging/iio/adc/ad7192.c +++ b/drivers/staging/iio/adc/ad7192.c | |||
| @@ -754,7 +754,7 @@ static ssize_t ad7192_set(struct device *dev, | |||
| 754 | else | 754 | else |
| 755 | st->mode &= ~AD7192_MODE_ACX; | 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 | break; | 758 | break; |
| 759 | default: | 759 | default: |
| 760 | ret = -EINVAL; | 760 | ret = -EINVAL; |
| @@ -798,6 +798,11 @@ static const struct attribute_group ad7195_attribute_group = { | |||
| 798 | .attrs = ad7195_attributes, | 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 | static int ad7192_read_raw(struct iio_dev *indio_dev, | 806 | static int ad7192_read_raw(struct iio_dev *indio_dev, |
| 802 | struct iio_chan_spec const *chan, | 807 | struct iio_chan_spec const *chan, |
| 803 | int *val, | 808 | int *val, |
| @@ -824,19 +829,6 @@ static int ad7192_read_raw(struct iio_dev *indio_dev, | |||
| 824 | *val = (smpl >> chan->scan_type.shift) & | 829 | *val = (smpl >> chan->scan_type.shift) & |
| 825 | ((1 << (chan->scan_type.realbits)) - 1); | 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 | return IIO_VAL_INT; | 832 | return IIO_VAL_INT; |
| 841 | 833 | ||
| 842 | case IIO_CHAN_INFO_SCALE: | 834 | case IIO_CHAN_INFO_SCALE: |
| @@ -848,11 +840,21 @@ static int ad7192_read_raw(struct iio_dev *indio_dev, | |||
| 848 | mutex_unlock(&indio_dev->mlock); | 840 | mutex_unlock(&indio_dev->mlock); |
| 849 | return IIO_VAL_INT_PLUS_NANO; | 841 | return IIO_VAL_INT_PLUS_NANO; |
| 850 | case IIO_TEMP: | 842 | case IIO_TEMP: |
| 851 | *val = 1000; | 843 | *val = 0; |
| 852 | return IIO_VAL_INT; | 844 | *val2 = 1000000000 / ad7192_get_temp_scale(unipolar); |
| 845 | return IIO_VAL_INT_PLUS_NANO; | ||
| 853 | default: | 846 | default: |
| 854 | return -EINVAL; | 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 | return -EINVAL; | 860 | return -EINVAL; |
| @@ -890,7 +892,7 @@ static int ad7192_write_raw(struct iio_dev *indio_dev, | |||
| 890 | } | 892 | } |
| 891 | ret = 0; | 893 | ret = 0; |
| 892 | } | 894 | } |
| 893 | 895 | break; | |
| 894 | default: | 896 | default: |
| 895 | ret = -EINVAL; | 897 | ret = -EINVAL; |
| 896 | } | 898 | } |
| @@ -942,20 +944,22 @@ static const struct iio_info ad7195_info = { | |||
| 942 | .channel = _chan, \ | 944 | .channel = _chan, \ |
| 943 | .channel2 = _chan2, \ | 945 | .channel2 = _chan2, \ |
| 944 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | \ | 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 | .address = _address, \ | 949 | .address = _address, \ |
| 947 | .scan_index = _si, \ | 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 | #define AD7192_CHAN(_chan, _address, _si) \ | 953 | #define AD7192_CHAN(_chan, _address, _si) \ |
| 951 | { .type = IIO_VOLTAGE, \ | 954 | { .type = IIO_VOLTAGE, \ |
| 952 | .indexed = 1, \ | 955 | .indexed = 1, \ |
| 953 | .channel = _chan, \ | 956 | .channel = _chan, \ |
| 954 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | \ | 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 | .address = _address, \ | 960 | .address = _address, \ |
| 957 | .scan_index = _si, \ | 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 | #define AD7192_CHAN_TEMP(_chan, _address, _si) \ | 964 | #define AD7192_CHAN_TEMP(_chan, _address, _si) \ |
| 961 | { .type = IIO_TEMP, \ | 965 | { .type = IIO_TEMP, \ |
| @@ -965,7 +969,7 @@ static const struct iio_info ad7195_info = { | |||
| 965 | IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \ | 969 | IIO_CHAN_INFO_SCALE_SEPARATE_BIT, \ |
| 966 | .address = _address, \ | 970 | .address = _address, \ |
| 967 | .scan_index = _si, \ | 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 | static struct iio_chan_spec ad7192_channels[] = { | 974 | static struct iio_chan_spec ad7192_channels[] = { |
| 971 | AD7192_CHAN_DIFF(1, 2, NULL, AD7192_CH_AIN1P_AIN2M, 0), | 975 | AD7192_CHAN_DIFF(1, 2, NULL, AD7192_CH_AIN1P_AIN2M, 0), |
diff --git a/drivers/staging/iio/adc/ad7298_ring.c b/drivers/staging/iio/adc/ad7298_ring.c index fd1d855ff57a..506016f01593 100644 --- a/drivers/staging/iio/adc/ad7298_ring.c +++ b/drivers/staging/iio/adc/ad7298_ring.c | |||
| @@ -76,7 +76,7 @@ static irqreturn_t ad7298_trigger_handler(int irq, void *p) | |||
| 76 | struct iio_dev *indio_dev = pf->indio_dev; | 76 | struct iio_dev *indio_dev = pf->indio_dev; |
| 77 | struct ad7298_state *st = iio_priv(indio_dev); | 77 | struct ad7298_state *st = iio_priv(indio_dev); |
| 78 | struct iio_buffer *ring = indio_dev->buffer; | 78 | struct iio_buffer *ring = indio_dev->buffer; |
| 79 | s64 time_ns; | 79 | s64 time_ns = 0; |
| 80 | __u16 buf[16]; | 80 | __u16 buf[16]; |
| 81 | int b_sent, i; | 81 | int b_sent, i; |
| 82 | 82 | ||
diff --git a/drivers/staging/iio/adc/ad7780.c b/drivers/staging/iio/adc/ad7780.c index 1ece2ac8de56..19ee49c95de4 100644 --- a/drivers/staging/iio/adc/ad7780.c +++ b/drivers/staging/iio/adc/ad7780.c | |||
| @@ -131,9 +131,10 @@ static const struct ad7780_chip_info ad7780_chip_info_tbl[] = { | |||
| 131 | .indexed = 1, | 131 | .indexed = 1, |
| 132 | .channel = 0, | 132 | .channel = 0, |
| 133 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | | 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 | .scan_type = { | 136 | .scan_type = { |
| 136 | .sign = 's', | 137 | .sign = 'u', |
| 137 | .realbits = 24, | 138 | .realbits = 24, |
| 138 | .storagebits = 32, | 139 | .storagebits = 32, |
| 139 | .shift = 8, | 140 | .shift = 8, |
| @@ -146,9 +147,10 @@ static const struct ad7780_chip_info ad7780_chip_info_tbl[] = { | |||
| 146 | .indexed = 1, | 147 | .indexed = 1, |
| 147 | .channel = 0, | 148 | .channel = 0, |
| 148 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | | 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 | .scan_type = { | 152 | .scan_type = { |
| 151 | .sign = 's', | 153 | .sign = 'u', |
| 152 | .realbits = 20, | 154 | .realbits = 20, |
| 153 | .storagebits = 32, | 155 | .storagebits = 32, |
| 154 | .shift = 12, | 156 | .shift = 12, |
diff --git a/drivers/staging/iio/adc/ad7793.c b/drivers/staging/iio/adc/ad7793.c index 76fdd7145fc5..112e2b7b5bc4 100644 --- a/drivers/staging/iio/adc/ad7793.c +++ b/drivers/staging/iio/adc/ad7793.c | |||
| @@ -563,8 +563,9 @@ static ssize_t ad7793_show_scale_available(struct device *dev, | |||
| 563 | return len; | 563 | return len; |
| 564 | } | 564 | } |
| 565 | 565 | ||
| 566 | static IIO_DEVICE_ATTR_NAMED(in_m_in_scale_available, in-in_scale_available, | 566 | static IIO_DEVICE_ATTR_NAMED(in_m_in_scale_available, |
| 567 | S_IRUGO, ad7793_show_scale_available, NULL, 0); | 567 | in_voltage-voltage_scale_available, S_IRUGO, |
| 568 | ad7793_show_scale_available, NULL, 0); | ||
| 568 | 569 | ||
| 569 | static struct attribute *ad7793_attributes[] = { | 570 | static struct attribute *ad7793_attributes[] = { |
| 570 | &iio_dev_attr_sampling_frequency.dev_attr.attr, | 571 | &iio_dev_attr_sampling_frequency.dev_attr.attr, |
| @@ -604,9 +605,6 @@ static int ad7793_read_raw(struct iio_dev *indio_dev, | |||
| 604 | *val = (smpl >> chan->scan_type.shift) & | 605 | *val = (smpl >> chan->scan_type.shift) & |
| 605 | ((1 << (chan->scan_type.realbits)) - 1); | 606 | ((1 << (chan->scan_type.realbits)) - 1); |
| 606 | 607 | ||
| 607 | if (!unipolar) | ||
| 608 | *val -= (1 << (chan->scan_type.realbits - 1)); | ||
| 609 | |||
| 610 | return IIO_VAL_INT; | 608 | return IIO_VAL_INT; |
| 611 | 609 | ||
| 612 | case IIO_CHAN_INFO_SCALE: | 610 | case IIO_CHAN_INFO_SCALE: |
| @@ -620,25 +618,38 @@ static int ad7793_read_raw(struct iio_dev *indio_dev, | |||
| 620 | return IIO_VAL_INT_PLUS_NANO; | 618 | return IIO_VAL_INT_PLUS_NANO; |
| 621 | } else { | 619 | } else { |
| 622 | /* 1170mV / 2^23 * 6 */ | 620 | /* 1170mV / 2^23 * 6 */ |
| 623 | scale_uv = (1170ULL * 100000000ULL * 6ULL) | 621 | scale_uv = (1170ULL * 100000000ULL * 6ULL); |
| 624 | >> (chan->scan_type.realbits - | ||
| 625 | (unipolar ? 0 : 1)); | ||
| 626 | } | 622 | } |
| 627 | break; | 623 | break; |
| 628 | case IIO_TEMP: | 624 | case IIO_TEMP: |
| 629 | /* Always uses unity gain and internal ref */ | 625 | /* 1170mV / 0.81 mV/C / 2^23 */ |
| 630 | scale_uv = (2500ULL * 100000000ULL) | 626 | scale_uv = 1444444444444ULL; |
| 631 | >> (chan->scan_type.realbits - | ||
| 632 | (unipolar ? 0 : 1)); | ||
| 633 | break; | 627 | break; |
| 634 | default: | 628 | default: |
| 635 | return -EINVAL; | 629 | return -EINVAL; |
| 636 | } | 630 | } |
| 637 | 631 | ||
| 638 | *val2 = do_div(scale_uv, 100000000) * 10; | 632 | scale_uv >>= (chan->scan_type.realbits - (unipolar ? 0 : 1)); |
| 639 | *val = scale_uv; | 633 | *val = 0; |
| 640 | 634 | *val2 = scale_uv; | |
| 641 | return IIO_VAL_INT_PLUS_NANO; | 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 | return -EINVAL; | 654 | return -EINVAL; |
| 644 | } | 655 | } |
| @@ -676,7 +687,7 @@ static int ad7793_write_raw(struct iio_dev *indio_dev, | |||
| 676 | } | 687 | } |
| 677 | ret = 0; | 688 | ret = 0; |
| 678 | } | 689 | } |
| 679 | 690 | break; | |
| 680 | default: | 691 | default: |
| 681 | ret = -EINVAL; | 692 | ret = -EINVAL; |
| 682 | } | 693 | } |
| @@ -720,9 +731,10 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = { | |||
| 720 | .channel2 = 0, | 731 | .channel2 = 0, |
| 721 | .address = AD7793_CH_AIN1P_AIN1M, | 732 | .address = AD7793_CH_AIN1P_AIN1M, |
| 722 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | | 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 | .scan_index = 0, | 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 | .channel[1] = { | 739 | .channel[1] = { |
| 728 | .type = IIO_VOLTAGE, | 740 | .type = IIO_VOLTAGE, |
| @@ -732,9 +744,10 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = { | |||
| 732 | .channel2 = 1, | 744 | .channel2 = 1, |
| 733 | .address = AD7793_CH_AIN2P_AIN2M, | 745 | .address = AD7793_CH_AIN2P_AIN2M, |
| 734 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | | 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 | .scan_index = 1, | 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 | .channel[2] = { | 752 | .channel[2] = { |
| 740 | .type = IIO_VOLTAGE, | 753 | .type = IIO_VOLTAGE, |
| @@ -744,9 +757,10 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = { | |||
| 744 | .channel2 = 2, | 757 | .channel2 = 2, |
| 745 | .address = AD7793_CH_AIN3P_AIN3M, | 758 | .address = AD7793_CH_AIN3P_AIN3M, |
| 746 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | | 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 | .scan_index = 2, | 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 | .channel[3] = { | 765 | .channel[3] = { |
| 752 | .type = IIO_VOLTAGE, | 766 | .type = IIO_VOLTAGE, |
| @@ -757,9 +771,10 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = { | |||
| 757 | .channel2 = 2, | 771 | .channel2 = 2, |
| 758 | .address = AD7793_CH_AIN1M_AIN1M, | 772 | .address = AD7793_CH_AIN1M_AIN1M, |
| 759 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | | 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 | .scan_index = 3, | 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 | .channel[4] = { | 779 | .channel[4] = { |
| 765 | .type = IIO_TEMP, | 780 | .type = IIO_TEMP, |
| @@ -769,7 +784,7 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = { | |||
| 769 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | | 784 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
| 770 | IIO_CHAN_INFO_SCALE_SEPARATE_BIT, | 785 | IIO_CHAN_INFO_SCALE_SEPARATE_BIT, |
| 771 | .scan_index = 4, | 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 | .channel[5] = { | 789 | .channel[5] = { |
| 775 | .type = IIO_VOLTAGE, | 790 | .type = IIO_VOLTAGE, |
| @@ -778,9 +793,10 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = { | |||
| 778 | .channel = 4, | 793 | .channel = 4, |
| 779 | .address = AD7793_CH_AVDD_MONITOR, | 794 | .address = AD7793_CH_AVDD_MONITOR, |
| 780 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | | 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 | .scan_index = 5, | 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 | .channel[6] = IIO_CHAN_SOFT_TIMESTAMP(6), | 801 | .channel[6] = IIO_CHAN_SOFT_TIMESTAMP(6), |
| 786 | }, | 802 | }, |
| @@ -793,9 +809,10 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = { | |||
| 793 | .channel2 = 0, | 809 | .channel2 = 0, |
| 794 | .address = AD7793_CH_AIN1P_AIN1M, | 810 | .address = AD7793_CH_AIN1P_AIN1M, |
| 795 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | | 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 | .scan_index = 0, | 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 | .channel[1] = { | 817 | .channel[1] = { |
| 801 | .type = IIO_VOLTAGE, | 818 | .type = IIO_VOLTAGE, |
| @@ -805,9 +822,10 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = { | |||
| 805 | .channel2 = 1, | 822 | .channel2 = 1, |
| 806 | .address = AD7793_CH_AIN2P_AIN2M, | 823 | .address = AD7793_CH_AIN2P_AIN2M, |
| 807 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | | 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 | .scan_index = 1, | 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 | .channel[2] = { | 830 | .channel[2] = { |
| 813 | .type = IIO_VOLTAGE, | 831 | .type = IIO_VOLTAGE, |
| @@ -817,9 +835,10 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = { | |||
| 817 | .channel2 = 2, | 835 | .channel2 = 2, |
| 818 | .address = AD7793_CH_AIN3P_AIN3M, | 836 | .address = AD7793_CH_AIN3P_AIN3M, |
| 819 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | | 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 | .scan_index = 2, | 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 | .channel[3] = { | 843 | .channel[3] = { |
| 825 | .type = IIO_VOLTAGE, | 844 | .type = IIO_VOLTAGE, |
| @@ -830,9 +849,10 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = { | |||
| 830 | .channel2 = 2, | 849 | .channel2 = 2, |
| 831 | .address = AD7793_CH_AIN1M_AIN1M, | 850 | .address = AD7793_CH_AIN1M_AIN1M, |
| 832 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | | 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 | .scan_index = 3, | 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 | .channel[4] = { | 857 | .channel[4] = { |
| 838 | .type = IIO_TEMP, | 858 | .type = IIO_TEMP, |
| @@ -842,7 +862,7 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = { | |||
| 842 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | | 862 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | |
| 843 | IIO_CHAN_INFO_SCALE_SEPARATE_BIT, | 863 | IIO_CHAN_INFO_SCALE_SEPARATE_BIT, |
| 844 | .scan_index = 4, | 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 | .channel[5] = { | 867 | .channel[5] = { |
| 848 | .type = IIO_VOLTAGE, | 868 | .type = IIO_VOLTAGE, |
| @@ -851,9 +871,10 @@ static const struct ad7793_chip_info ad7793_chip_info_tbl[] = { | |||
| 851 | .channel = 4, | 871 | .channel = 4, |
| 852 | .address = AD7793_CH_AVDD_MONITOR, | 872 | .address = AD7793_CH_AVDD_MONITOR, |
| 853 | .info_mask = IIO_CHAN_INFO_RAW_SEPARATE_BIT | | 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 | .scan_index = 5, | 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 | .channel[6] = IIO_CHAN_SOFT_TIMESTAMP(6), | 879 | .channel[6] = IIO_CHAN_SOFT_TIMESTAMP(6), |
| 859 | }, | 880 | }, |
| @@ -901,7 +922,7 @@ static int __devinit ad7793_probe(struct spi_device *spi) | |||
| 901 | else if (voltage_uv) | 922 | else if (voltage_uv) |
| 902 | st->int_vref_mv = voltage_uv / 1000; | 923 | st->int_vref_mv = voltage_uv / 1000; |
| 903 | else | 924 | else |
| 904 | st->int_vref_mv = 2500; /* Build-in ref */ | 925 | st->int_vref_mv = 1170; /* Build-in ref */ |
| 905 | 926 | ||
| 906 | spi_set_drvdata(spi, indio_dev); | 927 | spi_set_drvdata(spi, indio_dev); |
| 907 | st->spi = spi; | 928 | st->spi = spi; |
diff --git a/include/linux/iio/frequency/adf4350.h b/include/linux/iio/frequency/adf4350.h index b76b4a87065e..be91f344d5fc 100644 --- a/include/linux/iio/frequency/adf4350.h +++ b/include/linux/iio/frequency/adf4350.h | |||
| @@ -87,6 +87,8 @@ | |||
| 87 | #define ADF4350_MAX_BANDSEL_CLK 125000 /* Hz */ | 87 | #define ADF4350_MAX_BANDSEL_CLK 125000 /* Hz */ |
| 88 | #define ADF4350_MAX_FREQ_REFIN 250000000 /* Hz */ | 88 | #define ADF4350_MAX_FREQ_REFIN 250000000 /* Hz */ |
| 89 | #define ADF4350_MAX_MODULUS 4095 | 89 | #define ADF4350_MAX_MODULUS 4095 |
| 90 | #define ADF4350_MAX_R_CNT 1023 | ||
| 91 | |||
| 90 | 92 | ||
| 91 | /** | 93 | /** |
| 92 | * struct adf4350_platform_data - platform specific information | 94 | * struct adf4350_platform_data - platform specific information |
