Lines Matching refs:info
61 static int stmpe_read_voltage(struct stmpe_adc *info,
66 mutex_lock(&info->lock);
68 reinit_completion(&info->completion);
70 info->channel = (u8)chan->channel;
72 if (info->channel > STMPE_ADC_LAST_NR) {
73 mutex_unlock(&info->lock);
77 stmpe_reg_write(info->stmpe, STMPE_REG_ADC_CAPT,
78 STMPE_ADC_CH(info->channel));
80 ret = wait_for_completion_timeout(&info->completion, STMPE_ADC_TIMEOUT);
83 stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_STA,
84 STMPE_ADC_CH(info->channel));
85 mutex_unlock(&info->lock);
89 *val = info->value;
91 mutex_unlock(&info->lock);
96 static int stmpe_read_temp(struct stmpe_adc *info,
101 mutex_lock(&info->lock);
103 reinit_completion(&info->completion);
105 info->channel = (u8)chan->channel;
107 if (info->channel != STMPE_TEMP_CHANNEL) {
108 mutex_unlock(&info->lock);
112 stmpe_reg_write(info->stmpe, STMPE_REG_TEMP_CTRL,
115 ret = wait_for_completion_timeout(&info->completion, STMPE_ADC_TIMEOUT);
118 mutex_unlock(&info->lock);
126 *val = ((449960l * info->value) / 1024l) - 273150;
128 mutex_unlock(&info->lock);
139 struct stmpe_adc *info = iio_priv(indio_dev);
148 ret = stmpe_read_voltage(info, chan, val);
152 ret = stmpe_read_temp(info, chan, val);
165 *val2 = info->stmpe->mod_12b ? 12 : 10;
177 struct stmpe_adc *info = (struct stmpe_adc *)dev_id;
180 if (info->channel <= STMPE_ADC_LAST_NR) {
183 int_sta = stmpe_reg_read(info->stmpe, STMPE_REG_ADC_INT_STA);
186 if (!(int_sta & STMPE_ADC_CH(info->channel)))
190 stmpe_block_read(info->stmpe,
191 STMPE_REG_ADC_DATA_CH(info->channel), 2, (u8 *) &data);
193 stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_STA, int_sta);
194 } else if (info->channel == STMPE_TEMP_CHANNEL) {
196 stmpe_block_read(info->stmpe, STMPE_REG_TEMP_DATA, 2,
202 info->value = (u32) be16_to_cpu(data);
203 complete(&info->completion);
256 struct stmpe_adc *info;
274 info = iio_priv(indio_dev);
275 mutex_init(&info->lock);
277 init_completion(&info->completion);
280 "stmpe-adc", info);
291 "stmpe-adc", info);
300 indio_dev->info = &stmpe_adc_iio_info;
303 info->stmpe = dev_get_drvdata(pdev->dev.parent);
314 stmpe_adc_voltage_chan(&info->stmpe_adc_iio_channels[num_chan], i);
317 stmpe_adc_temp_chan(&info->stmpe_adc_iio_channels[num_chan], i);
319 indio_dev->channels = info->stmpe_adc_iio_channels;
322 ret = stmpe_adc_init_hw(info);
326 stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_EN,
329 stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_STA,
338 struct stmpe_adc *info = iio_priv(indio_dev);
340 stmpe_adc_init_hw(info);