// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (C) 2023 Luca Weiss <luca@z3ntu.xyz>
 */

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

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

			thermal-sensors = <&pmi632_temp>;

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

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

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

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

		pmi632_vbus: usb-vbus-regulator@1100 {
			compatible = "qcom,pmi632-vbus-reg", "qcom,pm8150b-vbus-reg";
			reg = <0x1100>;
			status = "disabled";
		};

		pmi632_typec: typec@1500 {
			compatible = "qcom,pmi632-typec";
			reg = <0x1500>;
			interrupts = <0x2 0x15 0x00 IRQ_TYPE_EDGE_RISING>,
				     <0x2 0x15 0x01 IRQ_TYPE_EDGE_BOTH>,
				     <0x2 0x15 0x02 IRQ_TYPE_EDGE_RISING>,
				     <0x2 0x15 0x03 IRQ_TYPE_EDGE_BOTH>,
				     <0x2 0x15 0x04 IRQ_TYPE_EDGE_RISING>,
				     <0x2 0x15 0x05 IRQ_TYPE_EDGE_RISING>,
				     <0x2 0x15 0x06 IRQ_TYPE_EDGE_BOTH>,
				     <0x2 0x15 0x07 IRQ_TYPE_EDGE_RISING>;
			interrupt-names = "or-rid-detect-change",
					  "vpd-detect",
					  "cc-state-change",
					  "vconn-oc",
					  "vbus-change",
					  "attach-detach",
					  "legacy-cable-detect",
					  "try-snk-src-detect";
			vdd-vbus-supply = <&pmi632_vbus>;

			status = "disabled";
		};

		pmi632_temp: temp-alarm@2400 {
			compatible = "qcom,spmi-temp-alarm";
			reg = <0x2400>;
			interrupts = <0x2 0x24 0x0 IRQ_TYPE_EDGE_BOTH>;
			#thermal-sensor-cells = <0>;
		};

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

			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@7 {
				reg = <ADC5_USB_IN_I>;
				qcom,pre-scaling = <1 1>;
				label = "usb_in_i_uv";
			};

			channel@8 {
				reg = <ADC5_USB_IN_V_16>;
				qcom,pre-scaling = <1 16>;
				label = "usb_in_v_div_16";
			};

			channel@9 {
				reg = <ADC5_CHG_TEMP>;
				qcom,pre-scaling = <1 1>;
				label = "chg_temp";
			};

			channel@4b {
				reg = <ADC5_BAT_ID_100K_PU>;
				qcom,hw-settle-time = <200>;
				qcom,pre-scaling = <1 1>;
				qcom,ratiometric;
				label = "bat_id";
			};

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

			channel@84 {
				reg = <ADC5_VBAT_SNS>;
				qcom,pre-scaling = <1 3>;
				label = "vbat_sns";
			};
		};

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

		pmi632_pbs_client3: pbs@7400 {
			compatible = "qcom,pmi632-pbs", "qcom,pbs";
			reg = <0x7400>;
		};

		pmi632_sdam_7: nvram@b600 {
			compatible = "qcom,spmi-sdam";
			reg = <0xb600>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0 0xb600 0x100>;
		};

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

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

		pmi632_lpg: pwm {
			compatible = "qcom,pmi632-lpg";

			nvmem = <&pmi632_sdam_7>;
			nvmem-names = "lpg_chan_sdam";
			qcom,pbs = <&pmi632_pbs_client3>;

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

			status = "disabled";
		};

		pmi632_vib: vibrator@5700 {
			compatible = "qcom,pmi632-vib";
			reg = <0x5700>;
			status = "disabled";
		};
	};
};
