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:	For more details, please refer to
			<devicetree/bindings/thermal/thermal-sensor.yaml>
			The value must be 0.

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

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>;
			};
		};
	};
};
