|
51 | 51 | /* DTS_DR register mask definitions */
|
52 | 52 | #define TS1_MFREQ_MASK GENMASK(15, 0)
|
53 | 53 |
|
| 54 | +/* DTS_ITENR register mask definitions */ |
| 55 | +#define ITENR_MASK (GENMASK(2, 0) | GENMASK(6, 4)) |
| 56 | + |
| 57 | +/* DTS_ICIFR register mask definitions */ |
| 58 | +#define ICIFR_MASK (GENMASK(2, 0) | GENMASK(6, 4)) |
| 59 | + |
54 | 60 | /* Less significant bit position definitions */
|
55 | 61 | #define TS1_T0_POS 16
|
56 | 62 | #define TS1_SMP_TIME_POS 16
|
@@ -330,12 +336,10 @@ static int stm_disable_irq(struct stm_thermal_sensor *sensor)
|
330 | 336 | {
|
331 | 337 | u32 value;
|
332 | 338 |
|
333 |
| - /* Disable IT generation for low and high thresholds */ |
| 339 | + /* Disable IT generation */ |
334 | 340 | value = readl_relaxed(sensor->base + DTS_ITENR_OFFSET);
|
335 |
| - writel_relaxed(value & ~(LOW_THRESHOLD | HIGH_THRESHOLD), |
336 |
| - sensor->base + DTS_ITENR_OFFSET); |
337 |
| - |
338 |
| - dev_dbg(sensor->dev, "%s: IT disabled on sensor side", __func__); |
| 341 | + value &= ~ITENR_MASK; |
| 342 | + writel_relaxed(value, sensor->base + DTS_ITENR_OFFSET); |
339 | 343 |
|
340 | 344 | return 0;
|
341 | 345 | }
|
@@ -645,6 +649,11 @@ static int stm_thermal_probe(struct platform_device *pdev)
|
645 | 649 | return PTR_ERR(sensor->clk);
|
646 | 650 | }
|
647 | 651 |
|
| 652 | + stm_disable_irq(sensor); |
| 653 | + |
| 654 | + /* Clear irq flags */ |
| 655 | + writel_relaxed(ICIFR_MASK, sensor->base + DTS_ICIFR_OFFSET); |
| 656 | + |
648 | 657 | /* Register IRQ into GIC */
|
649 | 658 | ret = stm_register_irq(sensor);
|
650 | 659 | if (ret)
|
|
0 commit comments