// SPDX-License-Identifier: GPL-2.0 // // Register map access API - SPMI support // // Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. // // Based on regmap-i2c.c: // Copyright 2011 Wolfson Microelectronics plc // Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
/* * SPMI defines a more bandwidth-efficient 'Register 0 Write' sequence, * use it when possible.
*/ if (addr == 0 && val_size) {
err = spmi_register_zero_write(context, *data); if (err) goto err_out;
data++;
addr++;
val_size--;
}
while (val_size) {
err = spmi_register_write(context, addr, *data); if (err) goto err_out;
/* * Split accesses into two to take advantage of the more * bandwidth-efficient 'Extended Register Read' command when possible
*/ while (addr <= 0xFF && val_size) {
len = min_t(size_t, val_size, 16);
err = spmi_ext_register_read(context, addr, val, len); if (err) goto err_out;
addr += len;
val += len;
val_size -= len;
}
while (val_size) {
len = min_t(size_t, val_size, 8);
err = spmi_ext_register_readl(context, addr, val, len); if (err) goto err_out;
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.