Hello, This is the last batch of patches about the thermal driver that was suspended, waiting for the ICU/SEI series to be merged. Now that everything is ready in mainline, let's add hardware overheat interrupt support to this driver. Bindings and DT are updated accordingly. The interrupt will only be triggered if the platform goes above ~102°C (threshold set to 100°C, hysteresis to > 2°C). The interrupt property is of course not mandatory. In the mean time, I add myself to the MAINTAINERS file to receive and review possible fixes/new features. Thanks, Miquèl Changes since v3: ================= * Added Rob's Reviewed-by on cp110 bindings. * Addressed Rob comment on ap806 bindings by removing the reference to the interrupt parent. Changes since v2: ================= * Remove useless goto statement. * Move the hysteresis array out of the function using it and declare the array statically instead that doing so on the stack. * Remove unnecessary cast. * On error, avoid returning a value not compatible with irqreturn_t in the IRQ handler (and when doing so, re-enable interrupts first). This is simply handled with a goto statement. * 0 is not a valid interrupt, take this into account during variables validation. Changes *not* addressed since v2: ================================ * Overheat interrupt configuration has certain limitations on which Marc asked questions. I don't know if/what I need to change so keeping it like this for this version. * Eduardo pointed that once a critical level has been reached, there is no way back, the system will shutdown. I designed the handler to recover from that and to enable the IRQ again if needed, but maybe this is useless and should be removed. While waiting for his answer, I am sending another version and will correct in a v4 if needed. Changes since v1: ================= * Use a threaded IRQ handler to avoid a potential lock depency when notifying the core of an overheat situation. Miquel Raynal (6): thermal: armada: add overheat interrupt support MAINTAINERS: thermal: add entry for Marvell MVEBU thermal driver dt-bindings: ap806: document the thermal interrupt capabilities dt-bindings: cp110: document the thermal interrupt capabilities arm64: dts: marvell: add interrupt support to ap806 thermal node arm64: dts: marvell: add interrupt support to cp110 thermal node .../arm/marvell/ap806-system-controller.txt | 7 + .../arm/marvell/cp110-system-controller.txt | 9 + MAINTAINERS | 5 + arch/arm64/boot/dts/marvell/armada-ap806.dtsi | 18 +- arch/arm64/boot/dts/marvell/armada-cp110.dtsi | 15 +- drivers/thermal/armada_thermal.c | 270 +++++++++++++++++- 6 files changed, 317 insertions(+), 7 deletions(-) -- 2.19.1