mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
thermal: of: improve of-thermal sensor registration API
Different drivers request API extensions in of-thermal. For this reason, additional callbacks are required to fit the new drivers needs. The current API implementation expects the registering sensor driver to provide a get_temp and get_trend callbacks as function parameters. As the amount of callbacks is growing, this patch changes the existing implementation to use a .ops field to hold all the of thermal callbacks to sensor drivers. This patch also changes the existing of-thermal users to fit the new API design. No functional change is introduced in this patch. Cc: Alexandre Courbot <[email protected]> Cc: [email protected] Cc: Grant Likely <[email protected]> Cc: Guenter Roeck <[email protected]> Cc: Jean Delvare <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: Rob Herring <[email protected]> Cc: Stephen Warren <[email protected]> Cc: Thierry Reding <[email protected]> Cc: Zhang Rui <[email protected]> Acked-by: Guenter Roeck <[email protected]> Tested-by: Mikko Perttunen <[email protected]> Reviewed-by: Mikko Perttunen <[email protected]> Reviewed-by: Alexandre Courbot <[email protected]> Reviewed-by: Lukasz Majewski <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
This commit is contained in:
parent
66fb848051
commit
2251aef64a
7 changed files with 62 additions and 37 deletions
|
|
@ -176,6 +176,10 @@ static struct attribute *lm75_attrs[] = {
|
|||
};
|
||||
ATTRIBUTE_GROUPS(lm75);
|
||||
|
||||
static const struct thermal_zone_of_device_ops lm75_of_thermal_ops = {
|
||||
.get_temp = lm75_read_temp,
|
||||
};
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
|
||||
/* device probe and removal */
|
||||
|
|
@ -291,10 +295,9 @@ lm75_probe(struct i2c_client *client, const struct i2c_device_id *id)
|
|||
if (IS_ERR(data->hwmon_dev))
|
||||
return PTR_ERR(data->hwmon_dev);
|
||||
|
||||
data->tz = thermal_zone_of_sensor_register(data->hwmon_dev,
|
||||
0,
|
||||
data->tz = thermal_zone_of_sensor_register(data->hwmon_dev, 0,
|
||||
data->hwmon_dev,
|
||||
lm75_read_temp, NULL);
|
||||
&lm75_of_thermal_ops);
|
||||
if (IS_ERR(data->tz))
|
||||
data->tz = NULL;
|
||||
|
||||
|
|
|
|||
|
|
@ -486,6 +486,10 @@ static const struct attribute_group ntc_attr_group = {
|
|||
.attrs = ntc_attributes,
|
||||
};
|
||||
|
||||
static const struct thermal_zone_of_device_ops ntc_of_thermal_ops = {
|
||||
.get_temp = ntc_read_temp,
|
||||
};
|
||||
|
||||
static int ntc_thermistor_probe(struct platform_device *pdev)
|
||||
{
|
||||
const struct of_device_id *of_id =
|
||||
|
|
@ -579,7 +583,7 @@ static int ntc_thermistor_probe(struct platform_device *pdev)
|
|||
pdev_id->name);
|
||||
|
||||
data->tz = thermal_zone_of_sensor_register(data->dev, 0, data->dev,
|
||||
ntc_read_temp, NULL);
|
||||
&ntc_of_thermal_ops);
|
||||
if (IS_ERR(data->tz)) {
|
||||
dev_dbg(&pdev->dev, "Failed to register to thermal fw.\n");
|
||||
data->tz = NULL;
|
||||
|
|
|
|||
|
|
@ -158,6 +158,10 @@ ATTRIBUTE_GROUPS(tmp102);
|
|||
#define TMP102_CONFIG (TMP102_CONF_TM | TMP102_CONF_EM | TMP102_CONF_CR1)
|
||||
#define TMP102_CONFIG_RD_ONLY (TMP102_CONF_R0 | TMP102_CONF_R1 | TMP102_CONF_AL)
|
||||
|
||||
static const struct thermal_zone_of_device_ops tmp102_of_thermal_ops = {
|
||||
.get_temp = tmp102_read_temp,
|
||||
};
|
||||
|
||||
static int tmp102_probe(struct i2c_client *client,
|
||||
const struct i2c_device_id *id)
|
||||
{
|
||||
|
|
@ -215,7 +219,7 @@ static int tmp102_probe(struct i2c_client *client,
|
|||
}
|
||||
tmp102->hwmon_dev = hwmon_dev;
|
||||
tmp102->tz = thermal_zone_of_sensor_register(hwmon_dev, 0, hwmon_dev,
|
||||
tmp102_read_temp, NULL);
|
||||
&tmp102_of_thermal_ops);
|
||||
if (IS_ERR(tmp102->tz))
|
||||
tmp102->tz = NULL;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue