hwmon: (scmi) Enable sensors to assure they can be read

The SCMI specification states that SENSOR_CONFIG_SET is used to
enable/disable the sensors. The sensors can be disabled by default,
which is the case at least on NXP i.MX95. Explicitly trigger the
SENSOR_CONFIG_SET to enable the sensors, otherwise sensor read may
fail and won't return valid data.

Signed-off-by: Marek Vasut <marek.vasut@mailbox.org>
Link: https://lore.kernel.org/r/20251015114953.148706-1-marek.vasut@mailbox.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
Marek Vasut 2025-10-15 13:49:28 +02:00 committed by Guenter Roeck
parent 578652bef0
commit 72804d1631
1 changed files with 9 additions and 0 deletions

View File

@ -240,6 +240,8 @@ static int scmi_hwmon_probe(struct scmi_device *sdev)
const struct hwmon_channel_info **ptr_scmi_ci;
const struct scmi_handle *handle = sdev->handle;
struct scmi_protocol_handle *ph;
u32 sensor_config = FIELD_PREP(SCMI_SENS_CFG_SENSOR_ENABLED_MASK,
SCMI_SENS_CFG_SENSOR_ENABLE);
if (!handle)
return -ENODEV;
@ -339,6 +341,13 @@ static int scmi_hwmon_probe(struct scmi_device *sdev)
if (!sensor)
continue;
ret = sensor_ops->config_set(ph, i, sensor_config);
if (ret) {
dev_err(dev, "Error enabling sensor %s. err=%d\n",
sensor->name, ret);
continue;
}
/*
* Warn on any misconfiguration related to thermal zones but
* bail out of probing only on memory errors.