drivers: adc: Fix device instance const qualifier loss

It is necessary to wrap the device pointer into data.

Fixes #27399

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
This commit is contained in:
Tomasz Bursztyka 2020-07-08 11:52:06 +02:00 committed by Carles Cufí
parent a1708cf2f2
commit f1c0f2d0f9
2 changed files with 17 additions and 11 deletions

View File

@ -122,6 +122,7 @@ struct lmp90xxx_config {
struct lmp90xxx_data {
struct adc_context ctx;
const struct device *dev;
const struct device *spi_dev;
struct spi_cs_control spi_cs;
struct gpio_callback drdyb_cb;
@ -653,9 +654,8 @@ static int lmp90xxx_adc_read_channel(const struct device *dev,
return 0;
}
static void lmp90xxx_acquisition_thread(const struct device *dev)
static void lmp90xxx_acquisition_thread(struct lmp90xxx_data *data)
{
struct lmp90xxx_data *data = dev->data;
uint8_t bgcalcn = LMP90XXX_BGCALN(0x3); /* Default to BgCalMode3 */
int32_t result = 0;
uint8_t channel;
@ -670,7 +670,8 @@ static void lmp90xxx_acquisition_thread(const struct device *dev)
}
LOG_DBG("using BGCALCN = 0x%02x", bgcalcn);
err = lmp90xxx_write_reg8(dev, LMP90XXX_REG_BGCALCN, bgcalcn);
err = lmp90xxx_write_reg8(data->dev,
LMP90XXX_REG_BGCALCN, bgcalcn);
if (err) {
LOG_ERR("failed to setup background calibration "
"(err %d)", err);
@ -683,7 +684,8 @@ static void lmp90xxx_acquisition_thread(const struct device *dev)
LOG_DBG("reading channel %d", channel);
err = lmp90xxx_adc_read_channel(dev, channel, &result);
err = lmp90xxx_adc_read_channel(data->dev,
channel, &result);
if (err) {
adc_context_complete(&data->ctx, err);
break;
@ -701,7 +703,7 @@ static void lmp90xxx_acquisition_thread(const struct device *dev)
WRITE_BIT(data->channels, channel, 0);
}
adc_context_on_sampling_done(&data->ctx, dev);
adc_context_on_sampling_done(&data->ctx, data->dev);
}
}
@ -931,6 +933,8 @@ static int lmp90xxx_init(const struct device *dev)
k_tid_t tid;
int err;
data->dev = dev;
k_mutex_init(&data->ura_lock);
k_sem_init(&data->acq_sem, 0, 1);
k_sem_init(&data->drdyb_sem, 0, 1);
@ -1039,7 +1043,7 @@ static int lmp90xxx_init(const struct device *dev)
tid = k_thread_create(&data->thread, data->stack,
CONFIG_ADC_LMP90XXX_ACQUISITION_THREAD_STACK_SIZE,
(k_thread_entry_t)lmp90xxx_acquisition_thread,
dev, NULL, NULL,
data, NULL, NULL,
CONFIG_ADC_LMP90XXX_ACQUISITION_THREAD_PRIO,
0, K_NO_WAIT);
k_thread_name_set(tid, "adc_lmp90xxx");

View File

@ -36,6 +36,7 @@ struct mcp320x_config {
struct mcp320x_data {
struct adc_context ctx;
const struct device *dev;
const struct device *spi_dev;
struct spi_cs_control spi_cs;
uint16_t *buffer;
@ -238,9 +239,8 @@ static int mcp320x_read_channel(const struct device *dev, uint8_t channel,
return 0;
}
static void mcp320x_acquisition_thread(const struct device *dev)
static void mcp320x_acquisition_thread(struct mcp320x_data *data)
{
struct mcp320x_data *data = dev->data;
uint16_t result = 0;
uint8_t channel;
int err;
@ -253,7 +253,7 @@ static void mcp320x_acquisition_thread(const struct device *dev)
LOG_DBG("reading channel %d", channel);
err = mcp320x_read_channel(dev, channel, &result);
err = mcp320x_read_channel(data->dev, channel, &result);
if (err) {
LOG_ERR("failed to read channel %d (err %d)",
channel, err);
@ -268,7 +268,7 @@ static void mcp320x_acquisition_thread(const struct device *dev)
WRITE_BIT(data->channels, channel, 0);
}
adc_context_on_sampling_done(&data->ctx, dev);
adc_context_on_sampling_done(&data->ctx, data->dev);
}
}
@ -277,6 +277,8 @@ static int mcp320x_init(const struct device *dev)
const struct mcp320x_config *config = dev->config;
struct mcp320x_data *data = dev->data;
data->dev = dev;
k_sem_init(&data->sem, 0, 1);
data->spi_dev = device_get_binding(config->spi_dev_name);
@ -302,7 +304,7 @@ static int mcp320x_init(const struct device *dev)
k_thread_create(&data->thread, data->stack,
CONFIG_ADC_MCP320X_ACQUISITION_THREAD_STACK_SIZE,
(k_thread_entry_t)mcp320x_acquisition_thread,
dev, NULL, NULL,
data, NULL, NULL,
CONFIG_ADC_MCP320X_ACQUISITION_THREAD_PRIO,
0, K_NO_WAIT);