On Thu, Dec 23, 2010 at 08:36:04PM -0500, MyungJoo Ham wrote: [ ... ] > >> +int ntc_thermistor_read(struct device *dev) > >> +{ > >> + return _ntc_thermistor_read(dev_get_drvdata(dev)); > >> +} > > > > Function should be removed since it is no longer exported. > > > > I have been considering to use this function at the board file in the > kernel space. That means you would have to export the function, and we are back to square one, ie you really use a hwmon driver to provide functions to a non-hwmon driver. > However, if it is removed, the driver may have a weird callback (a) or > the board file > may need to access sysfs filesystem and depends on sysfs (b). > > (a): add "int (*read_thermistor)(struct platform_device *pdev)" at > struct ntc_thermistor_platform_data (in include/linux/ntc.h) and let > ntc_thermistor_probe provide callback thru pdata back to the caller of > platform_device_register(). > > (b): read "/sysfs/devices/platform/blahblah/temp1_input" > and keep /sysfs mounted always. > > Are these approaches fine? > Again, problem is that in order to have this functionality, you force hwmon to be active for the board you are talking about. This is, no matter how you do it, not the correct approach. Maybe someone wants to build a kernel with no hwmon support. Then what ? This won't work. If the adc values need to be used by non-hwmon driver(s), there should be an independent driver providing adc values, a hwmon driver to convert the adc values as appropriate via the hwmon sysfs ABI, and other drivers as needed, such as your board driver, doing whatever they want to do with the adc values. Thanks, Guenter _______________________________________________ lm-sensors mailing list lm-sensors@xxxxxxxxxxxxxx http://lists.lm-sensors.org/mailman/listinfo/lm-sensors