static ssize_t charge_full_show(struct ab8500_fg *di, char *buf)
 {
-       return sprintf(buf, "%d\n", di->bat_cap.max_mah);
+       return sysfs_emit(buf, "%d\n", di->bat_cap.max_mah);
 }
 
 static ssize_t charge_full_store(struct ab8500_fg *di, const char *buf,
 
 static ssize_t charge_now_show(struct ab8500_fg *di, char *buf)
 {
-       return sprintf(buf, "%d\n", di->bat_cap.prev_mah);
+       return sysfs_emit(buf, "%d\n", di->bat_cap.prev_mah);
 }
 
 static ssize_t charge_now_store(struct ab8500_fg *di, const char *buf,
 
        ret = bq2415x_exec_command(bq, command);
        if (ret < 0)
                return ret;
-       return sprintf(buf, "%d\n", ret);
+       return sysfs_emit(buf, "%d\n", ret);
 }
 
 /*
        struct bq2415x_device *bq = power_supply_get_drvdata(psy);
 
        if (bq->timer_error)
-               return sprintf(buf, "%s\n", bq->timer_error);
+               return sysfs_emit(buf, "%s\n", bq->timer_error);
 
        if (bq->autotimer)
-               return sprintf(buf, "auto\n");
-       return sprintf(buf, "off\n");
+               return sysfs_emit(buf, "auto\n");
+       return sysfs_emit(buf, "off\n");
 }
 
 /*
        ssize_t ret = 0;
 
        if (bq->automode > 0)
-               ret += sprintf(buf+ret, "auto (");
+               ret += sysfs_emit_at(buf, ret, "auto (");
 
        switch (bq->mode) {
        case BQ2415X_MODE_OFF:
-               ret += sprintf(buf+ret, "off");
+               ret += sysfs_emit_at(buf, ret, "off");
                break;
        case BQ2415X_MODE_NONE:
-               ret += sprintf(buf+ret, "none");
+               ret += sysfs_emit_at(buf, ret, "none");
                break;
        case BQ2415X_MODE_HOST_CHARGER:
-               ret += sprintf(buf+ret, "host");
+               ret += sysfs_emit_at(buf, ret, "host");
                break;
        case BQ2415X_MODE_DEDICATED_CHARGER:
-               ret += sprintf(buf+ret, "dedicated");
+               ret += sysfs_emit_at(buf, ret, "dedicated");
                break;
        case BQ2415X_MODE_BOOST:
-               ret += sprintf(buf+ret, "boost");
+               ret += sysfs_emit_at(buf, ret, "boost");
                break;
        }
 
        if (bq->automode > 0)
-               ret += sprintf(buf+ret, ")");
+               ret += sysfs_emit_at(buf, ret, ")");
 
-       ret += sprintf(buf+ret, "\n");
+       ret += sysfs_emit_at(buf, ret, "\n");
        return ret;
 }
 
 
        switch (bq->reported_mode) {
        case BQ2415X_MODE_OFF:
-               return sprintf(buf, "off\n");
+               return sysfs_emit(buf, "off\n");
        case BQ2415X_MODE_NONE:
-               return sprintf(buf, "none\n");
+               return sysfs_emit(buf, "none\n");
        case BQ2415X_MODE_HOST_CHARGER:
-               return sprintf(buf, "host\n");
+               return sysfs_emit(buf, "host\n");
        case BQ2415X_MODE_DEDICATED_CHARGER:
-               return sprintf(buf, "dedicated\n");
+               return sysfs_emit(buf, "dedicated\n");
        case BQ2415X_MODE_BOOST:
-               return sprintf(buf, "boost\n");
+               return sysfs_emit(buf, "boost\n");
        }
 
        return -EINVAL;
        int ret = bq2415x_i2c_read(bq, reg);
 
        if (ret < 0)
-               return sprintf(buf, "%#.2x=error %d\n", reg, ret);
-       return sprintf(buf, "%#.2x=%#.2x\n", reg, ret);
+               return sysfs_emit(buf, "%#.2x=error %d\n", reg, ret);
+       return sysfs_emit(buf, "%#.2x=%#.2x\n", reg, ret);
 }
 
 /* show all raw values of chip register, format per line: 'register=value' */
 
        if (ret < 0)
                return ret;
-       return sprintf(buf, "%d\n", ret);
+       return sysfs_emit(buf, "%d\n", ret);
 }
 
 /* set *_enable entries */
        ret = bq2415x_exec_command(bq, command);
        if (ret < 0)
                return ret;
-       return sprintf(buf, "%d\n", ret);
+       return sysfs_emit(buf, "%d\n", ret);
 }
 
 static DEVICE_ATTR(current_limit, S_IWUSR | S_IRUGO,
 
        struct charger_regulator *charger
                = container_of(attr, struct charger_regulator, attr_name);
 
-       return sprintf(buf, "%s\n", charger->regulator_name);
+       return sysfs_emit(buf, "%s\n", charger->regulator_name);
 }
 
 static ssize_t charger_state_show(struct device *dev,
        if (!charger->externally_control)
                state = regulator_is_enabled(charger->consumer);
 
-       return sprintf(buf, "%s\n", state ? "enabled" : "disabled");
+       return sysfs_emit(buf, "%s\n", state ? "enabled" : "disabled");
 }
 
 static ssize_t charger_externally_control_show(struct device *dev,
        struct charger_regulator *charger = container_of(attr,
                        struct charger_regulator, attr_externally_control);
 
-       return sprintf(buf, "%d\n", charger->externally_control);
+       return sysfs_emit(buf, "%d\n", charger->externally_control);
 }
 
 static ssize_t charger_externally_control_store(struct device *dev,
 
        if (ret < 0)
                return ret;
 
-       return sprintf(buf, "%d\n",
+       return sysfs_emit(buf, "%d\n",
                 !!(control_reg & DS2780_CONTROL_REG_PMOD));
 }
 
        if (ret < 0)
                return ret;
 
-       ret = sprintf(buf, "%d\n", sense_resistor);
+       ret = sysfs_emit(buf, "%d\n", sense_resistor);
        return ret;
 }
 
        if (ret < 0)
                return ret;
 
-       return sprintf(buf, "%d\n", rsgain);
+       return sysfs_emit(buf, "%d\n", rsgain);
 }
 
 static ssize_t ds2780_set_rsgain_setting(struct device *dev,
        if (ret < 0)
                return ret;
 
-       ret = sprintf(buf, "%d\n", sfr & DS2780_SFR_REG_PIOSC);
+       ret = sysfs_emit(buf, "%d\n", sfr & DS2780_SFR_REG_PIOSC);
        return ret;
 }
 
 
        if (ret < 0)
                return ret;
 
-       return sprintf(buf, "%d\n",
+       return sysfs_emit(buf, "%d\n",
                 !!(control_reg & DS2781_CONTROL_PMOD));
 }
 
        if (ret < 0)
                return ret;
 
-       ret = sprintf(buf, "%d\n", sense_resistor);
+       ret = sysfs_emit(buf, "%d\n", sense_resistor);
        return ret;
 }
 
        if (ret < 0)
                return ret;
 
-       return sprintf(buf, "%d\n", rsgain);
+       return sysfs_emit(buf, "%d\n", rsgain);
 }
 
 static ssize_t ds2781_set_rsgain_setting(struct device *dev,
        if (ret < 0)
                return ret;
 
-       ret = sprintf(buf, "%d\n", sfr & DS2781_SFR_PIOSC);
+       ret = sysfs_emit(buf, "%d\n", sfr & DS2781_SFR_PIOSC);
        return ret;
 }
 
 
                }
        }
 
-       return sprintf(buf, "%s\n", result);
+       return sysfs_emit(buf, "%s\n", result);
 }
 static DEVICE_ATTR_RO(charge_status);
 
        if (ret)
                return ret;
 
-       return sprintf(buf, "%d\n", val.intval);
+       return sysfs_emit(buf, "%d\n", val.intval);
 }
 static DEVICE_ATTR_RO(vbat);
 
        if (ret)
                return ret;
 
-       return sprintf(buf, "%d\n", val.intval);
+       return sysfs_emit(buf, "%d\n", val.intval);
 }
 static DEVICE_ATTR_RO(vbat_avg);
 
        if (ret)
                return ret;
 
-       return sprintf(buf, "%d\n", val.intval);
+       return sysfs_emit(buf, "%d\n", val.intval);
 }
 static DEVICE_ATTR_RO(ibat);
 
        if (ret)
                return ret;
 
-       return sprintf(buf, "%u\n", regval & BIT(2) ? 1 : 0);
+       return sysfs_emit(buf, "%u\n", regval & BIT(2) ? 1 : 0);
 }
 
 static ssize_t force_telemetry_store(struct device *dev,
        if (ret)
                return ret;
 
-       return sprintf(buf, "%u\n",
+       return sysfs_emit(buf, "%u\n",
                regval == LTC4162L_ARM_SHIP_MODE_MAGIC ? 1 : 0);
 }
 
 
                return ret;
 
        rval = (rval >> 4) * 10;
-       return sprintf(buf, "%d mohm\n", rval);
+       return sysfs_emit(buf, "%d mohm\n", rval);
 }
 
 static ssize_t batt_impedance_compensation_store(struct device *dev,
 
        if (ret < 0)
                return ret;
 
-       return sprintf(buf, "%d\n", ec_byte);
+       return sysfs_emit(buf, "%d\n", ec_byte);
 }
 
 static struct device_attribute olpc_bat_error = {
 
        u8 mbcs2 = pcf50633_reg_read(mbc->pcf, PCF50633_REG_MBCS2);
        u8 chgmod = (mbcs2 & PCF50633_MBCS2_MBC_MASK);
 
-       return sprintf(buf, "%d\n", chgmod);
+       return sysfs_emit(buf, "%d\n", chgmod);
 }
 static DEVICE_ATTR(chgmode, S_IRUGO, show_chgmode, NULL);
 
        else
                ma = 0;
 
-       return sprintf(buf, "%u\n", ma);
+       return sysfs_emit(buf, "%u\n", ma);
 }
 
 static ssize_t set_usblim(struct device *dev,
 
        ma = (mbc->pcf->pdata->charger_reference_current_ma *  mbcc5) >> 8;
 
-       return sprintf(buf, "%u\n", ma);
+       return sysfs_emit(buf, "%u\n", ma);
 }
 
 static ssize_t set_chglim(struct device *dev,
 
                usb_type = desc->usb_types[i];
 
                if (value->intval == usb_type) {
-                       count += sprintf(buf + count, "[%s] ",
+                       count += sysfs_emit_at(buf, count, "[%s] ",
                                         POWER_SUPPLY_USB_TYPE_TEXT[usb_type]);
                        match = true;
                } else {
-                       count += sprintf(buf + count, "%s ",
+                       count += sysfs_emit_at(buf, count, "%s ",
                                         POWER_SUPPLY_USB_TYPE_TEXT[usb_type]);
                }
        }
 
        if (ps_attr->text_values_len > 0 &&
            value.intval < ps_attr->text_values_len && value.intval >= 0) {
-               return sprintf(buf, "%s\n", ps_attr->text_values[value.intval]);
+               return sysfs_emit(buf, "%s\n", ps_attr->text_values[value.intval]);
        }
 
        switch (psp) {
                                                &value, buf);
                break;
        case POWER_SUPPLY_PROP_MODEL_NAME ... POWER_SUPPLY_PROP_SERIAL_NUMBER:
-               ret = sprintf(buf, "%s\n", value.strval);
+               ret = sysfs_emit(buf, "%s\n", value.strval);
                break;
        default:
-               ret = sprintf(buf, "%d\n", value.intval);
+               ret = sysfs_emit(buf, "%d\n", value.intval);
        }
 
        return ret;
 
                return 0;
        }
 
-       return sprintf(buf, "%s\n", charge);
+       return sysfs_emit(buf, "%s\n", charge);
 }
 
 static DEVICE_ATTR_RO(charger_state);