From 5cafdc75090a946356bc7eb8ed5b3c39e3cdd944 Mon Sep 17 00:00:00 2001 From: Tom Knot Date: Wed, 4 Jul 2018 15:20:24 +0200 Subject: [PATCH] Fixed remainders and resistance units --- modules/unipi/src/unipi_iio.c | 2 +- modules/unipi/src/unipi_spi.c | 7 ++++--- version.txt | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/unipi/src/unipi_iio.c b/modules/unipi/src/unipi_iio.c index d82a729..901708c 100644 --- a/modules/unipi/src/unipi_iio.c +++ b/modules/unipi/src/unipi_iio.c @@ -64,7 +64,7 @@ int neuronspi_iio_stm_ao_read_raw(struct iio_dev *indio_dev, struct iio_chan_spe case 3: { if (ch->type == IIO_RESISTANCE) { neuronspi_spi_iio_stm_ao_read_resistance(indio_dev, ch, val, val2, mask); - return IIO_VAL_INT; + return IIO_VAL_FRACTIONAL; } else { return -EINVAL; } diff --git a/modules/unipi/src/unipi_spi.c b/modules/unipi/src/unipi_spi.c index 11b8c12..478eb66 100644 --- a/modules/unipi/src/unipi_spi.c +++ b/modules/unipi/src/unipi_spi.c @@ -610,6 +610,7 @@ void neuronspi_spi_iio_stm_ao_set_voltage(struct iio_dev *indio_dev, struct iio_ u32 stm_v_err = 0; u32 stm_v_off = 0; u64 stm_true_val = val; + u64 stm_true_val_fraction = val2; u64 stm_true_ref = 0; regmap_read(n_spi->reg_map, n_spi->regstart_table->vref_int, &stm_v_int_ref); regmap_read(n_spi->reg_map, n_spi->regstart_table->vref_inp, &stm_v_inp_ref); @@ -617,7 +618,7 @@ void neuronspi_spi_iio_stm_ao_set_voltage(struct iio_dev *indio_dev, struct iio_ regmap_read(n_spi->reg_map, n_spi->regstart_table->stm_ao_vol_off, &stm_v_off); stm_true_ref = ((u64)stm_v_int_ref) * (99000 + stm_v_err) * 1000; stm_v_inp_ref = stm_v_inp_ref * 10000; - stm_true_val = ((stm_true_val * 10000) - stm_v_off) * 4095; + stm_true_val = ((stm_true_val * 10000) + (stm_true_val_fraction / 100) - stm_v_off) * 4095; do_div(stm_true_ref, stm_v_inp_ref); stm_v_inp_ref = stm_true_ref; do_div(stm_true_val, stm_v_inp_ref); @@ -636,15 +637,15 @@ void neuronspi_spi_iio_stm_ao_set_current(struct iio_dev *indio_dev, struct iio_ u32 stm_i_err = 0; u32 stm_i_off = 0; u64 stm_true_val = val; + u64 stm_true_val_fraction = val2; u64 stm_true_ref = 0; regmap_read(n_spi->reg_map, n_spi->regstart_table->vref_int, &stm_v_int_ref); regmap_read(n_spi->reg_map, n_spi->regstart_table->vref_inp, &stm_v_inp_ref); regmap_read(n_spi->reg_map, n_spi->regstart_table->stm_ao_curr_err, &stm_i_err); regmap_read(n_spi->reg_map, n_spi->regstart_table->stm_ao_curr_off, &stm_i_off); - printk(KERN_INFO "NEURONSPI: Val2: %d\n", val2); stm_true_ref = ((u64)stm_v_int_ref) * (330000 + stm_i_err) * 100; stm_v_inp_ref = stm_v_inp_ref * 1000; - stm_true_val = ((stm_true_val * 10000) - stm_i_off) * 4095; + stm_true_val = (((stm_true_val * 10000) + (stm_true_val_fraction / 100)) - stm_i_off) * 4095; do_div(stm_true_ref, stm_v_inp_ref); stm_v_inp_ref = stm_true_ref; do_div(stm_true_val, stm_v_inp_ref); diff --git a/version.txt b/version.txt index e962b57..c28bd16 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -Repository:neuron-kernel ActiveBranch:[uart_timeout] PrecedingRelease:v.0.12 PrecedingRevision:83(ad90589) LatestCommit:Wed Jul 4 15:15:04 CEST 2018 +Repository:neuron-kernel ActiveBranch:[uart_timeout] PrecedingRelease:v.0.12 PrecedingRevision:84(3027140) LatestCommit:Wed Jul 4 15:20:25 CEST 2018 -- 2.34.1