Qualcomm's TSENS driver

The TSENS driver supports reading temperature from sensors across
the MSM. The driver defaults to support a 10 bit ADC.

The driver uses the Thermal sysfs framework to provide thermal
clients the ability to enable/disable the sensors, read trip zones,
read cool/warm temperature thresholds, set temperature thresholds
for cool/warm notification and receive notification on temperature
threshold events.

TSENS node

Required properties:
- compatible : should be "qcom,msm-tsens" for MSM8974 TSENS driver.
- reg : offset and length of the TSENS registers.
- reg : offset and length of the QFPROM registers used for storing
	the calibration data for the individual sensors.
- reg-names : resource names used for the physical address of the TSENS
	      registers, the QFPROM efuse primary calibration address region,
	      Should be "tsens_physical" for physical address of the TSENS,
	      "tsens_eeprom_physical" for physical address where primary
	      calibration data is stored. This includes the backup
	      calibration address region if TSENS calibration data is stored
	      in the region.
- interrupts : TSENS interrupt for cool/warm temperature threshold.
- qcom,sensors : Total number of available Temperature sensors for TSENS.
- qcom,slope : One point calibration characterized slope data for each
	       sensor used to compute the offset. Slope is represented
	       as ADC code/DegC and the value is multipled by a factor
	       of 1000.
- qcom,calib-mode : Calibration masks to use to abstract the offset data from efuse.
		    Select from the following strings.
		    "fuse_map1" : Used for 8974/9x25 fuse calibration map.
		    "fuse_map2" : Used for 8x26 fuse calibration map.
		    "fuse_map3" : Used for 8x10 fuse calibration map.

Optional properties:
- qcom,calibration-less-mode : If present the pre-characterized data for offsets
		are used else it defaults to use calibration data from QFPROM.

Example:

tsens@fc4a8000 {
	compatible = "qcom,msm-tsens";
	reg = <0xfc4a8000 0x2000>,
	      <0xfc4b8000 0x1000>;
	reg-names = "tsens_physical",
		    "tsens_eeprom_physical";
	interrupts = <0 184 0>;
	qcom,calibration-less-mode;
	qcom,sensors = <11>;
	qcom,slope = <3200 3200 3200 3200 3200 3200 3200 3200 3200
			3200>;
	qcom,calib-mode = "fuse_map1";
};
