// SPDX-License-Identifier: GPL-2.0-only OR BSD-3-Clause

#include <dt-bindings/spmi/spmi.h>
#include <dt-bindings/iio/qcom,spmi-vadc.h>

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

		pmp8074_adc: adc@3100 {
			compatible = "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>;
			};

			vref-vadc@2 {
				reg = <ADC5_VREF_VADC>;
				qcom,pre-scaling = <1 1>;
			};

			pmic_die: die-temp@6 {
				reg = <ADC5_DIE_TEMP>;
				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>;
			};

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

			pa_therm2: thermistor2@78 {
				reg = <ADC5_AMUX_THM2_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>;
			};

			vph-pwr@131 {
				reg = <ADC5_VPH_PWR>;
				qcom,pre-scaling = <1 3>;
			};
		};

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

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

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

		regulators {
			compatible = "qcom,pmp8074-regulators";

			s3: s3 {
				regulator-name = "vdd_s3";
				regulator-min-microvolt = <592000>;
				regulator-max-microvolt = <1064000>;
				regulator-always-on;
				regulator-boot-on;
			};

			s4: s4 {
				regulator-name = "vdd_s4";
				regulator-min-microvolt = <712000>;
				regulator-max-microvolt = <992000>;
				regulator-always-on;
				regulator-boot-on;
			};

			l11: l11 {
				regulator-name = "l11";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
			};
		};
	};
};
