/* 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,suspend-input-on-debug-batt;

			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";
			};
		};
	};
};
