// 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/input/linux-event-codes.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/spmi/spmi.h>
#include <dt-bindings/thermal/thermal.h>

/ {
	thermal-zones {
		pm6150_thermal: pm6150-thermal {
			polling-delay-passive = <100>;

			thermal-sensors = <&pm6150_temp>;

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

				pm6150_crit: crit {
					temperature = <115000>;
					hysteresis = <0>;
					type = "critical";
				};
			};
		};
	};
};

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

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

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

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

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

		pm6150_typec: typec@1500 {
			compatible = "qcom,pm6150-typec",
				     "qcom,pm8150b-typec";
			reg = <0x1500>, <0x1700>;
			interrupts = <0x0 0x15 0x00 IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x15 0x01 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x15 0x02 IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x15 0x03 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x15 0x04 IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x15 0x05 IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x15 0x06 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x15 0x07 IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x17 0x00 IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x17 0x01 IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x17 0x02 IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x17 0x03 IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x17 0x04 IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x17 0x05 IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x17 0x06 IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x17 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",
					  "sig-tx",
					  "sig-rx",
					  "msg-tx",
					  "msg-rx",
					  "msg-tx-failed",
					  "msg-tx-discarded",
					  "msg-rx-discarded",
					  "fr-swap";
			status = "disabled";
		};

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

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

			channel@6 {
				reg = <ADC5_DIE_TEMP>;
				label = "die_temp";
			};
		};

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

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

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

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

		pm6150_vib: vibrator@5300 {
			compatible = "qcom,pm6150-vib", "qcom,pmi632-vib";
			reg = <0x5300>;
			status = "disabled";
		};
	};
};
