static int z188_iio_read_raw(struct iio_dev *iio_dev, struct iio_chan_spec const *chan, int *val, int *val2, long info) { struct z188_adc *adc = iio_priv(iio_dev); int ret; u16 tmp; switch (info) { case IIO_CHAN_INFO_RAW: tmp = readw(adc->base + chan->channel * 4); if (ADC_OVR(tmp)) { dev_info(&iio_dev->dev, "Oversampling error on ADC channel %d\n", chan->channel); return -EIO; } *val = ADC_DATA(tmp); ret = IIO_VAL_INT; break; default: ret = -EINVAL; break; } return ret; }
/* * vt1603_get_bat_convert_data - get battery converted data * @bat_drv: vt1603 battery driver data */ static u16 vt1603_get_bat_convert_data(struct vt1603_bat_drvdata *bat_drv) { u8 data_l, data_h; data_l = vt1603_get_reg8(bat_drv, VT1603_DATL_REG); data_h = vt1603_get_reg8(bat_drv, VT1603_DATH_REG); return ADC_DATA(data_l, data_h); }
/* * vt1603_get_bat_convert_data - get battery converted data * @bat_drv: vt1603 battery driver data */ static int vt1603_get_bat_data(struct vt1603_bat_drvdata *bat_drv,int *data) { int ret = 0; u8 data_l, data_h; ret |= vt1603_read8(bat_drv, VT1603_DATL_REG, &data_l); ret |= vt1603_read8(bat_drv, VT1603_DATH_REG, &data_h); *data = ADC_DATA(data_l, data_h); return ret; }