+ QFile file( "/sys/class/power_supply/bq27200-0/temp" );
+
+ //check if we can read a more accurate temperature (only for power kernel)
+ if (file.exists())
+ return QString( readSysFile( "class/power_supply/bq27200-0/temp" ) + " " + QString::fromUtf8("\302\260") + "C" );
+ else {
+ /*
+ We actually only need to read the raw temperature, but it appears that by also reading temp1_input
+ the raw temperature (temp1_input_raw) is being updated more frequently.
+ */
+ readSysFile( "devices/platform/omap34xx_temp/temp1_input" );
+
+ //read the current system temperature
+ QString tstring = readSysFile( "devices/platform/omap34xx_temp/temp1_input_raw" );
+ if (tstring == "0")
+ return tr( "Unknown" );
+
+ //convert it to an integer and calculate the approx. temperature from the raw value
+ int tint = tstring.toInt();
+ tint = ( 0.65 * tint );
+ tstring.setNum(tint);
+ return QString( tstring + " " + QString::fromUtf8("\302\260") + "C" );
+ }