[PATCH v17 1/5] thermal: rockchip: add driver for thermal

Dmitry Torokhov dmitry.torokhov at gmail.com
Thu Nov 6 17:57:28 PST 2014


Hi Eduardo,

On Thu, Nov 06, 2014 at 09:30:20PM -0400, Eduardo Valentin wrote:
> Hello Caesar,
> 
> On Sat, Nov 01, 2014 at 10:44:29AM +0800, Caesar Wang wrote:
> > 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! 
> 
> > Signed-off-by: zhaoyifeng <zyf at rock-chips.com>
> > Signed-off-by: Caesar Wang <caesar.wang at rock-chips.com>
> > Reviewed-by: Dmitry Torokhov <dmitry.torokhov at 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.
> 
> > ---
> >  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>
> 
> > +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

Thanks.

-- 
Dmitry



More information about the Linux-rockchip mailing list