if (!i2c_check_functionality(
client->adapter,
I2C_FUNC_SMBUS_READ_BYTE_DATA
| I2C_FUNC_SMBUS_READ_WORD_DATA
| I2C_FUNC_SMBUS_READ_BLOCK_DATA)) return -ENODEV;
/* * By default this device doesn't boot to page 0, so set page 0 * to access all pmbus registers.
*/
i2c_smbus_write_byte_data(client, PMBUS_PAGE, 0);
/* Read Manufacturer id */
ret = i2c_smbus_read_block_data(client, PMBUS_MFR_ID, buf); if (ret < 0) {
dev_err(&client->dev, "Failed to read PMBUS_MFR_ID\n"); return ret;
} if (ret != 2 || strncmp(buf, "XP", 2)) {
dev_err(&client->dev, "MFR_ID unrecognized\n"); return -ENODEV;
}
info = devm_kmemdup(&client->dev, &pxe1610_info, sizeof(struct pmbus_driver_info),
GFP_KERNEL); if (!info) return -ENOMEM;
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.