Lines Matching refs:info
131 struct max17211_device_info *info = to_device_info(psy);
143 regmap_read(info->regmap, MAX172XX_REG_STATUS,
147 ret = regmap_read(info->regmap, MAX172XX_REG_REPSOC, ®);
151 ret = regmap_read(info->regmap, MAX172XX_REG_BATT, ®);
155 ret = regmap_read(info->regmap, MAX172XX_REG_DESIGNCAP, ®);
159 ret = regmap_read(info->regmap, MAX172XX_REG_REPCAP, ®);
163 ret = regmap_read(info->regmap, MAX172XX_REG_TTE, ®);
167 ret = regmap_read(info->regmap, MAX172XX_REG_TTF, ®);
171 ret = regmap_read(info->regmap, MAX172XX_REG_TEMP, ®);
174 /* We need signed current, so must cast info->rsense to signed type */
176 ret = regmap_read(info->regmap, MAX172XX_REG_CURRENT, ®);
178 max172xx_current_to_voltage(reg) / (int)info->rsense;
181 ret = regmap_read(info->regmap, MAX172XX_REG_AVGCURRENT, ®);
183 max172xx_current_to_voltage(reg) / (int)info->rsense;
190 ret = regmap_read(info->regmap, MAX1721X_REG_DEV_STR, ®);
191 val->strval = info->DeviceName;
194 ret = regmap_read(info->regmap, MAX1721X_REG_MFG_STR, ®);
195 val->strval = info->ManufacturerName;
198 ret = regmap_read(info->regmap, MAX1721X_REG_SER_HEX, ®);
199 val->strval = info->SerialNumber;
226 static int get_string(struct max17211_device_info *info,
236 if (regmap_read(info->regmap, reg++, &val))
245 static int get_sn_string(struct max17211_device_info *info, char *str)
252 if (regmap_read(info->regmap, MAX1721X_REG_SER_HEX, &val[0]))
254 if (regmap_read(info->regmap, MAX1721X_REG_SER_HEX + 1, &val[1]))
256 if (regmap_read(info->regmap, MAX1721X_REG_SER_HEX + 2, &val[2]))
326 struct max17211_device_info *info;
328 info = devm_kzalloc(&sl->dev, sizeof(*info), GFP_KERNEL);
329 if (!info)
332 sl->family_data = (void *)info;
333 info->w1_dev = &sl->dev;
341 snprintf(info->name, sizeof(info->name),
343 info->bat_desc.name = info->name;
349 info->bat_desc.no_thermal = true;
350 info->bat_desc.type = POWER_SUPPLY_TYPE_BATTERY;
351 info->bat_desc.properties = max1721x_battery_props;
352 info->bat_desc.num_properties = ARRAY_SIZE(max1721x_battery_props);
353 info->bat_desc.get_property = max1721x_battery_get_property;
354 psy_cfg.drv_data = info;
357 info->regmap = devm_regmap_init_w1(info->w1_dev,
359 if (IS_ERR(info->regmap)) {
360 int err = PTR_ERR(info->regmap);
362 dev_err(info->w1_dev, "Failed to allocate register map: %d\n",
368 info->rsense = 0;
369 if (regmap_read(info->regmap, MAX1721X_REG_NRSENSE, &info->rsense)) {
370 dev_err(info->w1_dev, "Can't read RSense. Hardware error.\n");
374 if (!info->rsense) {
375 dev_warn(info->w1_dev, "RSense not calibrated, set 10 mOhms!\n");
376 info->rsense = 1000; /* in regs in 10^-5 */
378 dev_info(info->w1_dev, "RSense: %d mOhms.\n", info->rsense / 100);
380 if (get_string(info, MAX1721X_REG_MFG_STR,
381 MAX1721X_REG_MFG_NUMB, info->ManufacturerName)) {
382 dev_err(info->w1_dev, "Can't read manufacturer. Hardware error.\n");
386 if (!info->ManufacturerName[0])
387 strncpy(info->ManufacturerName, DEF_MFG_NAME,
390 if (get_string(info, MAX1721X_REG_DEV_STR,
391 MAX1721X_REG_DEV_NUMB, info->DeviceName)) {
392 dev_err(info->w1_dev, "Can't read device. Hardware error.\n");
395 if (!info->DeviceName[0]) {
398 if (regmap_read(info->regmap,
400 dev_err(info->w1_dev, "Can't read device name reg.\n");
406 strncpy(info->DeviceName, DEF_DEV_NAME_MAX17211,
410 strncpy(info->DeviceName, DEF_DEV_NAME_MAX17215,
414 strncpy(info->DeviceName, DEF_DEV_NAME_UNKNOWN,
419 if (get_sn_string(info, info->SerialNumber)) {
420 dev_err(info->w1_dev, "Can't read serial. Hardware error.\n");
424 info->bat = devm_power_supply_register(&sl->dev, &info->bat_desc,
426 if (IS_ERR(info->bat)) {
427 dev_err(info->w1_dev, "failed to register battery\n");
428 return PTR_ERR(info->bat);