Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/hwmon/pmbus/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 3 kB image not shown  

Quelle  adp1050.c   Sprache: C

 
// SPDX-License-Identifier: GPL-2.0
/*
 * Hardware monitoring driver for Analog Devices ADP1050
 *
 * Copyright (C) 2024 Analog Devices, Inc.
 */

#include <linux/bits.h>
#include <linux/i2c.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>

#include "pmbus.h"

#if IS_ENABLED(CONFIG_SENSORS_ADP1050_REGULATOR)
static const struct regulator_desc adp1050_reg_desc[] = {
 PMBUS_REGULATOR_ONE("vout"),
};
#endif /* CONFIG_SENSORS_ADP1050_REGULATOR */

static struct pmbus_driver_info adp1050_info = {
 .pages = 1,
 .format[PSC_VOLTAGE_IN] = linear,
 .format[PSC_VOLTAGE_OUT] = linear,
 .format[PSC_CURRENT_IN] = linear,
 .format[PSC_TEMPERATURE] = linear,
 .func[0] = PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT
  | PMBUS_HAVE_VIN | PMBUS_HAVE_STATUS_INPUT
  | PMBUS_HAVE_IIN | PMBUS_HAVE_TEMP
  | PMBUS_HAVE_STATUS_TEMP,
};

static struct pmbus_driver_info adp1051_info = {
 .pages = 1,
 .format[PSC_VOLTAGE_IN] = linear,
 .format[PSC_VOLTAGE_OUT] = linear,
 .format[PSC_CURRENT_IN] = linear,
 .format[PSC_TEMPERATURE] = linear,
 .func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_IIN
  | PMBUS_HAVE_VOUT | PMBUS_HAVE_IOUT
  | PMBUS_HAVE_TEMP
  | PMBUS_HAVE_STATUS_VOUT | PMBUS_HAVE_STATUS_IOUT
  | PMBUS_HAVE_STATUS_INPUT
  | PMBUS_HAVE_STATUS_TEMP,
};

static struct pmbus_driver_info adp1055_info = {
 .pages = 1,
 .format[PSC_VOLTAGE_IN] = linear,
 .format[PSC_VOLTAGE_OUT] = linear,
 .format[PSC_CURRENT_IN] = linear,
 .format[PSC_TEMPERATURE] = linear,
 .func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_IIN
  | PMBUS_HAVE_VOUT | PMBUS_HAVE_IOUT
  | PMBUS_HAVE_TEMP2 | PMBUS_HAVE_TEMP3
  | PMBUS_HAVE_POUT
  | PMBUS_HAVE_STATUS_VOUT | PMBUS_HAVE_STATUS_IOUT
  | PMBUS_HAVE_STATUS_INPUT
  | PMBUS_HAVE_STATUS_TEMP,
};

static struct pmbus_driver_info ltp8800_info = {
 .pages = 1,
 .format[PSC_VOLTAGE_IN] = linear,
 .format[PSC_VOLTAGE_OUT] = linear,
 .format[PSC_CURRENT_IN] = linear,
 .format[PSC_TEMPERATURE] = linear,
 .func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_IIN
  | PMBUS_HAVE_VOUT | PMBUS_HAVE_IOUT
  | PMBUS_HAVE_TEMP
  | PMBUS_HAVE_POUT
  | PMBUS_HAVE_STATUS_VOUT
  | PMBUS_HAVE_STATUS_INPUT
  | PMBUS_HAVE_STATUS_TEMP,
#if IS_ENABLED(CONFIG_SENSORS_ADP1050_REGULATOR)
 .num_regulators = 1,
 .reg_desc = adp1050_reg_desc,
#endif
};

static int adp1050_probe(struct i2c_client *client)
{
 struct pmbus_driver_info *info;

 info = (struct pmbus_driver_info *)i2c_get_match_data(client);
 if (!info)
  return -ENODEV;

 return pmbus_do_probe(client, info);
}

static const struct i2c_device_id adp1050_id[] = {
 { .name = "adp1050", .driver_data = (kernel_ulong_t)&adp1050_info },
 { .name = "adp1051", .driver_data = (kernel_ulong_t)&adp1051_info },
 { .name = "adp1055", .driver_data = (kernel_ulong_t)&adp1055_info },
 { .name = "ltp8800", .driver_data = (kernel_ulong_t)<p8800_info },
 {}
};
MODULE_DEVICE_TABLE(i2c, adp1050_id);

static const struct of_device_id adp1050_of_match[] = {
 { .compatible = "adi,adp1050", .data = &adp1050_info },
 { .compatible = "adi,adp1051", .data = &adp1051_info },
 { .compatible = "adi,adp1055", .data = &adp1055_info },
 { .compatible = "adi,ltp8800", .data = <p8800_info },
 {}
};
MODULE_DEVICE_TABLE(of, adp1050_of_match);

static struct i2c_driver adp1050_driver = {
 .driver = {
  .name = "adp1050",
  .of_match_table = adp1050_of_match,
 },
 .probe = adp1050_probe,
 .id_table = adp1050_id,
};
module_i2c_driver(adp1050_driver);

MODULE_AUTHOR("Radu Sabau ");
MODULE_DESCRIPTION("Analog Devices ADP1050 HWMON PMBus Driver");
MODULE_LICENSE("GPL");
MODULE_IMPORT_NS("PMBUS");

Messung V0.5
C=97 H=95 G=95

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.