From 6489c91830304ee0b31045d7d16fa9d32746d827 Mon Sep 17 00:00:00 2001 From: Tom Knot Date: Wed, 6 Jun 2018 18:16:15 +0200 Subject: [PATCH] Fixed analog mode configuration via SYSFS --- modules/unipi/src/unipi_common.h | 4 +++- modules/unipi/src/unipi_iio.c | 2 +- modules/unipi/src/unipi_spi.c | 4 ++++ modules/unipi/src/unipi_sysfs.c | 8 ++++---- version.txt | 2 +- 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/modules/unipi/src/unipi_common.h b/modules/unipi/src/unipi_common.h index 4447d7c..7ee0910 100644 --- a/modules/unipi/src/unipi_common.h +++ b/modules/unipi/src/unipi_common.h @@ -51,7 +51,7 @@ #if NEURONSPI_SCHED_REQUIRED > 0 #include #endif -#define NEURONSPI_MAJOR_VERSIONSTRING "Development Beta Version 0.10:28:05:2018" +#define NEURONSPI_MAJOR_VERSIONSTRING "Development Beta Version 0.11:06:06:2018" #define NEURONSPI_MAX_DEVS 3 #define NEURONSPI_MAX_UART 128 @@ -235,12 +235,14 @@ struct neuronspi_sec_ao_driver struct neuronspi_stm_ai_data { + u32 index; u32 mode; struct spi_device *parent; }; struct neuronspi_stm_ao_data { + u32 index; u32 mode; struct spi_device *parent; }; diff --git a/modules/unipi/src/unipi_iio.c b/modules/unipi/src/unipi_iio.c index eca3eae..ab7a31c 100644 --- a/modules/unipi/src/unipi_iio.c +++ b/modules/unipi/src/unipi_iio.c @@ -114,7 +114,7 @@ int neuronspi_iio_sec_ai_read_raw(struct iio_dev *indio_dev, struct iio_chan_spe struct neuronspi_sec_ai_data *ai_data = iio_priv(indio_dev); struct spi_device *spi = ai_data->parent; struct neuronspi_driver_data *n_spi = spi_get_drvdata(spi); - regmap_read(n_spi->reg_map, n_spi->regstart_table->sec_ai_mode_reg, &ai_data->mode); + regmap_read(n_spi->reg_map, n_spi->regstart_table->sec_ai_mode_reg + ai_data->index, &ai_data->mode); switch(ai_data->mode) { case 0: { return -EINVAL; diff --git a/modules/unipi/src/unipi_spi.c b/modules/unipi/src/unipi_spi.c index cfaf44d..41716c4 100644 --- a/modules/unipi/src/unipi_spi.c +++ b/modules/unipi/src/unipi_spi.c @@ -1273,6 +1273,7 @@ reg1001: %x, reg1002: %x, reg1003: %x, reg1004: %x\n", if (n_spi->features->stm_ai_count) { n_spi->stm_ai_driver = devm_iio_device_alloc(&(spi->dev), sizeof(struct neuronspi_stm_ai_data)); ((struct neuronspi_stm_ai_data*)iio_priv(n_spi->stm_ai_driver))->parent = spi; + ((struct neuronspi_stm_ai_data*)iio_priv(n_spi->stm_ai_driver))->index = i; n_spi->stm_ai_driver->modes = INDIO_DIRECT_MODE; n_spi->stm_ai_driver->currentmode = INDIO_DIRECT_MODE; n_spi->stm_ai_driver->name = "ai_type_a"; @@ -1286,6 +1287,7 @@ reg1001: %x, reg1002: %x, reg1003: %x, reg1004: %x\n", if (n_spi->features->stm_ao_count) { n_spi->stm_ao_driver = devm_iio_device_alloc(&(spi->dev), sizeof(struct neuronspi_stm_ai_data)); ((struct neuronspi_stm_ao_data*)iio_priv(n_spi->stm_ao_driver))->parent = spi; + ((struct neuronspi_stm_ao_data*)iio_priv(n_spi->stm_ao_driver))->index = i; n_spi->stm_ao_driver->modes = INDIO_DIRECT_MODE; n_spi->stm_ao_driver->currentmode = INDIO_DIRECT_MODE; n_spi->stm_ao_driver->name = "ao_type_a"; @@ -1301,6 +1303,7 @@ reg1001: %x, reg1002: %x, reg1003: %x, reg1004: %x\n", for (i = 0; i < n_spi->features->sec_ai_count; i++) { n_spi->sec_ai_driver[i] = devm_iio_device_alloc(&(spi->dev), sizeof(struct neuronspi_sec_ai_data)); ((struct neuronspi_sec_ai_data*)iio_priv(n_spi->sec_ai_driver[i]))->parent = spi; + ((struct neuronspi_sec_ai_data*)iio_priv(n_spi->sec_ai_driver[i]))->index = i; n_spi->sec_ai_driver[i]->modes = INDIO_DIRECT_MODE; n_spi->sec_ai_driver[i]->currentmode = INDIO_DIRECT_MODE; n_spi->sec_ai_driver[i]->name = "ai_type_b"; @@ -1317,6 +1320,7 @@ reg1001: %x, reg1002: %x, reg1003: %x, reg1004: %x\n", for (i = 0; i < n_spi->features->sec_ao_count; i++) { n_spi->sec_ao_driver[i] = devm_iio_device_alloc(&(spi->dev), sizeof(struct neuronspi_sec_ao_data)); ((struct neuronspi_sec_ao_data*)iio_priv(n_spi->sec_ao_driver[i]))->parent = spi; + ((struct neuronspi_sec_ao_data*)iio_priv(n_spi->sec_ao_driver[i]))->index = i; n_spi->sec_ao_driver[i]->modes = INDIO_DIRECT_MODE; n_spi->sec_ao_driver[i]->currentmode = INDIO_DIRECT_MODE; n_spi->sec_ao_driver[i]->name = "ao_type_b"; diff --git a/modules/unipi/src/unipi_sysfs.c b/modules/unipi/src/unipi_sysfs.c index 3944aef..3e5e085 100644 --- a/modules/unipi/src/unipi_sysfs.c +++ b/modules/unipi/src/unipi_sysfs.c @@ -865,7 +865,7 @@ static ssize_t neuronspi_iio_show_primary_ai_mode(struct device *dev, struct dev struct neuronspi_stm_ai_data *ai_data = iio_priv(indio_dev); struct spi_device *spi = ai_data->parent; struct neuronspi_driver_data *n_spi = spi_get_drvdata(spi); - regmap_read(n_spi->reg_map, n_spi->regstart_table->stm_ai_mode_reg, &val); + regmap_read(n_spi->reg_map, n_spi->regstart_table->stm_ai_mode_reg + ai_data->index, &val); ret = scnprintf(buf, 255, "%d\n", val); return ret; } @@ -881,7 +881,7 @@ static ssize_t neuronspi_iio_store_primary_ai_mode(struct device *dev, struct de err = kstrtouint(buf, 0, &val); if (err < 0) goto err_end; if (n_spi && n_spi->combination_id != 0xFF && n_spi->reg_map) { - regmap_write(n_spi->reg_map, n_spi->regstart_table->stm_ai_mode_reg, val); + regmap_write(n_spi->reg_map, n_spi->regstart_table->stm_ai_mode_reg + ai_data->index, val); } err_end: return count; @@ -895,7 +895,7 @@ static ssize_t neuronspi_iio_show_primary_ao_mode(struct device *dev, struct dev struct neuronspi_stm_ao_data *ao_data = iio_priv(indio_dev); struct spi_device *spi = ao_data->parent; struct neuronspi_driver_data *n_spi = spi_get_drvdata(spi); - regmap_read(n_spi->reg_map, n_spi->regstart_table->stm_ao_mode_reg, &val); + regmap_read(n_spi->reg_map, n_spi->regstart_table->stm_ao_mode_reg + ao_data->index, &val); ret = scnprintf(buf, 255, "%d\n", val); return ret; } @@ -911,7 +911,7 @@ static ssize_t neuronspi_iio_store_primary_ao_mode(struct device *dev, struct de err = kstrtouint(buf, 0, &val); if (err < 0) goto err_end; if (n_spi && n_spi->combination_id != -1 && n_spi->reg_map) { - regmap_write(n_spi->reg_map, n_spi->regstart_table->stm_ao_mode_reg, val); + regmap_write(n_spi->reg_map, n_spi->regstart_table->stm_ao_mode_reg + ao_data->index, val); } err_end: return count; diff --git a/version.txt b/version.txt index f66c118..74af88c 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -Repository:neuron-kernel ActiveBranch:[master] PrecedingRevision:37(bdac6cc) LatestCommit:Mon May 28 17:00:39 CEST 2018 +Repository:neuron-kernel ActiveBranch:[master] PrecedingRelease:v.0.10 PrecedingRevision:39(9533eb2) LatestCommit:Wed Jun 6 19:08:29 CEST 2018 -- 2.34.1