From: Guenter Roeck <linux@roeck-us.net>
To: Stephen Warren <swarren@wwwdotorg.org>
Cc: Eduardo Valentin <eduardo.valentin@ti.com>,
Grant Likely <grant.likely@linaro.org>,
Rob Herring <rob.herring@calxeda.com>,
devicetree@vger.kernel.org, wni@nvidia.com,
linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
lm-sensors@lm-sensors.org, l.stach@pengutronix.de
Subject: Re: [lm-sensors] [RESEND PATCH V1 0/9] thermal: introduce DT thermal zone build
Date: Mon, 22 Jul 2013 14:46:47 -0700 [thread overview]
Message-ID: <20130722214647.GA15765@roeck-us.net> (raw)
In-Reply-To: <51ED8B6F.6020700@wwwdotorg.org>
On Mon, Jul 22, 2013 at 12:43:43PM -0700, Stephen Warren wrote:
> On 07/21/2013 04:08 AM, Guenter Roeck wrote:
> > ... [a bunch of good points re: why DT shouldn't describe thermal
> > profiles]
>
> Yes, lots of good arguments there.
>
> So, where/how in your opinion should thermal profiles be defined, and
> how should they get into the kernel? The nice thing about DT is that
> it's a single place that describes the platform, with a well-defined
> method of getting that information into the kernel. What alternatives exist?
>
Excellent but quite different question. Quite frankly, I would love to be able
to use DT to describe a platform and its configuration and use instead of just
its hardware. Just like with thermal data, it would be great if I could use
devicetree information to describe limits for hwmon devices and configuration
information for all kinds of devices. This would simplify my life a lot.
Unfortunately, that is not how it works, so one ends up with pre-configuring
devices on ROMMON or secondary methods such as sensors.conf for hwmon devices.
Sure, that all works, but for embedded devices it means I have to re-build the
root file system each time a limit is changed. It _would_ be much simpler to
just be able to change the limit(s) in devicetree data and be done.
So, no, I don't have a good other solution. I have seen attempts to implement a
user-space 'parallel' devicetree, or the above mentioned sensors.conf file, but
nothing comprehensive. If you find a good generic solution, let me know.
Note that ACPI is an attempt to do that, but its scope is not limited to
describing the hardware, and it is not available on non-Intel embedded systems.
Also, it is typically controlled by another entity in a company (the BIOS
engineers), who tend to be highly resistive to changes. Modifying ACPI
data tends to be way more difficult than modifying devicetree data.
> > Other but related subject .. from a thermal / hwmon driver's perspective, if
> > such a driver supports thermal subsystem, it should just register itself as
> > thermal sensor device, because that is what it is. If and how it is tied to
> > cooling devices should be part of the thermal subsystem and be decided there.
>
> For audio, we have individual DT nodes that represent individual
> audio-related components such as audio controllers, audio CODECs, etc.
> We also have a "virtual" node that describes how those components
> interact and create a complete sound card. Would it make sense to do
> something similar with thermal sensors and cooling devices; represent
> them all individually, have them register themselves with the
> thermal/hwmon subsystem as you describe, but then have another "system
> level" node that describes how the system designer intended them to
> interact?
>
For device registration itself, definitely. An instance of a sensor driver
should not have to know how (or if) it is used by the system, just like a gpio
driver does not have to know if and how the gpio pins it provides are used.
Binding is the tricky question here, as it is all virtual and, as you said
yourself, describes the interaction and thus use of the various sensors and
cooling devices to accomplish the ultimate goal of keeping the system in an
acceptable temperature range. Hopefully you'll get an answer from the
devicetree experts if your intended devicetree usage of it is acceptable.
Guenter
next prev parent reply other threads:[~2013-07-22 21:46 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-17 15:17 [RESEND PATCH V1 0/9] thermal: introduce DT thermal zone build Eduardo Valentin
2013-07-17 15:17 ` [RESEND PATCH V1 1/9] cpufreq: cpufreq-cpu0: add dt node parsing for 'needs-cooling' Eduardo Valentin
2013-07-25 23:28 ` Rafael J. Wysocki
2013-07-26 13:27 ` Eduardo Valentin
2013-07-17 15:17 ` [RESEND PATCH V1 2/9] thermal: hwmon: move hwmon support to single file Eduardo Valentin
2013-07-17 16:29 ` [lm-sensors] " R, Durgadoss
2013-07-17 15:17 ` [RESEND PATCH V1 3/9] thermal: thermal_core: allow binding with limits on bind_params Eduardo Valentin
2013-07-17 16:25 ` [lm-sensors] " R, Durgadoss
2013-07-17 15:17 ` [RESEND PATCH V1 4/9] arm: dts: flag omap4430 with needs-cooling for cpu node Eduardo Valentin
2013-07-17 15:17 ` [RESEND PATCH V1 5/9] thermal: introduce device tree parser Eduardo Valentin
2013-07-17 15:17 ` [RESEND PATCH V1 6/9] thermal: ti-soc-thermal: use thermal DT infrastructure Eduardo Valentin
2013-07-17 15:17 ` [RESEND PATCH V1 7/9] arm: dts: add omap4430 thermal data Eduardo Valentin
2013-07-17 15:17 ` [RESEND PATCH V1 8/9] hwmon: lm75: expose to thermal fw via DT nodes Eduardo Valentin
2013-07-18 5:33 ` Wei Ni
2013-07-18 13:12 ` Eduardo Valentin
2013-07-19 7:43 ` Wei Ni
2013-07-18 7:22 ` Guenter Roeck
2013-07-17 15:17 ` [RESEND PATCH V1 9/9] hwmon: tmp102: " Eduardo Valentin
2013-07-18 7:23 ` Guenter Roeck
2013-07-17 22:09 ` [lm-sensors] [RESEND PATCH V1 0/9] thermal: introduce DT thermal zone build Guenter Roeck
2013-07-18 13:53 ` Eduardo Valentin
2013-07-18 17:18 ` Stephen Warren
2013-07-18 21:21 ` Guenter Roeck
2013-07-19 13:03 ` Eduardo Valentin
2013-07-19 18:48 ` Stephen Warren
[not found] ` <51E98A07.4050402-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-07-21 11:08 ` Guenter Roeck
2013-07-22 19:43 ` Stephen Warren
2013-07-22 21:46 ` Guenter Roeck [this message]
[not found] ` <51E7F341.8020508-l0cyMroinI0@public.gmane.org>
2013-07-18 21:11 ` Guenter Roeck
2013-07-19 13:38 ` Eduardo Valentin
[not found] ` <51E9413C.2080007-l0cyMroinI0@public.gmane.org>
2013-07-19 18:45 ` Stephen Warren
2013-07-19 18:56 ` Eduardo Valentin
[not found] ` <51E98BD3.8000307-l0cyMroinI0@public.gmane.org>
2013-07-21 10:14 ` Guenter Roeck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130722214647.GA15765@roeck-us.net \
--to=linux@roeck-us.net \
--cc=devicetree@vger.kernel.org \
--cc=eduardo.valentin@ti.com \
--cc=grant.likely@linaro.org \
--cc=l.stach@pengutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=lm-sensors@lm-sensors.org \
--cc=rob.herring@calxeda.com \
--cc=swarren@wwwdotorg.org \
--cc=wni@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).