mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
thermal/drivers/qcom/tsens-v0_1: Add support for MSM8226
The MSM8226 TSENS IP has 6 thermal sensors in a TSENS v0.1 block. The thermal sensors use non-standard slope values. Signed-off-by: Matti Lehtimäki <matti.lehtimaki@gmail.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Luca Weiss <luca@z3ntu.xyz> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Link: https://lore.kernel.org/r/20230507201225.89694-4-matti.lehtimaki@gmail.com
This commit is contained in:
committed by
Daniel Lezcano
parent
065ab3abf9
commit
598e1afca4
@@ -243,6 +243,18 @@ static int calibrate_8974(struct tsens_priv *priv)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int __init init_8226(struct tsens_priv *priv)
|
||||||
|
{
|
||||||
|
priv->sensor[0].slope = 2901;
|
||||||
|
priv->sensor[1].slope = 2846;
|
||||||
|
priv->sensor[2].slope = 3038;
|
||||||
|
priv->sensor[3].slope = 2955;
|
||||||
|
priv->sensor[4].slope = 2901;
|
||||||
|
priv->sensor[5].slope = 2846;
|
||||||
|
|
||||||
|
return init_common(priv);
|
||||||
|
}
|
||||||
|
|
||||||
static int __init init_8939(struct tsens_priv *priv) {
|
static int __init init_8939(struct tsens_priv *priv) {
|
||||||
priv->sensor[0].slope = 2911;
|
priv->sensor[0].slope = 2911;
|
||||||
priv->sensor[1].slope = 2789;
|
priv->sensor[1].slope = 2789;
|
||||||
@@ -258,7 +270,7 @@ static int __init init_8939(struct tsens_priv *priv) {
|
|||||||
return init_common(priv);
|
return init_common(priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* v0.1: 8916, 8939, 8974, 9607 */
|
/* v0.1: 8226, 8916, 8939, 8974, 9607 */
|
||||||
|
|
||||||
static struct tsens_features tsens_v0_1_feat = {
|
static struct tsens_features tsens_v0_1_feat = {
|
||||||
.ver_major = VER_0_1,
|
.ver_major = VER_0_1,
|
||||||
@@ -313,6 +325,19 @@ static const struct tsens_ops ops_v0_1 = {
|
|||||||
.get_temp = get_temp_common,
|
.get_temp = get_temp_common,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const struct tsens_ops ops_8226 = {
|
||||||
|
.init = init_8226,
|
||||||
|
.calibrate = tsens_calibrate_common,
|
||||||
|
.get_temp = get_temp_common,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct tsens_plat_data data_8226 = {
|
||||||
|
.num_sensors = 6,
|
||||||
|
.ops = &ops_8226,
|
||||||
|
.feat = &tsens_v0_1_feat,
|
||||||
|
.fields = tsens_v0_1_regfields,
|
||||||
|
};
|
||||||
|
|
||||||
static const struct tsens_ops ops_8916 = {
|
static const struct tsens_ops ops_8916 = {
|
||||||
.init = init_common,
|
.init = init_common,
|
||||||
.calibrate = calibrate_8916,
|
.calibrate = calibrate_8916,
|
||||||
|
|||||||
@@ -1095,6 +1095,9 @@ static const struct of_device_id tsens_table[] = {
|
|||||||
}, {
|
}, {
|
||||||
.compatible = "qcom,mdm9607-tsens",
|
.compatible = "qcom,mdm9607-tsens",
|
||||||
.data = &data_9607,
|
.data = &data_9607,
|
||||||
|
}, {
|
||||||
|
.compatible = "qcom,msm8226-tsens",
|
||||||
|
.data = &data_8226,
|
||||||
}, {
|
}, {
|
||||||
.compatible = "qcom,msm8916-tsens",
|
.compatible = "qcom,msm8916-tsens",
|
||||||
.data = &data_8916,
|
.data = &data_8916,
|
||||||
|
|||||||
@@ -635,7 +635,7 @@ int get_temp_common(const struct tsens_sensor *s, int *temp);
|
|||||||
extern struct tsens_plat_data data_8960;
|
extern struct tsens_plat_data data_8960;
|
||||||
|
|
||||||
/* TSENS v0.1 targets */
|
/* TSENS v0.1 targets */
|
||||||
extern struct tsens_plat_data data_8916, data_8939, data_8974, data_9607;
|
extern struct tsens_plat_data data_8226, data_8916, data_8939, data_8974, data_9607;
|
||||||
|
|
||||||
/* TSENS v1 targets */
|
/* TSENS v1 targets */
|
||||||
extern struct tsens_plat_data data_tsens_v1, data_8976, data_8956;
|
extern struct tsens_plat_data data_tsens_v1, data_8976, data_8956;
|
||||||
|
|||||||
Reference in New Issue
Block a user