Lines Matching refs:isl29501

197 static int isl29501_register_read(struct isl29501_private *isl29501,  in isl29501_register_read()  argument
205 mutex_lock(&isl29501->lock); in isl29501_register_read()
207 ret = i2c_smbus_read_byte_data(isl29501->client, reg->msb); in isl29501_register_read()
214 ret = i2c_smbus_read_byte_data(isl29501->client, reg->lsb); in isl29501_register_read()
219 mutex_unlock(&isl29501->lock); in isl29501_register_read()
225 mutex_unlock(&isl29501->lock); in isl29501_register_read()
230 static u32 isl29501_register_write(struct isl29501_private *isl29501, in isl29501_register_write() argument
243 mutex_lock(&isl29501->lock); in isl29501_register_write()
245 ret = i2c_smbus_write_byte_data(isl29501->client, in isl29501_register_write()
251 ret = i2c_smbus_write_byte_data(isl29501->client, reg->lsb, value); in isl29501_register_write()
254 mutex_unlock(&isl29501->lock); in isl29501_register_write()
263 struct isl29501_private *isl29501 = iio_priv(indio_dev); in isl29501_read_ext() local
271 ret = isl29501_register_read(isl29501, reg, &gain); in isl29501_read_ext()
281 ret = isl29501_register_read(isl29501, REG_PHASE_EXP, &exp); in isl29501_read_ext()
285 ret = isl29501_register_read(isl29501, reg, &coeff); in isl29501_read_ext()
298 static int isl29501_set_shadow_coeff(struct isl29501_private *isl29501, in isl29501_set_shadow_coeff() argument
320 isl29501->shadow_coeffs[coeff] = val; in isl29501_set_shadow_coeff()
325 static int isl29501_write_coeff(struct isl29501_private *isl29501, in isl29501_write_coeff() argument
348 return isl29501_register_write(isl29501, reg, val); in isl29501_write_coeff()
385 struct isl29501_private *isl29501 = iio_priv(indio_dev); in isl29501_write_ext() local
401 ret = isl29501_register_write(isl29501, reg, val); in isl29501_write_ext()
415 ret = isl29501_set_shadow_coeff(isl29501, reg, val); in isl29501_write_ext()
427 corr = isl29501->shadow_coeffs[i]; in isl29501_write_ext()
431 dev_dbg(&isl29501->client->dev, in isl29501_write_ext()
446 corr = isl29501->shadow_coeffs[i]; in isl29501_write_ext()
452 ret = isl29501_write_coeff(isl29501, i, mantissa); in isl29501_write_ext()
457 ret = isl29501_register_write(isl29501, REG_PHASE_EXP, max_exp); in isl29501_write_ext()
539 static int isl29501_reset_registers(struct isl29501_private *isl29501) in isl29501_reset_registers() argument
543 ret = i2c_smbus_write_byte_data(isl29501->client, in isl29501_reset_registers()
547 dev_err(&isl29501->client->dev, in isl29501_reset_registers()
552 ret = i2c_smbus_write_byte_data(isl29501->client, in isl29501_reset_registers()
556 dev_err(&isl29501->client->dev, in isl29501_reset_registers()
562 static int isl29501_begin_acquisition(struct isl29501_private *isl29501) in isl29501_begin_acquisition() argument
566 ret = i2c_smbus_write_byte_data(isl29501->client, in isl29501_begin_acquisition()
570 dev_err(&isl29501->client->dev, in isl29501_begin_acquisition()
612 static int isl29501_get_raw(struct isl29501_private *isl29501, in isl29501_get_raw() argument
620 ret = isl29501_register_read(isl29501, REG_DISTANCE, raw); in isl29501_get_raw()
626 ret = isl29501_register_read(isl29501, in isl29501_get_raw()
634 ret = isl29501_register_read(isl29501, REG_PHASE, raw); in isl29501_get_raw()
640 ret = isl29501_register_read(isl29501, REG_EMITTER_DAC, raw); in isl29501_get_raw()
646 ret = isl29501_register_read(isl29501, REG_TEMPERATURE, raw); in isl29501_get_raw()
656 static int isl29501_get_scale(struct isl29501_private *isl29501, in isl29501_get_scale() argument
683 ret = isl29501_register_read(isl29501, in isl29501_get_scale()
713 static int isl29501_get_calibbias(struct isl29501_private *isl29501, in isl29501_get_calibbias() argument
719 return isl29501_register_read(isl29501, in isl29501_get_calibbias()
723 return isl29501_register_read(isl29501, in isl29501_get_calibbias()
731 static int isl29501_get_inttime(struct isl29501_private *isl29501, in isl29501_get_inttime() argument
737 ret = isl29501_register_read(isl29501, REG_INT_TIME, &inttime); in isl29501_get_inttime()
750 static int isl29501_get_freq(struct isl29501_private *isl29501, in isl29501_get_freq() argument
758 ret = isl29501_register_read(isl29501, REG_SAMPLE_TIME, &sample_time); in isl29501_get_freq()
778 struct isl29501_private *isl29501 = iio_priv(indio_dev); in isl29501_read_raw() local
782 return isl29501_get_raw(isl29501, chan, val); in isl29501_read_raw()
784 return isl29501_get_scale(isl29501, chan, val, val2); in isl29501_read_raw()
786 return isl29501_get_inttime(isl29501, val, val2); in isl29501_read_raw()
788 return isl29501_get_freq(isl29501, val, val2); in isl29501_read_raw()
790 return isl29501_get_calibbias(isl29501, chan, val); in isl29501_read_raw()
796 static int isl29501_set_raw(struct isl29501_private *isl29501, in isl29501_set_raw() argument
802 return isl29501_register_write(isl29501, REG_EMITTER_DAC, raw); in isl29501_set_raw()
808 static int isl29501_set_inttime(struct isl29501_private *isl29501, in isl29501_set_inttime() argument
816 return isl29501_register_write(isl29501, in isl29501_set_inttime()
825 static int isl29501_set_scale(struct isl29501_private *isl29501, in isl29501_set_scale() argument
837 return isl29501_register_write(isl29501, in isl29501_set_scale()
846 static int isl29501_set_calibbias(struct isl29501_private *isl29501, in isl29501_set_calibbias() argument
852 return isl29501_register_write(isl29501, in isl29501_set_calibbias()
856 return isl29501_register_write(isl29501, in isl29501_set_calibbias()
864 static int isl29501_set_freq(struct isl29501_private *isl29501, in isl29501_set_freq() argument
880 return isl29501_register_write(isl29501, REG_SAMPLE_TIME, sample_time); in isl29501_set_freq()
887 struct isl29501_private *isl29501 = iio_priv(indio_dev); in isl29501_write_raw() local
891 return isl29501_set_raw(isl29501, chan, val); in isl29501_write_raw()
893 return isl29501_set_inttime(isl29501, val, val2); in isl29501_write_raw()
895 return isl29501_set_freq(isl29501, val, val2); in isl29501_write_raw()
897 return isl29501_set_scale(isl29501, chan, val, val2); in isl29501_write_raw()
899 return isl29501_set_calibbias(isl29501, chan, val); in isl29501_write_raw()
911 static int isl29501_init_chip(struct isl29501_private *isl29501) in isl29501_init_chip() argument
915 ret = i2c_smbus_read_byte_data(isl29501->client, ISL29501_DEVICE_ID); in isl29501_init_chip()
917 dev_err(&isl29501->client->dev, "Error reading device id\n"); in isl29501_init_chip()
922 dev_err(&isl29501->client->dev, in isl29501_init_chip()
928 ret = isl29501_reset_registers(isl29501); in isl29501_init_chip()
932 return isl29501_begin_acquisition(isl29501); in isl29501_init_chip()
939 struct isl29501_private *isl29501 = iio_priv(indio_dev); in isl29501_trigger_handler() local
944 isl29501_register_read(isl29501, REG_DISTANCE, buffer); in isl29501_trigger_handler()
956 struct isl29501_private *isl29501; in isl29501_probe() local
959 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*isl29501)); in isl29501_probe()
963 isl29501 = iio_priv(indio_dev); in isl29501_probe()
966 isl29501->client = client; in isl29501_probe()
968 mutex_init(&isl29501->lock); in isl29501_probe()
970 ret = isl29501_init_chip(isl29501); in isl29501_probe()