// SPDX-License-Identifier: BSD-3-Clause

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

/ {
	thermal-zones {
		pm6125-thermal {
			polling-delay-passive = <100>;

			thermal-sensors = <&pm6125_temp>;

			trips {
				trip0 {
					temperature = <95000>;
					hysteresis = <0>;
					type = "passive";
				};

				trip1 {
					temperature = <115000>;
					hysteresis = <0>;
					type = "hot";
				};

				trip2 {
					temperature = <145000>;
					hysteresis = <0>;
					type = "critical";
				};
			};
		};
	};
};

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

		pm6125_pon: pon@800 {
			compatible = "qcom,pm8998-pon";
			reg = <0x800>;
			mode-bootloader = <0x2>;
			mode-recovery = <0x1>;

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

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

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

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

			channel@0 {
				reg = <ADC5_REF_GND>;
				qcom,pre-scaling = <1 1>;
				label = "ref_gnd";
			};

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

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

			channel@83 {
				reg = <ADC5_VPH_PWR>;
				qcom,pre-scaling = <1 3>;
				label = "vph_pwr";
			};

			channel@85 {
				reg = <ADC5_VCOIN>;
				qcom,pre-scaling = <1 3>;
				label = "vcoin";
			};

			channel@4c {
				reg = <ADC5_XO_THERM_100K_PU>;
				qcom,pre-scaling = <1 1>;
				qcom,hw-settle-time = <200>;
				qcom,ratiometric;
				label = "xo_therm";
			};
		};

		pm6125_adc_tm: adc-tm@3500 {
			compatible = "qcom,spmi-adc-tm5";
			reg = <0x3500>;
			interrupts = <0x0 0x35 0x0 IRQ_TYPE_EDGE_RISING>;
			#address-cells = <1>;
			#size-cells = <0>;
			#thermal-sensor-cells = <1>;
			status = "disabled";
		};

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

		pm6125_gpios: gpio@c000 {
			compatible = "qcom,pm6125-gpio", "qcom,spmi-gpio";
			reg = <0xc000>;
			gpio-controller;
			gpio-ranges = <&pm6125_gpios 0 0 9>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};

	pmic@1 {
		compatible = "qcom,pm6125", "qcom,spmi-pmic";
		reg = <0x1 SPMI_USID>;
	};
};
