// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
 */

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

/ {
	thermal-zones {
		pm6150l-thermal {
			polling-delay-passive = <0>;
			polling-delay = <0>;

			thermal-sensors = <&pm6150l_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 {
	pm6150l_lsid4: pmic@4 {
		compatible = "qcom,pm6150l", "qcom,spmi-pmic";
		reg = <0x4 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

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

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

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

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

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

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

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

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

	pm6150l_lsid5: pmic@5 {
		compatible = "qcom,pm6150l", "qcom,spmi-pmic";
		reg = <0x5 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pm6150l_flash: led-controller@d300 {
			compatible = "qcom,pm6150l-flash-led", "qcom,spmi-flash-led";
			reg = <0xd300>;
			status = "disabled";
		};

		pm6150l_wled: leds@d800 {
			compatible = "qcom,pm6150l-wled";
			reg = <0xd800>, <0xd900>;
			interrupts = <0x5 0xd8 0x1 IRQ_TYPE_EDGE_RISING>;
			interrupt-names = "ovp";
			label = "backlight";

			status = "disabled";
		};
	};
};
