Thermal driver for MAX77620 Power management IC from Maxim Semiconductor.

Maxim Semiconductor MAX77620 supports alarm interrupts when its
die temperature crosses 120C and 140C. These threshold temperatures
are not configurable. Device does not provide the real temperature
of die other than just indicating whether temperature is above or
below threshold level.

Required properties:
-------------------
#thermal-sensor-cells:	Please refer <devicetree/bindings/thermal/thermal.txt>
			for more details.
			The value must be 0.

For more details, please refer generic thermal DT binding document
<devicetree/bindings/thermal/thermal.txt>.

Please refer <devicetree/bindings/mfd/max77620.txt> for mfd DT binding
document for the MAX77620.

Example:
--------
#include <dt-bindings/mfd/max77620.h>
#include <dt-bindings/thermal/thermal.h>
...

i2c@7000d000 {
	spmic: max77620@3c {
		compatible = "maxim,max77620";
		:::::
		#thermal-sensor-cells = <0>;
		:::
	};
};

cool_dev: cool-dev {
	compatible = "cooling-dev";
	#cooling-cells = <2>;
};

thermal-zones {
	PMIC-Die {
		polling-delay = <0>;
		polling-delay-passive = <0>;
		thermal-sensors = <&spmic>;

		trips {
			pmic_die_warn_temp_thresh: hot-die {
				temperature = <120000>;
				type = "hot";
				hysteresis = <0>;
			};

			pmic_die_cirt_temp_thresh: cirtical-die {
				temperature = <140000>;
				type = "critical";
				hysteresis = <0>;
			};
		};

		cooling-maps {
			map0 {
				trip = <&pmic_die_warn_temp_thresh>;
				cooling-device = <&cool_dev THERMAL_NO_LIMIT
						  THERMAL_NO_LIMIT>;
				contribution = <100>;
			};
		};
	};
};
