Lines Matching refs:data
115 u8 data[3];
119 err = i2c_smbus_read_i2c_block_data(client, reg, 3, data);
124 *val = (data[0] << 16) | (data[1] << 8) | data[2];
132 struct ina238_data *data = dev_get_drvdata(dev);
188 err = regmap_read(data->regmap, reg, ®val);
201 (1000 * (4 - data->gain + 1));
217 struct ina238_data *data = dev_get_drvdata(dev);
228 regval = (regval * 1000 * (4 - data->gain + 1)) /
234 return regmap_write(data->regmap,
237 return regmap_write(data->regmap,
250 return regmap_write(data->regmap,
253 return regmap_write(data->regmap,
265 struct ina238_data *data = dev_get_drvdata(dev);
271 err = regmap_read(data->regmap, INA238_CURRENT, ®val);
276 *val = div_s64((s16)regval * INA238_FIXED_SHUNT * data->gain,
277 data->rshunt * 4);
288 struct ina238_data *data = dev_get_drvdata(dev);
295 err = ina238_read_reg24(data->client, INA238_POWER, ®val);
301 data->gain, 20 * data->rshunt);
306 err = regmap_read(data->regmap, INA238_POWER_LIMIT, ®val);
315 data->gain, 20 * data->rshunt);
320 err = regmap_read(data->regmap, INA238_DIAG_ALERT, ®val);
335 struct ina238_data *data = dev_get_drvdata(dev);
347 regval = div_u64(val * 20ULL * data->rshunt,
348 1000ULL * INA238_FIXED_SHUNT * data->gain);
351 return regmap_write(data->regmap, INA238_POWER_LIMIT, regval);
356 struct ina238_data *data = dev_get_drvdata(dev);
362 err = regmap_read(data->regmap, INA238_DIE_TEMP, ®val);
370 err = regmap_read(data->regmap, INA238_TEMP_LIMIT, ®val);
378 err = regmap_read(data->regmap, INA238_DIAG_ALERT, ®val);
393 struct ina238_data *data = dev_get_drvdata(dev);
403 return regmap_write(data->regmap, INA238_TEMP_LIMIT, regval);
427 struct ina238_data *data = dev_get_drvdata(dev);
430 mutex_lock(&data->config_lock);
447 mutex_unlock(&data->config_lock);
538 struct ina238_data *data;
542 data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
543 if (!data)
546 data->client = client;
547 mutex_init(&data->config_lock);
549 data->regmap = devm_regmap_init_i2c(client, &ina238_regmap_config);
550 if (IS_ERR(data->regmap)) {
552 return PTR_ERR(data->regmap);
556 data->rshunt = INA238_RSHUNT_DEFAULT;
557 if (device_property_read_u32(dev, "shunt-resistor", &data->rshunt) < 0 && pdata)
558 data->rshunt = pdata->shunt_uohms;
559 if (data->rshunt == 0) {
560 dev_err(dev, "invalid shunt resister value %u\n", data->rshunt);
565 if (device_property_read_u32(dev, "ti,shunt-gain", &data->gain) < 0)
566 data->gain = 4; /* Default of ADCRANGE = 0 */
567 if (data->gain != 1 && data->gain != 4) {
568 dev_err(dev, "invalid shunt gain value %u\n", data->gain);
574 if (data->gain == 1)
576 ret = regmap_write(data->regmap, INA238_CONFIG, config);
583 ret = regmap_write(data->regmap, INA238_ADC_CONFIG,
591 ret = regmap_write(data->regmap, INA238_SHUNT_CALIBRATION,
599 ret = regmap_write(data->regmap, INA238_DIAG_ALERT,
606 hwmon_dev = devm_hwmon_device_register_with_info(dev, client->name, data,
613 client->name, data->rshunt, data->gain);