// SPDX-License-Identifier: GPL-2.0
#include <dt-bindings/iio/qcom,spmi-vadc.h>
#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/spmi/spmi.h>

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

			thermal-sensors = <&pm8994_temp>;

			trips {
				pm8994_alert0: pm8994-alert0 {
					temperature = <95000>;
					hysteresis = <2000>;
					type = "passive";
				};
				pm8994_crit: pm8994-crit {
					temperature = <125000>;
					hysteresis = <2000>;
					type = "critical";
				};
			};
		};
	};
};

&spmi_bus {

	pmic@0 {
		compatible = "qcom,pm8994", "qcom,spmi-pmic";
		reg = <0x0 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

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

		pm8994_pon: pon@800 {
			compatible = "qcom,pm8916-pon";
			reg = <0x800>;
			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>;
			};

			pm8994_resin: resin {
				compatible = "qcom,pm8941-resin";
				interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
				debounce = <15625>;
				bias-pull-up;
				status = "disabled";
			};
		};

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

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

			adc-chan@7 {
				reg = <VADC_VSYS>;
				qcom,pre-scaling = <1 3>;
				label = "vph_pwr";
			};
			adc-chan@8 {
				reg = <VADC_DIE_TEMP>;
				label = "die_temp";
			};
			adc-chan@9 {
				reg = <VADC_REF_625MV>;
				label = "ref_625mv";
			};
			adc-chan@a {
				reg = <VADC_REF_1250MV>;
				label = "ref_1250mv";
			};
			adc-chan@e {
				reg = <VADC_GND_REF>;
			};
			adc-chan@f {
				reg = <VADC_VDD_VADC>;
			};
		};

		pm8994_gpios: gpios@c000 {
			compatible = "qcom,pm8994-gpio", "qcom,spmi-gpio";
			reg = <0xc000>;
			gpio-controller;
			gpio-ranges = <&pm8994_gpios 0 0 22>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};

		pm8994_mpps: mpps@a000 {
			compatible = "qcom,pm8994-mpp";
			reg = <0xa000>;
			gpio-controller;
			#gpio-cells = <2>;
			interrupts = <0 0xa0 0 IRQ_TYPE_NONE>,
				     <0 0xa1 0 IRQ_TYPE_NONE>,
				     <0 0xa2 0 IRQ_TYPE_NONE>,
				     <0 0xa3 0 IRQ_TYPE_NONE>,
				     <0 0xa4 0 IRQ_TYPE_NONE>,
				     <0 0xa5 0 IRQ_TYPE_NONE>,
				     <0 0xa6 0 IRQ_TYPE_NONE>,
				     <0 0xa7 0 IRQ_TYPE_NONE>;
		};
	};

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

		pm8994_spmi_regulators: regulators {
			compatible = "qcom,pm8994-regulators";
		};
	};
};
