/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#include <dt-bindings/spmi/spmi.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/thermal/thermal.h>

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

		pmi8998_revid: qcom,revid@100 {
			compatible = "qcom,qpnp-revid";
			reg = <0x100 0x100>;
			qcom,fab-id-valid;
		};

		pmi8998_misc: qcom,misc@900 {
			compatible = "qcom,qpnp-misc";
			reg = <0x900 0x100>;
		};

		qcom,power-on@800 {
			compatible = "qcom,qpnp-power-on";
			reg = <0x800 0x100>;
		};

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

		pmi8998_gpios: pinctrl@c000 {
			compatible = "qcom,spmi-gpio";
			reg = <0xc000 0xe00>;
			interrupts = <0x2 0xc0 0 IRQ_TYPE_NONE>,
					<0x2 0xc1 0 IRQ_TYPE_NONE>,
					<0x2 0xc2 0 IRQ_TYPE_NONE>,
					<0x2 0xc4 0 IRQ_TYPE_NONE>,
					<0x2 0xc5 0 IRQ_TYPE_NONE>,
					<0x2 0xc7 0 IRQ_TYPE_NONE>,
					<0x2 0xc8 0 IRQ_TYPE_NONE>,
					<0x2 0xc9 0 IRQ_TYPE_NONE>,
					<0x2 0xca 0 IRQ_TYPE_NONE>,
					<0x2 0xcb 0 IRQ_TYPE_NONE>,
					<0x2 0xcd 0 IRQ_TYPE_NONE>;
			interrupt-names = "pmi8998_gpio1", "pmi8998_gpio2",
					"pmi8998_gpio3", "pmi8998_gpio5",
					"pmi8998_gpio6", "pmi8998_gpio8",
					"pmi8998_gpio9", "pmi8998_gpio10",
					"pmi8998_gpio11", "pmi8998_gpio12",
					"pmi8998_gpio14";
			gpio-controller;
			#gpio-cells = <2>;
			qcom,gpios-disallowed = <4 7 13>;
		};

		pmi8998_qnovo: qcom,qpnp-qnovo@1500 {
			compatible = "qcom,qpnp-qnovo";
			reg = <0x1500 0x100>;
			interrupts = <0x2 0x15 0x0 IRQ_TYPE_NONE>;
			interrupt-names = "ptrain-done";
			qcom,pmic-revid = <&pmi8998_revid>;
		};

		pmi8998_charger: qcom,qpnp-smb2 {
			compatible = "qcom,qpnp-smb2";
			#address-cells = <1>;
			#size-cells = <1>;
			#cooling-cells = <2>;

			qcom,pmic-revid = <&pmi8998_revid>;

			io-channels = <&pmi8998_rradc 8>,
				      <&pmi8998_rradc 10>,
				      <&pmi8998_rradc 3>,
				      <&pmi8998_rradc 4>;
			io-channel-names = "charger_temp",
					   "charger_temp_max",
					   "usbin_i",
					   "usbin_v";

			qcom,boost-threshold-ua = <100000>;
			qcom,wipower-max-uw = <5000000>;
			dpdm-supply = <&qusb_phy0>;

			qcom,thermal-mitigation
					= <3000000 1500000 1000000 500000>;
			qcom,auto-recharge-soc;

			qcom,chgr@1000 {
				reg = <0x1000 0x100>;
				interrupts =
					<0x2 0x10 0x0 IRQ_TYPE_EDGE_RISING>,
					<0x2 0x10 0x1 IRQ_TYPE_EDGE_RISING>,
					<0x2 0x10 0x2 IRQ_TYPE_EDGE_RISING>,
					<0x2 0x10 0x3 IRQ_TYPE_EDGE_RISING>,
					<0x2 0x10 0x4 IRQ_TYPE_EDGE_RISING>;

				interrupt-names = "chg-error",
						  "chg-state-change",
						  "step-chg-state-change",
						  "step-chg-soc-update-fail",
						  "step-chg-soc-update-request";
			};

			qcom,otg@1100 {
				reg = <0x1100 0x100>;
				interrupts = <0x2 0x11 0x0 IRQ_TYPE_EDGE_BOTH>,
					     <0x2 0x11 0x1 IRQ_TYPE_EDGE_BOTH>,
					     <0x2 0x11 0x2 IRQ_TYPE_EDGE_BOTH>,
					     <0x2 0x11 0x3 IRQ_TYPE_EDGE_BOTH>;

				interrupt-names = "otg-fail",
						  "otg-overcurrent",
						  "otg-oc-dis-sw-sts",
						  "testmode-change-detect";
			};

			qcom,bat-if@1200 {
				reg = <0x1200 0x100>;
				interrupts =
					<0x2 0x12 0x0 IRQ_TYPE_EDGE_RISING>,
					<0x2 0x12 0x1 IRQ_TYPE_EDGE_BOTH>,
					<0x2 0x12 0x2 IRQ_TYPE_EDGE_BOTH>,
					<0x2 0x12 0x3 IRQ_TYPE_EDGE_BOTH>,
					<0x2 0x12 0x4 IRQ_TYPE_EDGE_BOTH>,
					<0x2 0x12 0x5 IRQ_TYPE_EDGE_BOTH>;

				interrupt-names = "bat-temp",
						  "bat-ocp",
						  "bat-ov",
						  "bat-low",
						  "bat-therm-or-id-missing",
						  "bat-terminal-missing";
			};

			qcom,usb-chgpth@1300 {
				reg = <0x1300 0x100>;
				interrupts =
					<0x2 0x13 0x0 IRQ_TYPE_EDGE_BOTH>,
					<0x2 0x13 0x1 IRQ_TYPE_EDGE_BOTH>,
					<0x2 0x13 0x2 IRQ_TYPE_EDGE_BOTH>,
					<0x2 0x13 0x3 IRQ_TYPE_EDGE_BOTH>,
					<0x2 0x13 0x4 IRQ_TYPE_EDGE_BOTH>,
					<0x2 0x13 0x5 IRQ_TYPE_EDGE_RISING>,
					<0x2 0x13 0x6 IRQ_TYPE_EDGE_RISING>,
					<0x2 0x13 0x7 IRQ_TYPE_EDGE_RISING>;

				interrupt-names = "usbin-collapse",
						  "usbin-lt-3p6v",
						  "usbin-uv",
						  "usbin-ov",
						  "usbin-plugin",
						  "usbin-src-change",
						  "usbin-icl-change",
						  "type-c-change";
			};

			qcom,dc-chgpth@1400 {
				reg = <0x1400 0x100>;
				interrupts =
					<0x2 0x14 0x0 IRQ_TYPE_EDGE_BOTH>,
					<0x2 0x14 0x1 IRQ_TYPE_EDGE_BOTH>,
					<0x2 0x14 0x2 IRQ_TYPE_EDGE_BOTH>,
					<0x2 0x14 0x3 IRQ_TYPE_EDGE_BOTH>,
					<0x2 0x14 0x4 IRQ_TYPE_EDGE_BOTH>,
					<0x2 0x14 0x5 IRQ_TYPE_EDGE_BOTH>,
					<0x2 0x14 0x6 IRQ_TYPE_EDGE_RISING>;

				interrupt-names = "dcin-collapse",
						  "dcin-lt-3p6v",
						  "dcin-uv",
						  "dcin-ov",
						  "dcin-plugin",
						  "div2-en-dg",
						  "dcin-icl-change";
			};

			qcom,chgr-misc@1600 {
				reg = <0x1600 0x100>;
				interrupts =
					<0x2 0x16 0x0 IRQ_TYPE_EDGE_RISING>,
					<0x2 0x16 0x1 IRQ_TYPE_EDGE_RISING>,
					<0x2 0x16 0x2 IRQ_TYPE_EDGE_BOTH>,
					<0x2 0x16 0x3 IRQ_TYPE_EDGE_BOTH>,
					<0x2 0x16 0x4 IRQ_TYPE_EDGE_BOTH>,
					<0x2 0x16 0x5 IRQ_TYPE_EDGE_BOTH>,
					<0x2 0x16 0x6 IRQ_TYPE_EDGE_FALLING>,
					<0x2 0x16 0x7 IRQ_TYPE_EDGE_BOTH>;

				interrupt-names = "wdog-snarl",
						  "wdog-bark",
						  "aicl-fail",
						  "aicl-done",
						  "high-duty-cycle",
						  "input-current-limiting",
						  "temperature-change",
						  "switcher-power-ok";
			};
		};

		pmi8998_pdphy: qcom,usb-pdphy@1700 {
			compatible = "qcom,qpnp-pdphy";
			reg = <0x1700 0x100>;
			vdd-pdphy-supply = <&pm8998_l24>;
			vbus-supply = <&ext_5v_boost>;
			vconn-supply = <&smb2_vconn>;
			interrupts = <0x2 0x17 0x0 IRQ_TYPE_EDGE_RISING>,
				     <0x2 0x17 0x1 IRQ_TYPE_EDGE_RISING>,
				     <0x2 0x17 0x2 IRQ_TYPE_EDGE_RISING>,
				     <0x2 0x17 0x3 IRQ_TYPE_EDGE_RISING>,
				     <0x2 0x17 0x4 IRQ_TYPE_EDGE_RISING>,
				     <0x2 0x17 0x5 IRQ_TYPE_EDGE_RISING>,
				     <0x2 0x17 0x6 IRQ_TYPE_EDGE_RISING>;

			interrupt-names = "sig-tx",
					  "sig-rx",
					  "msg-tx",
					  "msg-rx",
					  "msg-tx-failed",
					  "msg-tx-discarded",
					  "msg-rx-discarded";

			qcom,default-sink-caps = <5000 3000>, /* 5V @ 3A */
						 <9000 3000>, /* 9V @ 3A */
						 <12000 2250>; /* 12V @ 2.25A */
		};

		bcl_sensor: bcl@4200 {
			compatible = "qcom,msm-bcl-lmh";
			reg = <0x4200 0xff>,
				<0x4300 0xff>;
			reg-names = "fg_user_adc",
					"fg_lmh";
			interrupts = <0x2 0x42 0x0 IRQ_TYPE_NONE>,
					<0x2 0x42 0x1 IRQ_TYPE_NONE>,
					<0x2 0x42 0x2 IRQ_TYPE_NONE>,
					<0x2 0x42 0x3 IRQ_TYPE_NONE>,
					<0x2 0x42 0x4 IRQ_TYPE_NONE>;
			interrupt-names = "bcl-high-ibat",
						"bcl-very-high-ibat",
						"bcl-low-vbat",
						"bcl-very-low-vbat",
						"bcl-crit-low-vbat";
			#thermal-sensor-cells = <1>;
		};

		pmi8998_rradc: rradc@4500 {
			compatible = "qcom,rradc";
			reg = <0x4500 0x100>;
			#address-cells = <1>;
			#size-cells = <0>;
			#io-channel-cells = <1>;
			qcom,pmic-revid = <&pmi8998_revid>;
		};

		pmi8998_fg: qpnp,fg {
			compatible = "qcom,fg-gen3";
			#address-cells = <1>;
			#size-cells = <1>;
			qcom,pmic-revid = <&pmi8998_revid>;
			io-channels = <&pmi8998_rradc 0>;
			io-channel-names = "rradc_batt_id";
			qcom,rradc-base = <0x4500>;
			qcom,fg-esr-timer-awake = <96 96>;
			qcom,fg-esr-timer-asleep = <256 256>;
			qcom,fg-esr-timer-charging = <0 96>;
			qcom,cycle-counter-en;
			qcom,hold-soc-while-full;
			qcom,fg-auto-recharge-soc;
			qcom,fg-recharge-soc-thr = <98>;
			status = "okay";

			qcom,fg-batt-soc@4000 {
				status = "okay";
				reg = <0x4000 0x100>;
				interrupts = <0x2 0x40 0x0 IRQ_TYPE_EDGE_BOTH>,
					     <0x2 0x40 0x1 IRQ_TYPE_EDGE_BOTH>,
					     <0x2 0x40 0x2
							IRQ_TYPE_EDGE_RISING>,
					     <0x2 0x40 0x3
							IRQ_TYPE_EDGE_RISING>,
					     <0x2 0x40 0x4 IRQ_TYPE_EDGE_BOTH>,
					     <0x2 0x40 0x5
							IRQ_TYPE_EDGE_RISING>,
					     <0x2 0x40 0x6 IRQ_TYPE_EDGE_BOTH>,
					     <0x2 0x40 0x7 IRQ_TYPE_EDGE_BOTH>;
				interrupt-names = "soc-update",
						  "soc-ready",
						  "bsoc-delta",
						  "msoc-delta",
						  "msoc-low",
						  "msoc-empty",
						  "msoc-high",
						  "msoc-full";
			};

			qcom,fg-batt-info@4100 {
				status = "okay";
				reg = <0x4100 0x100>;
				interrupts = <0x2 0x41 0x0 IRQ_TYPE_EDGE_BOTH>,
					     <0x2 0x41 0x1 IRQ_TYPE_EDGE_BOTH>,
					     <0x2 0x41 0x2 IRQ_TYPE_EDGE_BOTH>,
					     <0x2 0x41 0x3 IRQ_TYPE_EDGE_BOTH>,
					     <0x2 0x41 0x6 IRQ_TYPE_EDGE_BOTH>;
				interrupt-names = "vbatt-pred-delta",
						  "vbatt-low",
						  "esr-delta",
						  "batt-missing",
						  "batt-temp-delta";
			};

			qcom,fg-memif@4400 {
				status = "okay";
				reg = <0x4400 0x100>;
				interrupts = <0x2 0x44 0x0 IRQ_TYPE_EDGE_BOTH>,
					     <0x2 0x44 0x1 IRQ_TYPE_EDGE_BOTH>,
					     <0x2 0x44 0x2
							IRQ_TYPE_EDGE_RISING>;
				interrupt-names = "ima-rdy",
						  "mem-xcp",
						  "dma-grant";
			};
		};
	};

	pmi8998_lsid1: qcom,pmi8998@3 {
		compatible ="qcom,spmi-pmic";
		reg = <0x3 SPMI_USID>;
		#address-cells = <2>;
		#size-cells = <0>;

		pmi8998_pwm_1: pwm@b100 {
			compatible = "qcom,qpnp-pwm";
			reg = <0xb100 0x100>,
			      <0xb042 0x7e>;
			reg-names = "qpnp-lpg-channel-base",
				    "qpnp-lpg-lut-base";
			qcom,lpg-lut-size = <0x7e>;
			qcom,channel-id = <1>;
			qcom,supported-sizes = <6>, <9>;
			qcom,ramp-index = <0>;
			#pwm-cells = <2>;
			status = "disabled";
		};

		pmi8998_pwm_2: pwm@b200 {
			compatible = "qcom,qpnp-pwm";
			reg = <0xb200 0x100>,
			      <0xb042 0x7e>;
			reg-names = "qpnp-lpg-channel-base",
				    "qpnp-lpg-lut-base";
			qcom,lpg-lut-size = <0x7e>;
			qcom,channel-id = <2>;
			qcom,supported-sizes = <6>, <9>;
			qcom,ramp-index = <1>;
			#pwm-cells = <2>;
			status = "disabled";
		};

		pmi8998_pwm_3: pwm@b300 {
			compatible = "qcom,qpnp-pwm";
			reg = <0xb300 0x100>,
			      <0xb042 0x7e>;
			reg-names = "qpnp-lpg-channel-base",
				    "qpnp-lpg-lut-base";
			qcom,lpg-lut-size = <0x7e>;
			qcom,channel-id = <3>;
			qcom,supported-sizes = <6>, <9>;
			qcom,ramp-index = <2>;
			#pwm-cells = <2>;
		};

		pmi8998_pwm_4: pwm@b400 {
			compatible = "qcom,qpnp-pwm";
			reg = <0xb400 0x100>,
			      <0xb042 0x7e>;
			reg-names = "qpnp-lpg-channel-base",
				    "qpnp-lpg-lut-base";
			qcom,lpg-lut-size = <0x7e>;
			qcom,channel-id = <4>;
			qcom,supported-sizes = <6>, <9>;
			qcom,ramp-index = <3>;
			#pwm-cells = <2>;
		};

		pmi8998_pwm_5: pwm@b500 {
			compatible = "qcom,qpnp-pwm";
			reg = <0xb500 0x100>,
			      <0xb042 0x7e>;
			reg-names = "qpnp-lpg-channel-base",
				    "qpnp-lpg-lut-base";
			qcom,lpg-lut-size = <0x7e>;
			qcom,channel-id = <5>;
			qcom,supported-sizes = <6>, <9>;
			qcom,ramp-index = <4>;
			#pwm-cells = <2>;
		};

		pmi8998_pwm_6: pwm@b600 {
			compatible = "qcom,qpnp-pwm";
			reg = <0xb600 0x100>,
			      <0xb042 0x7e>;
			reg-names = "qpnp-lpg-channel-base",
				    "qpnp-lpg-lut-base";
			qcom,lpg-lut-size = <0x7e>;
			qcom,channel-id = <6>;
			qcom,supported-sizes = <6>, <9>;
			qcom,ramp-index = <5>;
			#pwm-cells = <2>;
			status = "disabled";
		};

		qcom,leds@d000 {
			compatible = "qcom,leds-qpnp";
			reg = <0xd000 0x100>;
			label = "rgb";
			status = "okay";

			red_led: qcom,rgb_0 {
				label = "rgb";
				qcom,id = <3>;
				qcom,mode = "pwm";
				pwms = <&pmi8998_pwm_5 0 0>;
				qcom,pwm-us = <1000>;
				qcom,max-current = <12>;
				qcom,default-state = "off";
				linux,name = "red";
			};

			green_led: qcom,rgb_1 {
				label = "rgb";
				qcom,id = <4>;
				qcom,mode = "pwm";
				pwms = <&pmi8998_pwm_4 0 0>;
				qcom,pwm-us = <1000>;
				qcom,max-current = <12>;
				qcom,default-state = "off";
				linux,name = "green";
			};

			blue_led: qcom,rgb_2 {
				label = "rgb";
				qcom,id = <5>;
				qcom,mode = "pwm";
				pwms = <&pmi8998_pwm_3 0 0>;
				qcom,pwm-us = <1000>;
				qcom,max-current = <12>;
				qcom,default-state = "off";
				linux,name = "blue";
			};
		};

		labibb: qpnp-labibb-regulator {
			compatible = "qcom,qpnp-labibb-regulator";
			#address-cells = <1>;
			#size-cells = <1>;
			qcom,pmic-revid = <&pmi8998_revid>;
			status = "disabled";

			ibb_regulator: qcom,ibb@dc00 {
				reg = <0xdc00 0x100>;
				reg-names = "ibb_reg";
				regulator-name = "ibb_reg";

				regulator-min-microvolt = <4600000>;
				regulator-max-microvolt = <6000000>;

				interrupts = <0x3 0xdc 0x2
						IRQ_TYPE_EDGE_RISING>;
				interrupt-names = "ibb-sc-err";

				qcom,qpnp-ibb-min-voltage = <1400000>;
				qcom,qpnp-ibb-step-size = <100000>;
				qcom,qpnp-ibb-slew-rate = <2000000>;
				qcom,qpnp-ibb-use-default-voltage;
				qcom,qpnp-ibb-init-voltage = <5500000>;
				qcom,qpnp-ibb-init-amoled-voltage = <4000000>;
				qcom,qpnp-ibb-init-lcd-voltage = <5500000>;

				qcom,qpnp-ibb-soft-start = <1000>;

				qcom,qpnp-ibb-lab-pwrup-delay = <8000>;
				qcom,qpnp-ibb-lab-pwrdn-delay = <8000>;
				qcom,qpnp-ibb-en-discharge;

				qcom,qpnp-ibb-full-pull-down;
				qcom,qpnp-ibb-pull-down-enable;
				qcom,qpnp-ibb-switching-clock-frequency =
									<1480>;
				qcom,qpnp-ibb-limit-maximum-current = <1550>;
				qcom,qpnp-ibb-debounce-cycle = <16>;
				qcom,qpnp-ibb-limit-max-current-enable;
				qcom,qpnp-ibb-ps-enable;
			};

			lab_regulator: qcom,lab@de00 {
				reg = <0xde00 0x100>;
				reg-names = "lab";
				regulator-name = "lab_reg";

				regulator-min-microvolt = <4600000>;
				regulator-max-microvolt = <6000000>;

				interrupts = <0x3 0xde 0x0
						IRQ_TYPE_EDGE_RISING>,
					     <0x3 0xde 0x1
						IRQ_TYPE_EDGE_RISING>;
				interrupt-names = "lab-vreg-ok", "lab-sc-err";

				qcom,qpnp-lab-min-voltage = <4600000>;
				qcom,qpnp-lab-step-size = <100000>;
				qcom,qpnp-lab-slew-rate = <5000>;
				qcom,qpnp-lab-use-default-voltage;
				qcom,qpnp-lab-init-voltage = <5500000>;
				qcom,qpnp-lab-init-amoled-voltage = <4600000>;
				qcom,qpnp-lab-init-lcd-voltage = <5500000>;

				qcom,qpnp-lab-soft-start = <800>;

				qcom,qpnp-lab-full-pull-down;
				qcom,qpnp-lab-pull-down-enable;
				qcom,qpnp-lab-switching-clock-frequency =
									<1600>;
				qcom,qpnp-lab-limit-maximum-current = <1600>;
				qcom,qpnp-lab-limit-max-current-enable;
				qcom,qpnp-lab-ps-threshold = <70>;
				qcom,qpnp-lab-ps-enable;
				qcom,qpnp-lab-nfet-size = <100>;
				qcom,qpnp-lab-pfet-size = <100>;
				qcom,qpnp-lab-max-precharge-time = <500>;
			};
		};

		pmi8998_wled: qcom,leds@d800 {
			compatible = "qcom,qpnp-wled";
			reg = <0xd800 0x100>,
			      <0xd900 0x100>;
			reg-names = "qpnp-wled-ctrl-base",
				    "qpnp-wled-sink-base";
			interrupts = <0x3 0xd8 0x1 IRQ_TYPE_EDGE_RISING>,
				     <0x3 0xd8 0x2 IRQ_TYPE_EDGE_RISING>;
			interrupt-names = "ovp-irq", "sc-irq";
			linux,name = "wled";
			linux,default-trigger = "bkl-trigger";
			qcom,fdbk-output = "auto";
			qcom,vref-uv = <127500>;
			qcom,switch-freq-khz = <800>;
			qcom,ovp-mv = <29600>;
			qcom,ilim-ma = <970>;
			qcom,boost-duty-ns = <26>;
			qcom,mod-freq-khz = <9600>;
			qcom,dim-mode = "hybrid";
			qcom,hyb-thres = <625>;
			qcom,sync-dly-us = <800>;
			qcom,fs-curr-ua = <25000>;
			qcom,cons-sync-write-delay-us = <1000>;
			qcom,led-strings-list = [00 01 02 03];
			qcom,en-ext-pfet-sc-pro;
			qcom,pmic-revid = <&pmi8998_revid>;
			qcom,loop-auto-gm-en;
			qcom,auto-calibration-enable;
			status = "disabled";
		};

		flash_led: qcom,leds@d300 {
			compatible = "qcom,qpnp-flash-led-v2";
			status = "okay";
			reg = <0xd300 0x100>;
			label = "flash";
			interrupts = <0x3 0xd3 0x0 IRQ_TYPE_EDGE_RISING>,
				     <0x3 0xd3 0x3 IRQ_TYPE_EDGE_RISING>,
				     <0x3 0xd3 0x4 IRQ_TYPE_EDGE_RISING>;
			interrupt-names = "led-fault-irq",
					  "all-ramp-down-done-irq",
					  "all-ramp-up-done-irq";
			qcom,hdrm-auto-mode;
			qcom,short-circuit-det;
			qcom,open-circuit-det;
			qcom,vph-droop-det;
			qcom,thermal-derate-en;
			qcom,thermal-derate-current = <200 500 1000>;
			qcom,isc-delay = <192>;
			qcom,pmic-revid = <&pmi8998_revid>;

			pmi8998_flash0: qcom,flash_0 {
				label = "flash";
				qcom,led-name = "led:flash_0";
				qcom,max-current = <1500>;
				qcom,default-led-trigger = "flash0_trigger";
				qcom,id = <0>;
				qcom,current-ma = <1000>;
				qcom,duration-ms = <1280>;
				qcom,ires-ua = <12500>;
				qcom,hdrm-voltage-mv = <325>;
				qcom,hdrm-vol-hi-lo-win-mv = <100>;
			};

			pmi8998_flash1: qcom,flash_1 {
				label = "flash";
				qcom,led-name = "led:flash_1";
				qcom,max-current = <1500>;
				qcom,default-led-trigger = "flash1_trigger";
				qcom,id = <1>;
				qcom,current-ma = <1000>;
				qcom,duration-ms = <1280>;
				qcom,ires-ua = <12500>;
				qcom,hdrm-voltage-mv = <325>;
				qcom,hdrm-vol-hi-lo-win-mv = <100>;
			};

			pmi8998_flash2: qcom,flash_2 {
				label = "flash";
				qcom,led-name = "led:flash_2";
				qcom,max-current = <750>;
				qcom,default-led-trigger = "flash2_trigger";
				qcom,id = <2>;
				qcom,current-ma = <500>;
				qcom,duration-ms = <1280>;
				qcom,ires-ua = <12500>;
				qcom,hdrm-voltage-mv = <325>;
				qcom,hdrm-vol-hi-lo-win-mv = <100>;
			};

			pmi8998_torch0: qcom,torch_0 {
				label = "torch";
				qcom,led-name = "led:torch_0";
				qcom,max-current = <500>;
				qcom,default-led-trigger = "torch0_trigger";
				qcom,id = <0>;
				qcom,current-ma = <300>;
				qcom,ires-ua = <12500>;
				qcom,hdrm-voltage-mv = <325>;
				qcom,hdrm-vol-hi-lo-win-mv = <100>;
			};

			pmi8998_torch1: qcom,torch_1 {
				label = "torch";
				qcom,led-name = "led:torch_1";
				qcom,max-current = <500>;
				qcom,default-led-trigger = "torch1_trigger";
				qcom,id = <1>;
				qcom,current-ma = <300>;
				qcom,ires-ua = <12500>;
				qcom,hdrm-voltage-mv = <325>;
				qcom,hdrm-vol-hi-lo-win-mv = <100>;
			};

			pmi8998_torch2: qcom,torch_2 {
				label = "torch";
				qcom,led-name = "led:torch_2";
				qcom,max-current = <500>;
				qcom,default-led-trigger = "torch2_trigger";
				qcom,id = <2>;
				qcom,current-ma = <300>;
				qcom,ires-ua = <12500>;
				qcom,hdrm-voltage-mv = <325>;
				qcom,hdrm-vol-hi-lo-win-mv = <100>;
			};

			pmi8998_switch0: qcom,led_switch_0 {
				label = "switch";
				qcom,led-name = "led:switch_0";
				qcom,led-mask = <3>;
				qcom,default-led-trigger = "switch0_trigger";
			};

			pmi8998_switch1: qcom,led_switch_1 {
				label = "switch";
				qcom,led-name = "led:switch_1";
				qcom,led-mask = <4>;
				qcom,default-led-trigger = "switch1_trigger";
			};

			pmi8998_switch2: qcom,led_switch_2 {
				label = "switch";
				qcom,led-name = "led:switch_2";
				qcom,led-mask = <4>;
				qcom,default-led-trigger = "switch2_trigger";
			};

		};

		pmi8998_haptics: qcom,haptics@c000 {
			compatible = "qcom,qpnp-haptics";
			reg = <0xc000 0x100>;
			interrupts = <0x3 0xc0 0x0 IRQ_TYPE_EDGE_BOTH>,
				     <0x3 0xc0 0x1 IRQ_TYPE_EDGE_BOTH>;
			interrupt-names = "hap-sc-irq", "hap-play-irq";
			qcom,pmic-revid = <&pmi8998_revid>;
			qcom,pmic-misc = <&pmi8998_misc>;
			qcom,misc-clk-trim-error-reg = <0xf3>;
			qcom,actuator-type = <0>;
			qcom,play-mode = "direct";
			qcom,vmax-mv = <3200>;
			qcom,ilim-ma = <800>;
			qcom,sc-dbc-cycles = <8>;
			qcom,wave-play-rate-us = <6667>;
			qcom,en-brake;
			qcom,lra-high-z = "opt1";
			qcom,lra-auto-res-mode = "qwd";
			qcom,lra-res-cal-period = <4>;
			status = "disabled";
		};
	};
};

&thermal_zones {
	ibat-high {
		polling-delay-passive = <0>;
		polling-delay = <0>;
		thermal-governor = "step_wise";
		thermal-sensors = <&bcl_sensor 0>;

		trips {
			ibat_high: low-ibat {
				temperature = <5000>;
				hysteresis = <200>;
				type = "passive";
			};
		};
	};
	ibat-vhigh {
		polling-delay-passive = <0>;
		polling-delay = <0>;
		thermal-governor = "step_wise";
		thermal-sensors = <&bcl_sensor 1>;

		trips {
			ibat_vhigh: ibat_vhigh {
				temperature = <6000>;
				hysteresis = <100>;
				type = "passive";
			};
		};
	};
	vbat {
		polling-delay-passive = <100>;
		polling-delay = <0>;
		thermal-governor = "low_limits_cap";
		thermal-sensors = <&bcl_sensor 2>;
		tracks-low;

		trips {
			low_vbat: low-vbat {
				temperature = <3200>;
				hysteresis = <100>;
				type = "passive";
			};
		};
		cooling-maps {
			vbat_cpu4 {
				trip = <&low_vbat>;
				cooling-device =
					<&CPU4 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
			vbat_cpu5 {
				trip = <&low_vbat>;
				cooling-device =
					<&CPU5 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
			vbat_map6 {
				trip = <&low_vbat>;
				cooling-device =
					<&CPU6 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
			vbat_map7 {
				trip = <&low_vbat>;
				cooling-device =
					<&CPU7 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
		};
	};
	vbat_low {
		polling-delay-passive = <0>;
		polling-delay = <0>;
		thermal-governor = "low_limits_cap";
		thermal-sensors = <&bcl_sensor 3>;
		tracks-low;

		trips {
			low-vbat {
				temperature = <2800>;
				hysteresis = <0>;
				type = "passive";
			};
		};
	};
	vbat_too_low {
		polling-delay-passive = <0>;
		polling-delay = <0>;
		thermal-governor = "low_limits_cap";
		thermal-sensors = <&bcl_sensor 4>;
		tracks-low;

		trips {
			low-vbat {
				temperature = <2600>;
				hysteresis = <0>;
				type = "passive";
			};
		};
	};
	soc {
		polling-delay-passive = <100>;
		polling-delay = <0>;
		thermal-governor = "low_limits_cap";
		thermal-sensors = <&bcl_sensor 5>;
		tracks-low;

		trips {
			low_soc: low-soc {
				temperature = <10>;
				hysteresis = <0>;
				type = "passive";
			};
		};
		cooling-maps {
			soc_cpu4 {
				trip = <&low_soc>;
				cooling-device =
					<&CPU4 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
			soc_cpu5 {
				trip = <&low_soc>;
				cooling-device =
					<&CPU5 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
			soc_map6 {
				trip = <&low_soc>;
				cooling-device =
					<&CPU6 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
			soc_map7 {
				trip = <&low_soc>;
				cooling-device =
					<&CPU7 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
		};
	};

	pmi8998_tz {
		polling-delay-passive = <0>;
		polling-delay = <0>;
		thermal-sensors = <&pmi8998_tz>;

		trips {
			pmi8998_trip0: pmi8998-trip0 {
				temperature = <105000>;
				hysteresis = <0>;
				type = "passive";
			};
			 pmi8998_trip1: pmi8998-trip1 {
				temperature = <125000>;
				hysteresis = <0>;
				type = "passive";
			};
			 pmi8998_trip2: pmi8998-trip2 {
				temperature = <145000>;
				hysteresis = <0>;
				type = "passive";
			};
		};
	};
};
