#if NEURONSPI_SCHED_REQUIRED > 0
#include <uapi/linux/sched/types.h>
#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
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;
};
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;
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";
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";
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";
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";
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;
}
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;
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;
}
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;
-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