#define PCT2075_REG_IDLE 0x04
struct lm75_data {
+ const char *label;
struct regmap *regmap;
u16 orig_conf;
u8 resolution; /* In bits, 9 to 16 */
return IRQ_HANDLED;
}
+static int lm75_read_string(struct device *dev, enum hwmon_sensor_types type,
+ u32 attr, int channel, const char **str)
+{
+ struct lm75_data *data = dev_get_drvdata(dev);
+
+ *str = data->label;
+
+ return 0;
+}
+
static int lm75_read(struct device *dev, enum hwmon_sensor_types type,
u32 attr, int channel, long *val)
{
switch (attr) {
case hwmon_temp_input:
return 0444;
+ case hwmon_temp_label:
+ /* Hide label node if label is not provided */
+ return config_data->label ? 0444 : 0;
case hwmon_temp_max:
case hwmon_temp_max_hyst:
return 0644;
HWMON_CHANNEL_INFO(chip,
HWMON_C_REGISTER_TZ | HWMON_C_UPDATE_INTERVAL),
HWMON_CHANNEL_INFO(temp,
- HWMON_T_INPUT | HWMON_T_MAX | HWMON_T_MAX_HYST |
+ HWMON_T_INPUT | HWMON_T_LABEL | HWMON_T_MAX | HWMON_T_MAX_HYST |
HWMON_T_ALARM),
NULL
};
static const struct hwmon_ops lm75_hwmon_ops = {
.is_visible = lm75_is_visible,
+ .read_string = lm75_read_string,
.read = lm75_read,
.write = lm75_write,
};
/* needed by custom regmap callbacks */
dev_set_drvdata(dev, data);
+ /* Save the connected input label if available */
+ device_property_read_string(dev, "label", &data->label);
+
data->kind = kind;
data->regmap = regmap;