thermal/drivers/rcar: Switch to new of API

The thermal OF code has a new API allowing to migrate the OF
initialization to a simpler approach. The ops are no longer device
tree specific and are the generic ones provided by the core code.

Convert the ops to the thermal_zone_device_ops format and use the new
API to register the thermal zone with these generic ops.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linexp.org>
Tested-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Link: https://lore.kernel.org/r/20220804224349.1926752-18-daniel.lezcano@linexp.org
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
This commit is contained in:
Daniel Lezcano 2022-08-05 00:43:33 +02:00 committed by Daniel Lezcano
parent 32fb9a8a9d
commit 2ebd4f2f2e
2 changed files with 11 additions and 18 deletions

View File

@ -164,9 +164,9 @@ static int rcar_gen3_thermal_round(int temp)
return result * RCAR3_THERMAL_GRAN; return result * RCAR3_THERMAL_GRAN;
} }
static int rcar_gen3_thermal_get_temp(void *devdata, int *temp) static int rcar_gen3_thermal_get_temp(struct thermal_zone_device *tz, int *temp)
{ {
struct rcar_gen3_thermal_tsc *tsc = devdata; struct rcar_gen3_thermal_tsc *tsc = tz->devdata;
int mcelsius, val; int mcelsius, val;
int reg; int reg;
@ -203,9 +203,9 @@ static int rcar_gen3_thermal_mcelsius_to_temp(struct rcar_gen3_thermal_tsc *tsc,
return INT_FIXPT(val); return INT_FIXPT(val);
} }
static int rcar_gen3_thermal_set_trips(void *devdata, int low, int high) static int rcar_gen3_thermal_set_trips(struct thermal_zone_device *tz, int low, int high)
{ {
struct rcar_gen3_thermal_tsc *tsc = devdata; struct rcar_gen3_thermal_tsc *tsc = tz->devdata;
u32 irqmsk = 0; u32 irqmsk = 0;
if (low != -INT_MAX) { if (low != -INT_MAX) {
@ -225,7 +225,7 @@ static int rcar_gen3_thermal_set_trips(void *devdata, int low, int high)
return 0; return 0;
} }
static struct thermal_zone_of_device_ops rcar_gen3_tz_of_ops = { static struct thermal_zone_device_ops rcar_gen3_tz_of_ops = {
.get_temp = rcar_gen3_thermal_get_temp, .get_temp = rcar_gen3_thermal_get_temp,
.set_trips = rcar_gen3_thermal_set_trips, .set_trips = rcar_gen3_thermal_set_trips,
}; };
@ -508,8 +508,8 @@ static int rcar_gen3_thermal_probe(struct platform_device *pdev)
for (i = 0; i < priv->num_tscs; i++) { for (i = 0; i < priv->num_tscs; i++) {
struct rcar_gen3_thermal_tsc *tsc = priv->tscs[i]; struct rcar_gen3_thermal_tsc *tsc = priv->tscs[i];
zone = devm_thermal_zone_of_sensor_register(dev, i, tsc, zone = devm_thermal_of_zone_register(dev, i, tsc,
&rcar_gen3_tz_of_ops); &rcar_gen3_tz_of_ops);
if (IS_ERR(zone)) { if (IS_ERR(zone)) {
dev_err(dev, "Sensor %u: Can't register thermal zone\n", i); dev_err(dev, "Sensor %u: Can't register thermal zone\n", i);
ret = PTR_ERR(zone); ret = PTR_ERR(zone);
@ -560,7 +560,7 @@ static int __maybe_unused rcar_gen3_thermal_resume(struct device *dev)
priv->thermal_init(tsc); priv->thermal_init(tsc);
if (zone->ops->set_trips) if (zone->ops->set_trips)
rcar_gen3_thermal_set_trips(tsc, zone->prev_low_trip, rcar_gen3_thermal_set_trips(zone, zone->prev_low_trip,
zone->prev_high_trip); zone->prev_high_trip);
} }

View File

@ -271,13 +271,6 @@ static int rcar_thermal_get_current_temp(struct rcar_thermal_priv *priv,
return 0; return 0;
} }
static int rcar_thermal_of_get_temp(void *data, int *temp)
{
struct rcar_thermal_priv *priv = data;
return rcar_thermal_get_current_temp(priv, temp);
}
static int rcar_thermal_get_temp(struct thermal_zone_device *zone, int *temp) static int rcar_thermal_get_temp(struct thermal_zone_device *zone, int *temp)
{ {
struct rcar_thermal_priv *priv = rcar_zone_to_priv(zone); struct rcar_thermal_priv *priv = rcar_zone_to_priv(zone);
@ -323,8 +316,8 @@ static int rcar_thermal_get_trip_temp(struct thermal_zone_device *zone,
return 0; return 0;
} }
static const struct thermal_zone_of_device_ops rcar_thermal_zone_of_ops = { static struct thermal_zone_device_ops rcar_thermal_zone_of_ops = {
.get_temp = rcar_thermal_of_get_temp, .get_temp = rcar_thermal_get_temp,
}; };
static struct thermal_zone_device_ops rcar_thermal_zone_ops = { static struct thermal_zone_device_ops rcar_thermal_zone_ops = {
@ -534,7 +527,7 @@ static int rcar_thermal_probe(struct platform_device *pdev)
goto error_unregister; goto error_unregister;
if (chip->use_of_thermal) { if (chip->use_of_thermal) {
priv->zone = devm_thermal_zone_of_sensor_register( priv->zone = devm_thermal_of_zone_register(
dev, i, priv, dev, i, priv,
&rcar_thermal_zone_of_ops); &rcar_thermal_zone_of_ops);
} else { } else {