#include <linux/hwmon.h>
#include <linux/units.h>
#include <ufs/ufshcd.h>
#include "ufshcd-priv.h"
struct ufs_hwmon_data { … };
static int ufs_read_temp_enable(struct ufs_hba *hba, u8 mask, long *val)
{ … }
static int ufs_get_temp(struct ufs_hba *hba, enum attr_idn idn, long *val)
{ … }
static int ufs_hwmon_read(struct device *dev, enum hwmon_sensor_types type, u32 attr, int channel,
long *val)
{ … }
static int ufs_hwmon_write(struct device *dev, enum hwmon_sensor_types type, u32 attr, int channel,
long val)
{ … }
static umode_t ufs_hwmon_is_visible(const void *data,
enum hwmon_sensor_types type, u32 attr,
int channel)
{ … }
static const struct hwmon_channel_info *const ufs_hwmon_info[] = …;
static const struct hwmon_ops ufs_hwmon_ops = …;
static const struct hwmon_chip_info ufs_hwmon_hba_info = …;
void ufs_hwmon_probe(struct ufs_hba *hba, u8 mask)
{ … }
void ufs_hwmon_remove(struct ufs_hba *hba)
{ … }
void ufs_hwmon_notify_event(struct ufs_hba *hba, u8 ee_mask)
{ … }