/* * sysfs_streq() doesn't need the \n's, but we add them so the strings * will be shared with show_state(), above.
*/ if (sysfs_streq(buf, "enabled\n") || sysfs_streq(buf, "1"))
enabled = true; elseif (sysfs_streq(buf, "disabled\n") || sysfs_streq(buf, "0"))
enabled = false; else {
dev_err(dev, "Configuring invalid mode\n"); return count;
}
mutex_lock(&data->lock); if (enabled != data->enabled) { if (enabled)
ret = regulator_bulk_enable(data->num_supplies,
data->supplies); else
ret = regulator_bulk_disable(data->num_supplies,
data->supplies);
if (ret == 0)
data->enabled = enabled; else
dev_err(dev, "Failed to configure state: %d\n", ret);
}
mutex_unlock(&data->lock);
ret = devm_regulator_bulk_get_exclusive(&pdev->dev, drvdata->num_supplies,
drvdata->supplies); if (ret) return dev_err_probe(&pdev->dev, ret, "Failed to get supplies\n");
platform_set_drvdata(pdev, drvdata);
ret = sysfs_create_group(&pdev->dev.kobj, &attr_group); if (ret != 0) return ret;
if (pdata->init_on && !pdata->no_autoswitch) {
ret = regulator_bulk_enable(drvdata->num_supplies,
drvdata->supplies); if (ret) {
dev_err(&pdev->dev, "Failed to set initial state: %d\n", ret); goto err_enable;
}
}
ret = regulator_is_enabled(pdata->supplies[0].consumer); if (ret < 0) {
dev_err(&pdev->dev, "Failed to get regulator status\n"); goto err_enable;
}
drvdata->enabled = !!ret;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.