On Tue, Apr 21, 2015 at 4:01 PM, Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> wrote: > On Tue, Apr 21, 2015 at 03:17:03PM -0500, Rob Herring wrote: >> On Mon, Apr 20, 2015 at 5:21 PM, Dmitry Torokhov >> <dmitry.torokhov@xxxxxxxxx> wrote: >> > Current implementation forcibly suppresses creation of hwmon instances >> > for thermal zones defined in device tree data. Let's add a new property, >> > "linux,hwmon" to allow marking certain thermal zones as needing generic >> > hwmon interface. >> >> What is the decision process for deciding to add this property or not? > > A platform may have dedicated hwmon device/driver already covering the thermal > sensor responsible for this thermal zone, in which case another hwmon instance > is not needed. If there isn't such driver then we may want to create standard > hwmon instance so that userspace tools can use standard interface to access the > readings. This sounds similar to the general problem we have of how to have 2 drivers where one is preferred over another. Say a h/w block has 2 compatible strings (one being a generic string perhaps) and different drivers for each compatible string. The DT can't really know what drivers the kernel may or may not have, so I don't think the DT is the right place for this. You could have a compatible match list for hardware that doesn't have a driver and you want to use the standard/generic driver. That doesn't really solve the above problem, but does allow you to statically decide. Would something like that work for you? > Board code has hooks to support both options, but in case of DT we don't (hence > this patch). Yes, but that doesn't mean it gets moved to DT necessarily. Rob > >> >> >> > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> >> > --- >> > Documentation/devicetree/bindings/thermal/thermal.txt | 4 ++++ >> > drivers/thermal/of-thermal.c | 7 +++++-- >> > 2 files changed, 9 insertions(+), 2 deletions(-) >> > >> > diff --git a/Documentation/devicetree/bindings/thermal/thermal.txt b/Documentation/devicetree/bindings/thermal/thermal.txt >> > index 8a49362..0106f8f 100644 >> > --- a/Documentation/devicetree/bindings/thermal/thermal.txt >> > +++ b/Documentation/devicetree/bindings/thermal/thermal.txt >> > @@ -174,6 +174,10 @@ Optional property: >> > 2000mW, while on a 10'' tablet is around >> > 4500mW. >> > >> > +- linux,hwmon: A boolean property that instructs Linux thermal core >> > + to create an instance of hwmon device representing >> > + this thermal zone. >> > + >> > Note: The delay properties are bound to the maximum dT/dt (temperature >> > derivative over time) in two situations for a thermal zone: >> > (i) - when passive cooling is activated (polling-delay-passive); and >> > diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c >> > index 9e8c614..7b7a70c 100644 >> > --- a/drivers/thermal/of-thermal.c >> > +++ b/drivers/thermal/of-thermal.c >> > @@ -891,8 +891,11 @@ int __init of_parse_thermal_zones(void) >> > goto exit_free; >> > } >> > >> > - /* No hwmon because there might be hwmon drivers registering */ >> > - tzp->no_hwmon = true; >> > + /* >> > + * Do not attach hwmon device unless explicitly requested, >> > + * since there might be dedicated hwmon drivers registering. >> > + */ >> > + tzp->no_hwmon = !of_property_read_bool(child, "linux,hwmon"); >> > >> > if (!of_property_read_u32(child, "sustainable-power", &prop)) >> > tzp->sustainable_power = prop; >> > -- >> > 2.2.0.rc0.207.ga3a616c >> > >> > >> > -- >> > Dmitry > > -- > Dmitry -- 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