brintos

brintos / linux-shallow public Read only

0
0
Text · 1.8 KiB · 23f15b6 Raw
77 lines · c
1// SPDX-License-Identifier: GPL-2.0+2/*3 * Hardware monitoring driver for STMicroelectronics digital controller PM6764TR4 */5 6#include <linux/err.h>7#include <linux/i2c.h>8#include <linux/init.h>9#include <linux/kernel.h>10#include <linux/module.h>11#include <linux/pmbus.h>12#include "pmbus.h"13 14#define PM6764TR_PMBUS_READ_VOUT	0xD415 16static int pm6764tr_read_word_data(struct i2c_client *client, int page, int phase, int reg)17{18	int ret;19 20	switch (reg) {21	case PMBUS_VIRT_READ_VMON:22		ret = pmbus_read_word_data(client, page, phase, PM6764TR_PMBUS_READ_VOUT);23		break;24	default:25		ret = -ENODATA;26		break;27	}28	return ret;29}30 31static struct pmbus_driver_info pm6764tr_info = {32	.pages = 1,33	.format[PSC_VOLTAGE_IN] = linear,34	.format[PSC_VOLTAGE_OUT] = vid,35	.format[PSC_TEMPERATURE] = linear,36	.format[PSC_CURRENT_OUT] = linear,37	.format[PSC_POWER] = linear,38	.func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_IIN |  PMBUS_HAVE_PIN |39	    PMBUS_HAVE_IOUT | PMBUS_HAVE_POUT | PMBUS_HAVE_VMON |40		PMBUS_HAVE_STATUS_IOUT | PMBUS_HAVE_STATUS_VOUT |41		PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP,42	.read_word_data = pm6764tr_read_word_data,43};44 45static int pm6764tr_probe(struct i2c_client *client)46{47	return pmbus_do_probe(client, &pm6764tr_info);48}49 50static const struct i2c_device_id pm6764tr_id[] = {51	{"pm6764tr"},52	{}53};54MODULE_DEVICE_TABLE(i2c, pm6764tr_id);55 56static const struct of_device_id __maybe_unused pm6764tr_of_match[] = {57	{.compatible = "st,pm6764tr"},58	{}59};60 61/* This is the driver that will be inserted */62static struct i2c_driver pm6764tr_driver = {63	.driver = {64		   .name = "pm6764tr",65		   .of_match_table = of_match_ptr(pm6764tr_of_match),66		   },67	.probe = pm6764tr_probe,68	.id_table = pm6764tr_id,69};70 71module_i2c_driver(pm6764tr_driver);72 73MODULE_AUTHOR("Charles Hsu");74MODULE_DESCRIPTION("PMBus driver for  ST PM6764TR");75MODULE_LICENSE("GPL");76MODULE_IMPORT_NS(PMBUS);77