// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2018, Linaro Limited

#include <dt-bindings/spmi/spmi.h>
#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/iio/qcom,spmi-vadc.h>
#include <dt-bindings/thermal/thermal.h>

/ {
	thermal-zones {
		pms405 {
			polling-delay-passive = <250>;
			polling-delay = <1000>;

			thermal-sensors = <&pms405_temp>;

			trips {
				pms405_alert0: pms405-alert0 {
					temperature = <105000>;
					hysteresis = <2000>;
					type = "passive";
				};
				pms405_crit: pms405-crit {
					temperature = <125000>;
					hysteresis = <2000>;
					type = "critical";
				};
			};
		};
	};
};

&spmi_bus {
	pms405_0: pms405@0 {
		compatible = "qcom,spmi-pmic";
		reg = <0x0 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pms405_gpios: gpio@c000 {
			compatible = "qcom,pms405-gpio";
			reg = <0xc000>;
			gpio-controller;
			#gpio-cells = <2>;
			interrupts = <0 0xc0 0 IRQ_TYPE_NONE>,
				<0 0xc1 0 IRQ_TYPE_NONE>,
				<0 0xc2 0 IRQ_TYPE_NONE>,
				<0 0xc3 0 IRQ_TYPE_NONE>,
				<0 0xc4 0 IRQ_TYPE_NONE>,
				<0 0xc5 0 IRQ_TYPE_NONE>,
				<0 0xc6 0 IRQ_TYPE_NONE>,
				<0 0xc7 0 IRQ_TYPE_NONE>,
				<0 0xc8 0 IRQ_TYPE_NONE>,
				<0 0xc9 0 IRQ_TYPE_NONE>,
				<0 0xca 0 IRQ_TYPE_NONE>,
				<0 0xcb 0 IRQ_TYPE_NONE>;
		};

		pon@800 {
			compatible = "qcom,pms405-pon";
			reg = <0x0800>;
			mode-bootloader = <0x2>;
			mode-recovery = <0x1>;

			pwrkey {
				compatible = "qcom,pm8941-pwrkey";
				interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
				debounce = <15625>;
				bias-pull-up;
				linux,code = <KEY_POWER>;
			};
		};

		pms405_temp: temp-alarm@2400 {
			compatible = "qcom,spmi-temp-alarm";
			reg = <0x2400>;
			interrupts = <0 0x24 0 IRQ_TYPE_EDGE_RISING>;
			io-channels = <&pms405_adc ADC5_DIE_TEMP>;
			io-channel-names = "thermal";
			#thermal-sensor-cells = <0>;
		};

		pms405_adc: adc@3100 {
			compatible = "qcom,pms405-adc", "qcom,spmi-adc-rev2";
			reg = <0x3100>;
			interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
			#address-cells = <1>;
			#size-cells = <0>;
			#io-channel-cells = <1>;

			ref_gnd {
				reg = <ADC5_REF_GND>;
				qcom,pre-scaling = <1 1>;
			};

			vref_1p25 {
				reg = <ADC5_1P25VREF>;
				qcom,pre-scaling = <1 1>;
			};

			pon_1: vph_pwr {
				reg = <ADC5_VPH_PWR>;
				qcom,pre-scaling = <1 3>;
			};

			die_temp {
				reg = <ADC5_DIE_TEMP>;
				qcom,pre-scaling = <1 1>;
			};

			pa_therm1: thermistor1 {
				reg = <ADC5_AMUX_THM1_100K_PU>;
				qcom,ratiometric;
				qcom,hw-settle-time = <200>;
				qcom,pre-scaling = <1 1>;
			};

			pa_therm3: thermistor3 {
				reg = <ADC5_AMUX_THM3_100K_PU>;
				qcom,ratiometric;
				qcom,hw-settle-time = <200>;
				qcom,pre-scaling = <1 1>;
			};

			xo_therm: xo_temp {
				reg = <ADC5_XO_THERM_100K_PU>;
				qcom,ratiometric;
				qcom,hw-settle-time = <200>;
				qcom,pre-scaling = <1 1>;
			};
		};

		rtc@6000 {
			compatible = "qcom,pm8941-rtc";
			reg = <0x6000>;
			reg-names = "rtc", "alarm";
			interrupts = <0x0 0x61 0x1 IRQ_TYPE_NONE>;
		};
	};

	pms405_1: pms405@1 {
		compatible = "qcom,spmi-pmic";
		reg = <0x1 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pms405_spmi_regulators: regulators {
			compatible = "qcom,pms405-regulators";
		};
	};
};
