Lines Matching refs:chip

90 static int ad7291_i2c_read(struct ad7291_chip_info *chip, u8 reg, u16 *data)  in ad7291_i2c_read()  argument
92 struct i2c_client *client = chip->client; in ad7291_i2c_read()
106 static int ad7291_i2c_write(struct ad7291_chip_info *chip, u8 reg, u16 data) in ad7291_i2c_write() argument
108 return i2c_smbus_write_word_swapped(chip->client, reg, data); in ad7291_i2c_write()
114 struct ad7291_chip_info *chip = iio_priv(private); in ad7291_event_handler() local
120 if (ad7291_i2c_read(chip, AD7291_T_ALERT_STATUS, &t_status)) in ad7291_event_handler()
123 if (ad7291_i2c_read(chip, AD7291_VOLTAGE_ALERT_STATUS, &v_status)) in ad7291_event_handler()
129 command = chip->command | AD7291_ALERT_CLEAR; in ad7291_event_handler()
130 ad7291_i2c_write(chip, AD7291_COMMAND, command); in ad7291_event_handler()
132 command = chip->command & ~AD7291_ALERT_CLEAR; in ad7291_event_handler()
133 ad7291_i2c_write(chip, AD7291_COMMAND, command); in ad7291_event_handler()
209 struct ad7291_chip_info *chip = iio_priv(indio_dev); in ad7291_read_event_value() local
213 ret = ad7291_i2c_read(chip, ad7291_threshold_reg(chan, dir, info), in ad7291_read_event_value()
234 struct ad7291_chip_info *chip = iio_priv(indio_dev); in ad7291_write_event_value() local
244 return ad7291_i2c_write(chip, ad7291_threshold_reg(chan, dir, info), in ad7291_write_event_value()
253 struct ad7291_chip_info *chip = iio_priv(indio_dev); in ad7291_read_event_config() local
261 return !!(chip->c_mask & BIT(15 - chan->channel)); in ad7291_read_event_config()
278 struct ad7291_chip_info *chip = iio_priv(indio_dev); in ad7291_write_event_config() local
282 mutex_lock(&chip->state_lock); in ad7291_write_event_config()
283 regval = chip->command; in ad7291_write_event_config()
294 if ((!state) && (chip->c_mask & mask)) in ad7291_write_event_config()
295 chip->c_mask &= ~mask; in ad7291_write_event_config()
296 else if (state && (!(chip->c_mask & mask))) in ad7291_write_event_config()
297 chip->c_mask |= mask; in ad7291_write_event_config()
302 regval |= chip->c_mask; in ad7291_write_event_config()
303 if (chip->c_mask) /* Enable autocycle? */ in ad7291_write_event_config()
306 ret = ad7291_i2c_write(chip, AD7291_COMMAND, regval); in ad7291_write_event_config()
310 chip->command = regval; in ad7291_write_event_config()
317 mutex_unlock(&chip->state_lock); in ad7291_write_event_config()
328 struct ad7291_chip_info *chip = iio_priv(indio_dev); in ad7291_read_raw() local
335 mutex_lock(&chip->state_lock); in ad7291_read_raw()
337 if (chip->command & AD7291_AUTOCYCLE) { in ad7291_read_raw()
338 mutex_unlock(&chip->state_lock); in ad7291_read_raw()
342 regval = chip->command & (~AD7291_VOLTAGE_MASK); in ad7291_read_raw()
344 ret = ad7291_i2c_write(chip, AD7291_COMMAND, regval); in ad7291_read_raw()
346 mutex_unlock(&chip->state_lock); in ad7291_read_raw()
350 ret = i2c_smbus_read_word_swapped(chip->client, in ad7291_read_raw()
353 mutex_unlock(&chip->state_lock); in ad7291_read_raw()
357 mutex_unlock(&chip->state_lock); in ad7291_read_raw()
361 ret = i2c_smbus_read_word_swapped(chip->client, in ad7291_read_raw()
371 ret = i2c_smbus_read_word_swapped(chip->client, in ad7291_read_raw()
380 if (chip->reg) { in ad7291_read_raw()
383 vref = regulator_get_voltage(chip->reg); in ad7291_read_raw()
471 struct ad7291_chip_info *chip; in ad7291_probe() local
475 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*chip)); in ad7291_probe()
478 chip = iio_priv(indio_dev); in ad7291_probe()
481 chip->reg = devm_regulator_get(&client->dev, "vref"); in ad7291_probe()
482 if (IS_ERR(chip->reg)) in ad7291_probe()
483 return PTR_ERR(chip->reg); in ad7291_probe()
485 ret = regulator_enable(chip->reg); in ad7291_probe()
490 mutex_init(&chip->state_lock); in ad7291_probe()
494 chip->client = client; in ad7291_probe()
496 chip->command = AD7291_NOISE_DELAY | in ad7291_probe()
501 chip->command |= AD7291_EXT_REF; in ad7291_probe()
511 ret = ad7291_i2c_write(chip, AD7291_COMMAND, AD7291_RESET); in ad7291_probe()
517 ret = ad7291_i2c_write(chip, AD7291_COMMAND, chip->command); in ad7291_probe()
544 if (chip->reg) in ad7291_probe()
545 regulator_disable(chip->reg); in ad7291_probe()
553 struct ad7291_chip_info *chip = iio_priv(indio_dev); in ad7291_remove() local
560 if (chip->reg) in ad7291_remove()
561 regulator_disable(chip->reg); in ad7291_remove()