在 2015/3/19 22:17, Mark Rutland 写道: > On Thu, Mar 19, 2015 at 07:57:27AM +0000, kongxinwei wrote: >> This patch adds the support for hisilicon thermal sensor, within >> hisilicon SoC. there will register sensors for thermal framework >> and use device tree to bind cooling device. >> >> Signed-off-by: Leo Yan <leo.yan@xxxxxxxxxx> >> Signed-off-by: kongxinwei <kong.kongxinwei@xxxxxxxxxxxxx> >> --- >> drivers/thermal/Kconfig | 8 + >> drivers/thermal/Makefile | 1 + >> drivers/thermal/hisi_thermal.c | 531 +++++++++++++++++++++++++++++++++++++++++ >> 3 files changed, 540 insertions(+) >> create mode 100644 drivers/thermal/hisi_thermal.c > > [...] > >> + ret = of_property_read_u32(np, "hisilicon,tsensor-lag-value", >> + &sensor->lag); > > This wasn't in the binding. > good comment, delete it. Xinwei > [...] > >> + ret = of_property_read_u32(np, "hisilicon,tsensor-thres-temp", >> + &sensor->thres_temp); >> + if (ret) { >> + dev_err(&pdev->dev, "failed to get thres value %d: %d\n", >> + index, ret); >> + return ret; >> + } >> + >> + ret = of_property_read_u32(np, "hisilicon,tsensor-reset-temp", >> + &sensor->reset_temp); >> + if (ret) { >> + dev_err(&pdev->dev, "failed to get reset value %d: %d\n", >> + index, ret); >> + return ret; >> + } > > I see now that these properties result in the HW being programmed. You > should figure out how to reconcile these with thermal-zone trip points > rather than having parallel properties. > oh,firstly,this "tsensor-thres-temp" property is threshold temperature value which causes interrupt function by setting thermal value register. "thermal -zone trip points" applies scanning mode to cause other function such as cooling freq .., but this "tsensor-thres-temp" property be used by interrupt mode. when scanning mode don't satisfies systerm demands, the interrut mode perfectly help scanning mode to complete function. "tsensor-thres-temp" temp- erature is higher than "thermal-zone trip points" temperature, so this " tsensor-thres-temp" property is secondary attribute. secondly, this "tsensor-reset-temp" property is hardware protect temperature which is close to or is below to burn out the SoC. When SoC temperature is "tsensor-reset-temp" temperature value, SoC will be force to reboot and ensure SoC not to burn out. So it don't conflict thermal-zone. >> + >> + if (of_property_read_bool(np, "hisilicon,tsensor-bind-irq")) { >> + >> + if (data->irq_bind_sensor != -1) >> + dev_warn(&pdev->dev, "irq has bound to index %d\n", >> + data->irq_bind_sensor); >> + >> + /* bind irq to this sensor */ >> + data->irq_bind_sensor = index; >> + } > > I don't see why this should be specified in the DT. Why do you believe > it should? > SoC include foure thermal sensor modules,every modules is able to cause interrupt,so binding a module to realize interupt function and i believe it should be specified. > [...] > >> +static int hisi_thermal_probe(struct platform_device *pdev) >> +{ >> + struct hisi_thermal_data *data; >> + struct resource *res; >> + int i; >> + int ret; >> + >> + if (!cpufreq_get_current_driver()) { >> + dev_dbg(&pdev->dev, "no cpufreq driver!"); >> + return -EPROBE_DEFER; >> + } > > Surely we care about not burning out the board even if we don't have > cpufreq? > > Is there any ordering guarantee between the probing of this driver and > cpufreq? > > Yes! It will use thermal framework to realize cpu cooling device function. > [...] > >> + data->clk = devm_clk_get(&pdev->dev, NULL); > > You gave this clock a name in the binding. Use it or drop it. > Thanks comment,use it. > Mark. > Xinwei > . > -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html