mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
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:
parent
32fb9a8a9d
commit
2ebd4f2f2e
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user