thermal/drivers/qcom: 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> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Link: https://lore.kernel.org/r/20220804224349.1926752-12-daniel.lezcano@linexp.org Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
This commit is contained in:
parent
944441d878
commit
ca1b9a9eb3
|
@ -357,9 +357,9 @@ static irqreturn_t adc_tm5_gen2_isr(int irq, void *data)
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int adc_tm5_get_temp(void *data, int *temp)
|
static int adc_tm5_get_temp(struct thermal_zone_device *tz, int *temp)
|
||||||
{
|
{
|
||||||
struct adc_tm5_channel *channel = data;
|
struct adc_tm5_channel *channel = tz->devdata;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (!channel || !channel->iio)
|
if (!channel || !channel->iio)
|
||||||
|
@ -639,9 +639,9 @@ config_fail:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int adc_tm5_set_trips(void *data, int low, int high)
|
static int adc_tm5_set_trips(struct thermal_zone_device *tz, int low, int high)
|
||||||
{
|
{
|
||||||
struct adc_tm5_channel *channel = data;
|
struct adc_tm5_channel *channel = tz->devdata;
|
||||||
struct adc_tm5_chip *chip;
|
struct adc_tm5_chip *chip;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -660,7 +660,7 @@ static int adc_tm5_set_trips(void *data, int low, int high)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct thermal_zone_of_device_ops adc_tm5_thermal_ops = {
|
static const struct thermal_zone_device_ops adc_tm5_thermal_ops = {
|
||||||
.get_temp = adc_tm5_get_temp,
|
.get_temp = adc_tm5_get_temp,
|
||||||
.set_trips = adc_tm5_set_trips,
|
.set_trips = adc_tm5_set_trips,
|
||||||
};
|
};
|
||||||
|
@ -672,11 +672,10 @@ static int adc_tm5_register_tzd(struct adc_tm5_chip *adc_tm)
|
||||||
|
|
||||||
for (i = 0; i < adc_tm->nchannels; i++) {
|
for (i = 0; i < adc_tm->nchannels; i++) {
|
||||||
adc_tm->channels[i].chip = adc_tm;
|
adc_tm->channels[i].chip = adc_tm;
|
||||||
|
tzd = devm_thermal_of_zone_register(adc_tm->dev,
|
||||||
tzd = devm_thermal_zone_of_sensor_register(adc_tm->dev,
|
adc_tm->channels[i].channel,
|
||||||
adc_tm->channels[i].channel,
|
&adc_tm->channels[i],
|
||||||
&adc_tm->channels[i],
|
&adc_tm5_thermal_ops);
|
||||||
&adc_tm5_thermal_ops);
|
|
||||||
if (IS_ERR(tzd)) {
|
if (IS_ERR(tzd)) {
|
||||||
if (PTR_ERR(tzd) == -ENODEV) {
|
if (PTR_ERR(tzd) == -ENODEV) {
|
||||||
dev_warn(adc_tm->dev, "thermal sensor on channel %d is not used\n",
|
dev_warn(adc_tm->dev, "thermal sensor on channel %d is not used\n",
|
||||||
|
|
|
@ -186,9 +186,9 @@ static int qpnp_tm_update_temp_no_adc(struct qpnp_tm_chip *chip)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int qpnp_tm_get_temp(void *data, int *temp)
|
static int qpnp_tm_get_temp(struct thermal_zone_device *tz, int *temp)
|
||||||
{
|
{
|
||||||
struct qpnp_tm_chip *chip = data;
|
struct qpnp_tm_chip *chip = tz->devdata;
|
||||||
int ret, mili_celsius;
|
int ret, mili_celsius;
|
||||||
|
|
||||||
if (!temp)
|
if (!temp)
|
||||||
|
@ -263,9 +263,9 @@ skip:
|
||||||
return qpnp_tm_write(chip, QPNP_TM_REG_SHUTDOWN_CTRL1, reg);
|
return qpnp_tm_write(chip, QPNP_TM_REG_SHUTDOWN_CTRL1, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int qpnp_tm_set_trip_temp(void *data, int trip, int temp)
|
static int qpnp_tm_set_trip_temp(struct thermal_zone_device *tz, int trip, int temp)
|
||||||
{
|
{
|
||||||
struct qpnp_tm_chip *chip = data;
|
struct qpnp_tm_chip *chip = tz->devdata;
|
||||||
const struct thermal_trip *trip_points;
|
const struct thermal_trip *trip_points;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -283,7 +283,7 @@ static int qpnp_tm_set_trip_temp(void *data, int trip, int temp)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct thermal_zone_of_device_ops qpnp_tm_sensor_ops = {
|
static const struct thermal_zone_device_ops qpnp_tm_sensor_ops = {
|
||||||
.get_temp = qpnp_tm_get_temp,
|
.get_temp = qpnp_tm_get_temp,
|
||||||
.set_trip_temp = qpnp_tm_set_trip_temp,
|
.set_trip_temp = qpnp_tm_set_trip_temp,
|
||||||
};
|
};
|
||||||
|
@ -446,7 +446,7 @@ static int qpnp_tm_probe(struct platform_device *pdev)
|
||||||
* read the trip points. get_temp() returns the default temperature
|
* read the trip points. get_temp() returns the default temperature
|
||||||
* before the hardware initialization is completed.
|
* before the hardware initialization is completed.
|
||||||
*/
|
*/
|
||||||
chip->tz_dev = devm_thermal_zone_of_sensor_register(
|
chip->tz_dev = devm_thermal_of_zone_register(
|
||||||
&pdev->dev, 0, chip, &qpnp_tm_sensor_ops);
|
&pdev->dev, 0, chip, &qpnp_tm_sensor_ops);
|
||||||
if (IS_ERR(chip->tz_dev)) {
|
if (IS_ERR(chip->tz_dev)) {
|
||||||
dev_err(&pdev->dev, "failed to register sensor\n");
|
dev_err(&pdev->dev, "failed to register sensor\n");
|
||||||
|
|
|
@ -532,9 +532,9 @@ static irqreturn_t tsens_irq_thread(int irq, void *data)
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tsens_set_trips(void *_sensor, int low, int high)
|
static int tsens_set_trips(struct thermal_zone_device *tz, int low, int high)
|
||||||
{
|
{
|
||||||
struct tsens_sensor *s = _sensor;
|
struct tsens_sensor *s = tz->devdata;
|
||||||
struct tsens_priv *priv = s->priv;
|
struct tsens_priv *priv = s->priv;
|
||||||
struct device *dev = priv->dev;
|
struct device *dev = priv->dev;
|
||||||
struct tsens_irq_data d;
|
struct tsens_irq_data d;
|
||||||
|
@ -925,9 +925,9 @@ err_put_device:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tsens_get_temp(void *data, int *temp)
|
static int tsens_get_temp(struct thermal_zone_device *tz, int *temp)
|
||||||
{
|
{
|
||||||
struct tsens_sensor *s = data;
|
struct tsens_sensor *s = tz->devdata;
|
||||||
struct tsens_priv *priv = s->priv;
|
struct tsens_priv *priv = s->priv;
|
||||||
|
|
||||||
return priv->ops->get_temp(s, temp);
|
return priv->ops->get_temp(s, temp);
|
||||||
|
@ -991,7 +991,7 @@ static const struct of_device_id tsens_table[] = {
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(of, tsens_table);
|
MODULE_DEVICE_TABLE(of, tsens_table);
|
||||||
|
|
||||||
static const struct thermal_zone_of_device_ops tsens_of_ops = {
|
static const struct thermal_zone_device_ops tsens_of_ops = {
|
||||||
.get_temp = tsens_get_temp,
|
.get_temp = tsens_get_temp,
|
||||||
.set_trips = tsens_set_trips,
|
.set_trips = tsens_set_trips,
|
||||||
};
|
};
|
||||||
|
@ -1044,9 +1044,9 @@ static int tsens_register(struct tsens_priv *priv)
|
||||||
|
|
||||||
for (i = 0; i < priv->num_sensors; i++) {
|
for (i = 0; i < priv->num_sensors; i++) {
|
||||||
priv->sensor[i].priv = priv;
|
priv->sensor[i].priv = priv;
|
||||||
tzd = devm_thermal_zone_of_sensor_register(priv->dev, priv->sensor[i].hw_id,
|
tzd = devm_thermal_of_zone_register(priv->dev, priv->sensor[i].hw_id,
|
||||||
&priv->sensor[i],
|
&priv->sensor[i],
|
||||||
&tsens_of_ops);
|
&tsens_of_ops);
|
||||||
if (IS_ERR(tzd))
|
if (IS_ERR(tzd))
|
||||||
continue;
|
continue;
|
||||||
priv->sensor[i].tzd = tzd;
|
priv->sensor[i].tzd = tzd;
|
||||||
|
|
Loading…
Reference in New Issue