linux/drivers/hwmon/smpro-hwmon.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Ampere Computing SoC's SMPro Hardware Monitoring Driver
 *
 * Copyright (c) 2022, Ampere Computing LLC
 */
#include <linux/bitfield.h>
#include <linux/bitops.h>
#include <linux/hwmon.h>
#include <linux/hwmon-sysfs.h>
#include <linux/kernel.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/property.h>
#include <linux/regmap.h>

/* Logical Power Sensor Registers */
#define SOC_TEMP
#define SOC_VRD_TEMP
#define DIMM_VRD_TEMP
#define CORE_VRD_TEMP
#define CH0_DIMM_TEMP
#define CH1_DIMM_TEMP
#define CH2_DIMM_TEMP
#define CH3_DIMM_TEMP
#define CH4_DIMM_TEMP
#define CH5_DIMM_TEMP
#define CH6_DIMM_TEMP
#define CH7_DIMM_TEMP
#define RCA_VRD_TEMP

#define CORE_VRD_PWR
#define SOC_PWR
#define DIMM_VRD1_PWR
#define DIMM_VRD2_PWR
#define CORE_VRD_PWR_MW
#define SOC_PWR_MW
#define DIMM_VRD1_PWR_MW
#define DIMM_VRD2_PWR_MW
#define RCA_VRD_PWR
#define RCA_VRD_PWR_MW

#define MEM_HOT_THRESHOLD
#define SOC_VR_HOT_THRESHOLD
#define CORE_VRD_VOLT
#define SOC_VRD_VOLT
#define DIMM_VRD1_VOLT
#define DIMM_VRD2_VOLT
#define RCA_VRD_VOLT

#define CORE_VRD_CURR
#define SOC_VRD_CURR
#define DIMM_VRD1_CURR
#define DIMM_VRD2_CURR
#define RCA_VRD_CURR

struct smpro_hwmon {};

struct smpro_sensor {};

static const struct smpro_sensor temperature[] =;

static const struct smpro_sensor voltage[] =;

static const struct smpro_sensor curr_sensor[] =;

static const struct smpro_sensor power[] =;

static int smpro_read_temp(struct device *dev, u32 attr, int channel, long *val)
{}

static int smpro_read_in(struct device *dev, u32 attr, int channel, long *val)
{}

static int smpro_read_curr(struct device *dev, u32 attr, int channel, long *val)
{}

static int smpro_read_power(struct device *dev, u32 attr, int channel, long *val_pwr)
{}

static int smpro_read(struct device *dev, enum hwmon_sensor_types type,
		      u32 attr, int channel, long *val)
{}

static int smpro_read_string(struct device *dev, enum hwmon_sensor_types type,
			     u32 attr, int channel, const char **str)
{}

static umode_t smpro_is_visible(const void *data, enum hwmon_sensor_types type,
				u32 attr, int channel)
{}

static const struct hwmon_channel_info * const smpro_info[] =;

static const struct hwmon_ops smpro_hwmon_ops =;

static const struct hwmon_chip_info smpro_chip_info =;

static int smpro_hwmon_probe(struct platform_device *pdev)
{}

static struct platform_driver smpro_hwmon_driver =;

module_platform_driver();

MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();