On Mon, Aug 13, 2012 at 12:57:03PM +0530, Bitan Biswas wrote: > Hi Guenter, > > Thank you for the guidance. > > >> > >>But looking at the hwmon linux documentation, seems the sensor > >>kernel drivers should report only raw readings. > >>The raw readings can be converted into required output, > >>e.g. temperature in this case, by respective user space implementation. > >> > >"raw" means the value as reported to the sensor. For example, for an ADC, the > >raw value means the voltage in mV as seen on the sensor's input pins. This > >voltage is the voltage to be reported. Converting it to a "real" voltage as, > >typically, determined by a set of voltage divider resistors should be done in > >user space. > > > >For temperature sensors this is a bit more tricky. Presumably you get readings > >from a thermistor or similar. The hwmon subsystem includes a driver for NTC > >thermistors; maybe you can get some ideas from it. Maybe you can even use > >it and/or extend it to support your hardware. > > The sensor is Tegra3 integrated thermal sensor. It is not a > thermistor, but gives a counter reading. The expressions to convert > the counter to temperature use characterization data and certain > initialization parameters. I looked at the NTC thermistor driver. > The expressions I need to use to convert counter value to > temperature would need floating point arguments. > > > > >>However because of my driver clients being in kernel space, I am > >>thinking of doing fixed point calculations in the sensor driver > >>and get the temperature corresponding to raw sensor readings. > >> > >>Please let me know if this a correct approach? > >> > >Question is really what chip you are using, and how exactly your hardware looks > >like. Do you use a generic ADC ? If so, is it already supported in the kernel ? > >How are the thermistor readings converted and reported to SW ? > > I think this is somewhat like an ADC but I need to implement the > expressions to convert the counter readings to temperature. Using > fixed point approximations instead of the floating point operands, > the expressions can be implemented in kernel. The expressions to be > used for calculation are specific to chip and I could not find a > existing driver that could support this sensor. > > There are expressions that can convert the counter readings to > temperature and vice-versa. > 1) SW could call the driver callbacks and get the temperature. > 2) SW could also request temperature thresholds to be configured for > thermal monitoring. > > The software that may need to use the temperature are some other > kernel drivers. > > Is it not allowed to implement the counter raw readings to > temperature in the hwmon sensor driver? > If you look at the NTC driver, that is pretty much exactly what it does. It accepts Ohm or Volt as input, and calculates a temperature from it. One can think of a counter reading as to be similar to a resistance reading; if you do that, you have a good starting point for your driver. You can use either fixed point approximations, or a table approach as in the NTC driver. Thanks, Guenter _______________________________________________ lm-sensors mailing list lm-sensors@xxxxxxxxxxxxxx http://lists.lm-sensors.org/mailman/listinfo/lm-sensors