// SPDX-License-Identifier: GPL-2.0
#include <dt-bindings/iio/qcom,spmi-vadc.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/spmi/spmi.h>


/ {
	thermal-zones {
		pm8941-thermal {
			polling-delay-passive = <100>;
			polling-delay = <0>;
			thermal-sensors = <&pm8941_temp>;

			trips {
				trip0 {
					temperature = <105000>;
					hysteresis = <2000>;
					type = "passive";
				};

				trip1 {
					temperature = <125000>;
					hysteresis = <2000>;
					type = "hot";
				};

				crit {
					temperature = <145000>;
					hysteresis = <2000>;
					type = "critical";
				};
			};
		};
	};
};

&spmi_bus {

	pm8941_0: pm8941@0 {
		compatible = "qcom,pm8941", "qcom,spmi-pmic";
		reg = <0x0 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

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

		pon@800 {
			compatible = "qcom,pm8941-pon";
			reg = <0x800>;

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

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

		usb_id: usb-detect@900 {
			compatible = "qcom,pm8941-misc";
			reg = <0x900>;
			interrupts = <0x0 0x9 0 IRQ_TYPE_EDGE_BOTH>;
			interrupt-names = "usb_id";
		};

		smbb: charger@1000 {
			compatible = "qcom,pm8941-charger";
			reg = <0x1000>;
			interrupts = <0x0 0x10 7 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x10 5 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x10 4 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x12 1 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x12 0 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x13 2 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x13 1 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x14 1 IRQ_TYPE_EDGE_BOTH>;
			interrupt-names = "chg-done",
					  "chg-fast",
					  "chg-trkl",
					  "bat-temp-ok",
					  "bat-present",
					  "chg-gone",
					  "usb-valid",
					  "dc-valid";

			usb-otg-in-supply = <&pm8941_5vs1>;

			status = "disabled";

			chg_otg: otg-vbus { };
		};

		pm8941_gpios: gpio@c000 {
			compatible = "qcom,pm8941-gpio", "qcom,spmi-gpio";
			reg = <0xc000>;
			gpio-controller;
			gpio-ranges = <&pm8941_gpios 0 0 36>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;

			boost_bypass_n_pin: boost-bypass-state {
				pins = "gpio21";
				function = "normal";
			};
		};

		pm8941_mpps: mpps@a000 {
			compatible = "qcom,pm8941-mpp", "qcom,spmi-mpp";
			reg = <0xa000>;
			gpio-controller;
			#gpio-cells = <2>;
			gpio-ranges = <&pm8941_mpps 0 0 8>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};

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

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


			channel@6 {
				reg = <VADC_VBAT_SNS>;
			};

			channel@8 {
				reg = <VADC_DIE_TEMP>;
			};

			channel@9 {
				reg = <VADC_REF_625MV>;
			};

			channel@a {
				reg = <VADC_REF_1250MV>;
			};

			channel@e {
				reg = <VADC_GND_REF>;
			};

			channel@f {
				reg = <VADC_VDD_VADC>;
			};

			channel@30 {
				reg = <VADC_LR_MUX1_BAT_THERM>;
			};
		};

		pm8941_iadc: adc@3600 {
			compatible = "qcom,pm8941-iadc", "qcom,spmi-iadc";
			reg = <0x3600>;
			interrupts = <0x0 0x36 0x0 IRQ_TYPE_EDGE_RISING>;
			qcom,external-resistor-micro-ohms = <10000>;
		};

		pm8941_coincell: charger@2800 {
			compatible = "qcom,pm8941-coincell";
			reg = <0x2800>;
			status = "disabled";
		};
	};

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

		pm8941_lpg: pwm {
			compatible = "qcom,pm8941-lpg";

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

			status = "disabled";
		};

		pm8941_vib: vibrator@c000 {
			compatible = "qcom,pm8916-vib";
			reg = <0xc000>;
			status = "disabled";
		};

		pm8941_wled: wled@d800 {
			compatible = "qcom,pm8941-wled";
			reg = <0xd800>;
			label = "backlight";

			status = "disabled";
		};

		regulators {
			compatible = "qcom,pm8941-regulators";
			interrupts = <0x1 0x83 0x2 0>, <0x1 0x84 0x2 0>;
			interrupt-names = "ocp-5vs1", "ocp-5vs2";
			vin_5vs-supply = <&pm8941_5v>;

			pm8941_5v: s4 {
				regulator-min-microvolt = <5000000>;
				regulator-max-microvolt = <5000000>;
				regulator-enable-ramp-delay = <500>;
			};

			pm8941_5vs1: 5vs1 {
				regulator-enable-ramp-delay = <1000>;
				regulator-pull-down;
				regulator-over-current-protection;
				qcom,ocp-max-retries = <10>;
				qcom,ocp-retry-delay = <30>;
				qcom,vs-soft-start-strength = <0>;
				regulator-initial-mode = <1>;
			};

			pm8941_5vs2: 5vs2 {
				regulator-enable-ramp-delay = <1000>;
				regulator-pull-down;
				regulator-over-current-protection;
				qcom,ocp-max-retries = <10>;
				qcom,ocp-retry-delay = <30>;
				qcom,vs-soft-start-strength = <0>;
				regulator-initial-mode = <1>;
			};
		};
	};
};
