Lines Matching +full:manufacturer +full:- +full:id

1 // SPDX-License-Identifier: GPL-2.0-or-later
4 * Step-Down Switching Regulators
50 enum chips id; member
111 int *idxp = file->private_data; in max20730_debugfs_read()
120 info = pmbus_get_driver_info(psu->client); in max20730_debugfs_read()
125 ret = VOLT_FROM_REG(data->mfr_voutmin * 10000); in max20730_debugfs_read()
130 val = (data->mfr_devset1 & MAX20730_MFR_DEVSET1_FSW_MASK) in max20730_debugfs_read()
148 val = (data->mfr_devset1 & MAX20730_MFR_DEVSET1_TSTAT_MASK) in max20730_debugfs_read()
161 val = (data->mfr_devset1 & MAX20730_MFR_DEVSET1_RGAIN_MASK) in max20730_debugfs_read()
164 if (data->id == max20734) { in max20730_debugfs_read()
174 } else if (data->id == max20730 || data->id == max20710) { in max20730_debugfs_read()
184 } else if (data->id == max20743) { in max20730_debugfs_read()
199 val = (data->mfr_devset1 & MAX20730_MFR_DEVSET1_VBOOT_MASK) in max20730_debugfs_read()
212 val = (data->mfr_devset2 & MAX20730_MFR_DEVSET2_VRATE) in max20730_debugfs_read()
225 ret = (data->mfr_devset2 & MAX20730_MFR_DEVSET2_OCPM_MASK) in max20730_debugfs_read()
230 val = (data->mfr_devset2 & MAX20730_MFR_DEVSET2_SS_MASK) in max20730_debugfs_read()
243 ret = (data->mfr_devset2 & MAX20730_MFR_DEVSET2_IMAX_MASK) in max20730_debugfs_read()
248 ret = i2c_smbus_read_byte_data(psu->client, PMBUS_OPERATION); in max20730_debugfs_read()
254 ret = i2c_smbus_read_byte_data(psu->client, PMBUS_ON_OFF_CONFIG); in max20730_debugfs_read()
260 ret = i2c_smbus_read_word_data(psu->client, in max20730_debugfs_read()
267 ret = i2c_smbus_read_byte_data(psu->client, PMBUS_VOUT_MODE); in max20730_debugfs_read()
273 ret = i2c_smbus_read_word_data(psu->client, PMBUS_VOUT_COMMAND); in max20730_debugfs_read()
282 ret = i2c_smbus_read_word_data(psu->client, PMBUS_VOUT_MAX); in max20730_debugfs_read()
316 data->mfr_devset2 = ret; in max20730_init_debugfs()
321 data->mfr_voutmin = ret; in max20730_init_debugfs()
323 psu = devm_kzalloc(&client->dev, sizeof(*psu), GFP_KERNEL); in max20730_init_debugfs()
325 return -ENOMEM; in max20730_init_debugfs()
326 psu->client = client; in max20730_init_debugfs()
330 return -ENOENT; in max20730_init_debugfs()
332 max20730_dir = debugfs_create_dir(client->name, debugfs); in max20730_init_debugfs()
335 psu->debugfs_entries[i] = i; in max20730_init_debugfs()
338 &psu->debugfs_entries[MAX20730_DEBUGFS_VOUT_MIN], in max20730_init_debugfs()
341 &psu->debugfs_entries[MAX20730_DEBUGFS_FREQUENCY], in max20730_init_debugfs()
344 &psu->debugfs_entries[MAX20730_DEBUGFS_PG_DELAY], in max20730_init_debugfs()
347 &psu->debugfs_entries[MAX20730_DEBUGFS_INTERNAL_GAIN], in max20730_init_debugfs()
350 &psu->debugfs_entries[MAX20730_DEBUGFS_BOOT_VOLTAGE], in max20730_init_debugfs()
353 &psu->debugfs_entries[MAX20730_DEBUGFS_OUT_V_RAMP_RATE], in max20730_init_debugfs()
356 &psu->debugfs_entries[MAX20730_DEBUGFS_OC_PROTECT_MODE], in max20730_init_debugfs()
359 &psu->debugfs_entries[MAX20730_DEBUGFS_SS_TIMING], in max20730_init_debugfs()
362 &psu->debugfs_entries[MAX20730_DEBUGFS_IMAX], in max20730_init_debugfs()
365 &psu->debugfs_entries[MAX20730_DEBUGFS_OPERATION], in max20730_init_debugfs()
368 &psu->debugfs_entries[MAX20730_DEBUGFS_ON_OFF_CONFIG], in max20730_init_debugfs()
371 &psu->debugfs_entries[MAX20730_DEBUGFS_SMBALERT_MASK], in max20730_init_debugfs()
374 &psu->debugfs_entries[MAX20730_DEBUGFS_VOUT_MODE], in max20730_init_debugfs()
377 &psu->debugfs_entries[MAX20730_DEBUGFS_VOUT_COMMAND], in max20730_init_debugfs()
380 &psu->debugfs_entries[MAX20730_DEBUGFS_VOUT_MAX], in max20730_init_debugfs()
404 int R = info->R[class] - 3; /* take milli-units into account */ in val_to_direct()
405 int b = info->b[class] * 1000; in val_to_direct()
408 d = v * info->m[class] + b; in val_to_direct()
423 int R = info->R[class] - 3; in direct_to_val()
424 int b = info->b[class] * 1000; in direct_to_val()
425 int m = info->m[class]; in direct_to_val()
435 d = (d - b) / m; in direct_to_val()
456 switch ((data->mfr_devset1 >> 11) & 0x3) { in max20730_read_word_data()
464 ret = -ENODATA; in max20730_read_word_data()
469 max_c = max_current[data->id][(data->mfr_devset1 >> 5) & 0x3]; in max20730_read_word_data()
474 if (ret > 0 && data->vout_voltage_divider[0] && data->vout_voltage_divider[1]) { in max20730_read_word_data()
475 u64 temp = DIV_ROUND_CLOSEST_ULL((u64)ret * data->vout_voltage_divider[1], in max20730_read_word_data()
476 data->vout_voltage_divider[0]); in max20730_read_word_data()
481 ret = -ENODATA; in max20730_read_word_data()
499 mutex_lock(&data->lock); in max20730_write_word_data()
500 devset1 = data->mfr_devset1; in max20730_write_word_data()
512 max_current[data->id], 4); in max20730_write_word_data()
516 ret = -ENODATA; in max20730_write_word_data()
520 if (!ret && devset1 != data->mfr_devset1) { in max20730_write_word_data()
524 data->mfr_devset1 = devset1; in max20730_write_word_data()
528 mutex_unlock(&data->lock); in max20730_write_word_data()
542 .R[PSC_TEMPERATURE] = -1,
547 .R[PSC_VOLTAGE_IN] = -2,
552 .R[PSC_CURRENT_OUT] = -1,
571 .R[PSC_TEMPERATURE] = -1,
576 .R[PSC_VOLTAGE_IN] = -2,
583 * at least on the evaulation boards. As a result, any in-driver
591 .R[PSC_CURRENT_OUT] = -1,
610 .R[PSC_TEMPERATURE] = -1,
615 .R[PSC_VOLTAGE_IN] = -2,
620 .R[PSC_CURRENT_OUT] = -1,
639 .R[PSC_TEMPERATURE] = -1,
644 .R[PSC_VOLTAGE_IN] = -2,
649 .R[PSC_CURRENT_OUT] = -1,
663 struct device *dev = &client->dev; in max20730_probe()
669 if (!i2c_check_functionality(client->adapter, in max20730_probe()
673 return -ENODEV; in max20730_probe()
677 dev_err(&client->dev, "Failed to read Manufacturer ID\n"); in max20730_probe()
682 dev_err(dev, "Unsupported Manufacturer ID '%s'\n", buf); in max20730_probe()
683 return -ENODEV; in max20730_probe()
698 dev_err(dev, "Failed to read Manufacturer Model\n"); in max20730_probe()
703 dev_err(dev, "Unsupported Manufacturer Model '%s'\n", buf); in max20730_probe()
704 return -ENODEV; in max20730_probe()
709 dev_err(dev, "Failed to read Manufacturer Revision\n"); in max20730_probe()
714 dev_err(dev, "Unsupported Manufacturer Revision '%s'\n", buf); in max20730_probe()
715 return -ENODEV; in max20730_probe()
718 if (client->dev.of_node) in max20730_probe()
721 chip_id = i2c_match_id(max20730_id, client)->driver_data; in max20730_probe()
725 return -ENOMEM; in max20730_probe()
726 data->id = chip_id; in max20730_probe()
727 mutex_init(&data->lock); in max20730_probe()
728 memcpy(&data->info, &max20730_info[chip_id], sizeof(data->info)); in max20730_probe()
729 if (of_property_read_u32_array(client->dev.of_node, "vout-voltage-divider", in max20730_probe()
730 data->vout_voltage_divider, in max20730_probe()
731 ARRAY_SIZE(data->vout_voltage_divider)) != 0) in max20730_probe()
732 memset(data->vout_voltage_divider, 0, sizeof(data->vout_voltage_divider)); in max20730_probe()
733 if (data->vout_voltage_divider[1] < data->vout_voltage_divider[0]) { in max20730_probe()
736 return -EINVAL; in max20730_probe()
742 data->mfr_devset1 = ret; in max20730_probe()
744 ret = pmbus_do_probe(client, &data->info); in max20730_probe()
787 MODULE_AUTHOR("Guenter Roeck <linux@roeck-us.net>");