Merge tag 'for-linus-5.10b-rc1c-tag' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-microblaze.git] / drivers / thermal / sun8i_thermal.c
index 74d73be..f8b1307 100644 (file)
@@ -244,7 +244,7 @@ static int sun50i_h6_ths_calibrate(struct ths_device *tmdev,
        ft_temp = (caldata[0] & FT_TEMP_MASK) * 100;
 
        for (i = 0; i < tmdev->chip->sensor_num; i++) {
-               int sensor_reg = caldata[i + 1];
+               int sensor_reg = caldata[i + 1] & TEMP_CALIB_MASK;
                int cdata, offset;
                int sensor_temp = tmdev->chip->calc_temp(tmdev, i, sensor_reg);
 
@@ -590,6 +590,19 @@ static const struct ths_thermal_chip sun50i_a64_ths = {
        .calc_temp = sun8i_ths_calc_temp,
 };
 
+static const struct ths_thermal_chip sun50i_a100_ths = {
+       .sensor_num = 3,
+       .has_bus_clk_reset = true,
+       .ft_deviation = 8000,
+       .offset = 187744,
+       .scale = 672,
+       .temp_data_base = SUN50I_H6_THS_TEMP_DATA,
+       .calibrate = sun50i_h6_ths_calibrate,
+       .init = sun50i_h6_thermal_init,
+       .irq_ack = sun50i_h6_irq_ack,
+       .calc_temp = sun8i_ths_calc_temp,
+};
+
 static const struct ths_thermal_chip sun50i_h5_ths = {
        .sensor_num = 2,
        .has_mod_clk = true,
@@ -619,6 +632,7 @@ static const struct of_device_id of_ths_match[] = {
        { .compatible = "allwinner,sun8i-h3-ths", .data = &sun8i_h3_ths },
        { .compatible = "allwinner,sun8i-r40-ths", .data = &sun8i_r40_ths },
        { .compatible = "allwinner,sun50i-a64-ths", .data = &sun50i_a64_ths },
+       { .compatible = "allwinner,sun50i-a100-ths", .data = &sun50i_a100_ths },
        { .compatible = "allwinner,sun50i-h5-ths", .data = &sun50i_h5_ths },
        { .compatible = "allwinner,sun50i-h6-ths", .data = &sun50i_h6_ths },
        { /* sentinel */ },