// 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@0 {
				reg = <ADC5_REF_GND>;
				qcom,pre-scaling = <1 1>;
			};

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

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

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

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

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

			xo_therm: xo_temp@76 {
				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>;

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