Re: [PATCH v17 1/5] thermal: rockchip: add driver for thermal
From: Eduardo Valentin <edubezval@gmail.com>
Date: 2014-11-07 23:41:35
Also in:
linux-arm-kernel, linux-pm, lkml
Hello Dmitry, On Thu, Nov 06, 2014 at 05:57:28PM -0800, Dmitry Torokhov wrote:
Hi Eduardo, On Thu, Nov 06, 2014 at 09:30:20PM -0400, Eduardo Valentin wrote:quoted
Hello Caesar, On Sat, Nov 01, 2014 at 10:44:29AM +0800, Caesar Wang wrote:quoted
Thermal is TS-ADC Controller module supports user-defined mode and automatic mode. User-defined mode refers,TSADC all the control signals entirely by software writing to register for direct control. Automaic mode refers to the module automatically poll TSADC output, and the results were checked.If you find that the temperature High in a period of time,an interrupt is generated to the processor down-measures taken;If the temperature over a period of time High, the resulting TSHUT gave CRU module,let it reset the entire chip, or via GPIO give PMIC.First thing, very good progress in this driver!quoted
Signed-off-by: zhaoyifeng <redacted> Signed-off-by: Caesar Wang <redacted> Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>Just for the sake of code / documentation history, this patch, which adds the driver, should come after patch 2, which adds dt documentation.quoted
--- drivers/thermal/Kconfig | 9 + drivers/thermal/Makefile | 1 + drivers/thermal/rockchip_thermal.c | 711 +++++++++++++++++++++++++++++++++++++ 3 files changed, 721 insertions(+) create mode 100644 drivers/thermal/rockchip_thermal.c<big cut>quoted
+static int +rockchip_thermal_register_sensor(struct platform_device *pdev, + struct rockchip_thermal_data *thermal, + struct rockchip_thermal_sensor *sensor, + enum sensor_id id) +{ + const struct rockchip_tsadc_chip *tsadc = thermal->chip; + int error; + + tsadc->set_tshut_mode(id, thermal->regs, thermal->tshut_mode); + tsadc->set_tshut_temp(id, thermal->regs, thermal->tshut_temp); + + sensor->thermal = thermal; + sensor->id = id; + sensor->tzd = thermal_zone_of_sensor_register(&pdev->dev, id, sensor, + rockchip_thermal_get_temp, + NULL, + rockchip_thermal_set_trips);So, did I miss something here? Looks like you have extended the of thermal, and I haven't seen the patch. CC [M] drivers/thermal/rockchip_thermal.o drivers/thermal/rockchip_thermal.c: In function `rockchip_thermal_register_sensor': drivers/thermal/rockchip_thermal.c:482:7: error: too many arguments to function `thermal_zone_of_sensor_register' rockchip_thermal_set_trips);Yes, it relies on patch by Mikko Perttunen adding support for hardware-supported trip points. It allows us to reduce polling frequency while still being able to react when we cross the tripping point. See https://lkml.org/lkml/2014/6/27/76
Yeah, that thread needs to be re-taken. Today I merged nvidia's driver, but only a simpler version of it. I expect that they take the missing parts through after updating / refreshing the patches. And on that front, as I requested, there must be also equivalent mapping in the thermal core, to avoid spreading / growing of-thermal as a secondary thermal API. One thing for sure that must be done is a little refactoring in the of-thermal registration functions. I had a similar discussion about this with Lukasz, who is also interested in improving the of-thermal callbacks. Cheers,
Thanks. -- Dmitry
Attachments
- signature.asc [application/pgp-signature] 473 bytes