Commit f63baced authored by Robert Marko's avatar Robert Marko Committed by Daniel Lezcano
Browse files

thermal/drivers/tsens: Allow configuring min and max trips



IPQ8074 and IPQ6018 dont support negative trip temperatures and support
up to 204 degrees C as the max trip temperature.

So, instead of always setting the -40 as min and 120 degrees C as max
allow it to be configured as part of the features.

Signed-off-by: default avatarRobert Marko <robimarko@gmail.com>
Reviewed-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220818220245.338396-3-robimarko@gmail.com


Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
parent 4360af35
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -273,6 +273,8 @@ static struct tsens_features tsens_8960_feat = {
	.adc		= 1,
	.adc		= 1,
	.srot_split	= 0,
	.srot_split	= 0,
	.max_sensors	= 11,
	.max_sensors	= 11,
	.trip_min_temp	= -40000,
	.trip_max_temp	= 120000,
};
};


struct tsens_plat_data data_8960 = {
struct tsens_plat_data data_8960 = {
+2 −0
Original line number Original line Diff line number Diff line
@@ -543,6 +543,8 @@ static struct tsens_features tsens_v0_1_feat = {
	.adc		= 1,
	.adc		= 1,
	.srot_split	= 1,
	.srot_split	= 1,
	.max_sensors	= 11,
	.max_sensors	= 11,
	.trip_min_temp	= -40000,
	.trip_max_temp	= 120000,
};
};


static const struct reg_field tsens_v0_1_regfields[MAX_REGFIELDS] = {
static const struct reg_field tsens_v0_1_regfields[MAX_REGFIELDS] = {
+2 −0
Original line number Original line Diff line number Diff line
@@ -306,6 +306,8 @@ static struct tsens_features tsens_v1_feat = {
	.adc		= 1,
	.adc		= 1,
	.srot_split	= 1,
	.srot_split	= 1,
	.max_sensors	= 11,
	.max_sensors	= 11,
	.trip_min_temp	= -40000,
	.trip_max_temp	= 120000,
};
};


static const struct reg_field tsens_v1_regfields[MAX_REGFIELDS] = {
static const struct reg_field tsens_v1_regfields[MAX_REGFIELDS] = {
+2 −0
Original line number Original line Diff line number Diff line
@@ -35,6 +35,8 @@ static struct tsens_features tsens_v2_feat = {
	.adc		= 0,
	.adc		= 0,
	.srot_split	= 1,
	.srot_split	= 1,
	.max_sensors	= 16,
	.max_sensors	= 16,
	.trip_min_temp	= -40000,
	.trip_max_temp	= 120000,
};
};


static const struct reg_field tsens_v2_regfields[MAX_REGFIELDS] = {
static const struct reg_field tsens_v2_regfields[MAX_REGFIELDS] = {
+2 −2
Original line number Original line Diff line number Diff line
@@ -573,8 +573,8 @@ static int tsens_set_trips(struct thermal_zone_device *tz, int low, int high)
	dev_dbg(dev, "[%u] %s: proposed thresholds: (%d:%d)\n",
	dev_dbg(dev, "[%u] %s: proposed thresholds: (%d:%d)\n",
		hw_id, __func__, low, high);
		hw_id, __func__, low, high);


	cl_high = clamp_val(high, -40000, 120000);
	cl_high = clamp_val(high, priv->feat->trip_min_temp, priv->feat->trip_max_temp);
	cl_low  = clamp_val(low, -40000, 120000);
	cl_low  = clamp_val(low, priv->feat->trip_min_temp, priv->feat->trip_max_temp);


	high_val = tsens_mC_to_hw(s, cl_high);
	high_val = tsens_mC_to_hw(s, cl_high);
	low_val  = tsens_mC_to_hw(s, cl_low);
	low_val  = tsens_mC_to_hw(s, cl_low);
Loading