Re: [PATCH V3 2/5] thermal: bcm2835: add thermal driver for bcm2835 soc
From: Zhang Rui <rui.zhang@intel.com>
Date: 2016-08-21 14:04:07
Also in:
linux-arm-kernel, linux-pm
On 日, 2016-08-21 at 21:37 +0800, Zhang Rui wrote:
On 五, 2016-08-19 at 11:59 -0700, Eric Anholt wrote:quoted
Zhang Rui [off-list ref] writes:quoted
On 四, 2016-08-18 at 11:39 -0700, Eric Anholt wrote:quoted
Eric Anholt [off-list ref] writes:quoted
kernel@martin.sperl.org writes:quoted
From: Martin Sperl <redacted> Add basic thermal driver for bcm2835 SOC. This driver currently relies on the firmware setting up the tsense HW block and does not set it up itself. Signed-off-by: Martin Sperl <redacted> ChangeLog: V1 -> V2: added specific settings depending on compatiblity added trip point based on register setting up ctrl-register if HW is not enabled by firmware as per recommendation of Eric (untested) check that clock frequency is in range (1.9 - 5MHz - as per comment in clk-bcm2835.c) ---diff --git a/drivers/thermal/bcm/Makefileb/drivers/thermal/bcm/Makefile new file mode 100644 index 0000000..13456d2--- /dev/null +++ b/drivers/thermal/bcm/Makefile@@ -0,0 +1 @@ +obj-$(CONFIG_BCM2835_THERMAL) :=bcm2835_thermal.odiff --git a/drivers/thermal/bcm/bcm2835_thermal.cb/drivers/thermal/bcm/bcm2835_thermal.c new file mode 100644 index 0000000..73138cb--- /dev/null +++ b/drivers/thermal/bcm/bcm2835_thermal.c +static const struct of_device_idbcm2835_thermal_of_match_table[]; +static int bcm2835_thermal_probe(struct platform_device *pdev) +{ + /* enable clock and check rate */ + clk_prepare_enable(data->clk); + rate = clk_get_rate(data->clk); + if ((rate < 1920000) || (rate > 5000000)) { + dev_warn(&pdev->dev, + "Clock %pCn is running at %pCr Hz, which is outside the recommended range of 1.9 to 5.0 MHz\n", + data->clk, data->clk); + } + + /* register it */ + tz = thermal_zone_device_register("bcm2835_thermal", + 1, 0, data, + &bcm2835_thermal _o ps, + NULL, 0, 0);I notice that the polling_delay is set to 0, but we're not using interrupts to trigger the trip. Is it valid to expose a trip without a polling_delay or interrupts? Should passive_delay be set as well? This is up to the thermal maintainers. As far as I'm concerned, it's: Acked-by: Eric Anholt <redacted> One it lands I'll pull the defconfig and DT bits.Ping on this question to thermal maintainers. I'd still love to see this driver land.hmmm, how is this driver supposed to work? With this patch set, I think the only benefit is that we can get the temperature and trip point information via thermal sysfs interface, but kernel thermal control is a no-op here, right?Yeah. It seems useful to be able to get the information. Once we land this, I hope someone can add interrupt support so that there are actual trip points.sounds reasonable to me.
BTW, can you add a "TODO" comment for this gap? thanks, rui
Another question, why you need a separate directory for a single file, bcm2835_thermal.c? thanks, rui -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html