• Home
  • Raw
  • Download

Lines Matching full:max9611

2  * iio/adc/max9611.c
4 * Maxim max9611/max9612 high side current sense amplifier with
17 * Maxim max9611/max9612.
30 #define DRIVER_NAME "max9611"
32 /* max9611 register addresses */
39 /* max9611 REG1 mux configuration options */
47 /* max9611 voltage (both csa and input) helper macros */
52 * max9611 current sense amplifier voltage output:
72 * max9611 common input mode (CIM): LSB is 14mV, with 14mV offset at 25 C
81 * max9611 temperature reading: LSB is 480 milli degrees Celsius
221 * @max9611: max9611 device
225 static int max9611_read_single(struct max9611_dev *max9611, in max9611_read_single() argument
238 mutex_lock(&max9611->lock); in max9611_read_single()
239 ret = i2c_smbus_write_byte_data(max9611->i2c_client, in max9611_read_single()
242 dev_err(max9611->dev, "i2c write byte failed: 0x%2x - 0x%2x\n", in max9611_read_single()
244 mutex_unlock(&max9611->lock); in max9611_read_single()
252 ret = i2c_smbus_read_word_swapped(max9611->i2c_client, reg_addr); in max9611_read_single()
254 dev_err(max9611->dev, "i2c read word from 0x%2x failed\n", in max9611_read_single()
256 mutex_unlock(&max9611->lock); in max9611_read_single()
261 mutex_unlock(&max9611->lock); in max9611_read_single()
274 * @max9611: max9611 device
278 static int max9611_read_csa_voltage(struct max9611_dev *max9611, in max9611_read_csa_voltage() argument
291 ret = max9611_read_single(max9611, gain_selectors[i], adc_raw); in max9611_read_csa_voltage()
369 * Even if max9611 can output raw csa voltage readings, in max9611_read_raw()
442 struct max9611_dev *max9611 = iio_priv(dev_to_iio_dev(dev)); in max9611_shunt_resistor_show() local
445 i = max9611->shunt_resistor_uohm / 1000000; in max9611_shunt_resistor_show()
446 r = max9611->shunt_resistor_uohm % 1000000; in max9611_shunt_resistor_show()
471 static int max9611_init(struct max9611_dev *max9611) in max9611_init() argument
473 struct i2c_client *client = max9611->i2c_client; in max9611_init()
480 dev_err(max9611->dev, in max9611_init()
486 ret = max9611_read_single(max9611, CONF_TEMP, &regval); in max9611_init()
495 dev_err(max9611->dev, in max9611_init()
502 ret = i2c_smbus_write_byte_data(max9611->i2c_client, in max9611_init()
505 dev_err(max9611->dev, "i2c write byte failed: 0x%2x - 0x%2x\n", in max9611_init()
510 ret = i2c_smbus_write_byte_data(max9611->i2c_client, in max9611_init()
513 dev_err(max9611->dev, "i2c write byte failed: 0x%2x - 0x%2x\n", in max9611_init()
523 {.compatible = "maxim,max9611", .data = "max9611"},
536 struct max9611_dev *max9611; in max9611_probe() local
541 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*max9611)); in max9611_probe()
547 max9611 = iio_priv(indio_dev); in max9611_probe()
548 max9611->dev = &client->dev; in max9611_probe()
549 max9611->i2c_client = client; in max9611_probe()
550 mutex_init(&max9611->lock); in max9611_probe()
559 max9611->shunt_resistor_uohm = of_shunt; in max9611_probe()
561 ret = max9611_init(max9611); in max9611_probe()
586 MODULE_DESCRIPTION("Maxim max9611/12 current sense amplifier with 12bit ADC");