// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2022, Linaro Limited
 */

#include <dt-bindings/iio/qcom,spmi-adc7-pm8350.h>
#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
#include <dt-bindings/iio/qcom,spmi-adc7-pmr735a.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/spmi/spmi.h>

/ {
	thermal-zones {
		pm8280_1_thermal: pm8280-1-thermal {
			polling-delay-passive = <100>;
			polling-delay = <0>;
			thermal-sensors = <&pm8280_1_temp_alarm>;

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

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

		pm8280_2_thermal: pm8280-2-thermal {
			polling-delay-passive = <100>;
			polling-delay = <0>;
			thermal-sensors = <&pm8280_2_temp_alarm>;

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

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

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

		pmk8280_pon: pon@1300 {
			compatible = "qcom,pmk8350-pon";
			reg = <0x1300>, <0x800>;
			reg-names = "hlos", "pbs";

			pmk8280_pon_pwrkey: pwrkey {
				compatible = "qcom,pmk8350-pwrkey";
				interrupts-extended = <&spmi_bus 0x0 0x13 0x7 IRQ_TYPE_EDGE_BOTH>;
				linux,code = <KEY_POWER>;
				status = "disabled";
			};

			pmk8280_pon_resin: resin {
				compatible = "qcom,pmk8350-resin";
				interrupts-extended = <&spmi_bus 0x0 0x13 0x6 IRQ_TYPE_EDGE_BOTH>;
				status = "disabled";
			};
		};

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

			channel@3 {
				reg = <PMK8350_ADC7_DIE_TEMP>;
				qcom,pre-scaling = <1 1>;
				label = "pmk8350_die_temp";
			};

			channel@44 {
				reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
				qcom,hw-settle-time = <200>;
				qcom,ratiometric;
				label = "pmk8350_xo_therm";
			};

			channel@103 {
				reg = <PM8350_ADC7_DIE_TEMP(1)>;
				qcom,pre-scaling = <1 1>;
				label = "pmc8280_1_die_temp";
			};

			channel@303 {
				reg = <PM8350_ADC7_DIE_TEMP(3)>;
				qcom,pre-scaling = <1 1>;
				label = "pmc8280_2_die_temp";
			};

			channel@403 {
				reg = <PMR735A_ADC7_DIE_TEMP>;
				qcom,pre-scaling = <1 1>;
				label = "pmr735a_die_temp";
			};
		};

		pmk8280_adc_tm: adc-tm@3400 {
			compatible = "qcom,spmi-adc-tm5-gen2";
			reg = <0x3400>;
			interrupts-extended = <&spmi_bus 0x0 0x34 0x0 IRQ_TYPE_EDGE_RISING>;
			#address-cells = <1>;
			#size-cells = <0>;
			#thermal-sensor-cells = <1>;
			status = "disabled";
		};

		pmk8280_rtc: rtc@6100 {
			compatible = "qcom,pmk8350-rtc";
			reg = <0x6100>, <0x6200>;
			reg-names = "rtc", "alarm";
			interrupts-extended = <&spmi_bus 0x0 0x62 0x1 IRQ_TYPE_EDGE_RISING>;
			wakeup-source;
			status = "disabled";
		};

		pmk8280_sdam_6: nvram@8500 {
			compatible = "qcom,spmi-sdam";
			reg = <0x8500>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0 0x8500 0x100>;
			status = "disabled";
		};
	};

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

		pm8280_1_temp_alarm: temp-alarm@a00 {
			compatible = "qcom,spmi-temp-alarm";
			reg = <0xa00>;
			interrupts-extended = <&spmi_bus 0x1 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
			io-channels = <&pmk8280_vadc PM8350_ADC7_DIE_TEMP(1)>;
			io-channel-names = "thermal";
			#thermal-sensor-cells = <0>;
		};

		pmc8280_1_gpios: gpio@8800 {
			compatible = "qcom,pm8350-gpio", "qcom,spmi-gpio";
			reg = <0x8800>;
			gpio-controller;
			gpio-ranges = <&pmc8280_1_gpios 0 0 10>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};

	pmc8280c: pmic@2 {
		compatible = "qcom,pm8350c", "qcom,spmi-pmic";
		reg = <0x2 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pmc8280c_gpios: gpio@8800 {
			compatible = "qcom,pm8350c-gpio", "qcom,spmi-gpio";
			reg = <0x8800>;
			gpio-controller;
			gpio-ranges = <&pmc8280c_gpios 0 0 9>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};

		pmc8280c_lpg: pwm {
			compatible = "qcom,pm8350c-pwm";

			#address-cells = <1>;
			#size-cells = <0>;

			#pwm-cells = <2>;

			status = "disabled";
		};
	};

	pmc8280_2: pmic@3 {
		compatible = "qcom,pm8350", "qcom,spmi-pmic";
		reg = <0x3 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pm8280_2_temp_alarm: temp-alarm@a00 {
			compatible = "qcom,spmi-temp-alarm";
			reg = <0xa00>;
			interrupts-extended = <&spmi_bus 0x2 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
			io-channels = <&pmk8280_vadc PM8350_ADC7_DIE_TEMP(3)>;
			io-channel-names = "thermal";
			#thermal-sensor-cells = <0>;
		};

		pmc8280_2_gpios: gpio@8800 {
			compatible = "qcom,pm8350-gpio", "qcom,spmi-gpio";
			reg = <0x8800>;
			gpio-controller;
			gpio-ranges = <&pmc8280_2_gpios 0 0 10>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};

	pmr735a: pmic@4 {
		compatible = "qcom,pmr735a", "qcom,spmi-pmic";
		reg = <0x4 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pmr735a_gpios: gpio@8800 {
			compatible = "qcom,pmr735a-gpio", "qcom,spmi-gpio";
			reg = <0x8800>;
			gpio-controller;
			gpio-ranges = <&pmr735a_gpios 0 0 4>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};
};
