/* Copyright (c) 2017-2018, 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.
 */

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

		qcom,pmic-revid = <&pm660_revid>;

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

		qcom,wipower-max-uw = <5000000>;

		dpdm-supply = <&qusb_phy0>;

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

		qcom,chgr@1000 {
			reg = <0x1000 0x100>;
			interrupts =
				<0x0 0x10 0x0 IRQ_TYPE_EDGE_RISING>,
				<0x0 0x10 0x1 IRQ_TYPE_EDGE_RISING>,
				<0x0 0x10 0x2 IRQ_TYPE_EDGE_RISING>,
				<0x0 0x10 0x3 IRQ_TYPE_EDGE_RISING>,
				<0x0 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 = <0x0 0x11 0x0 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x11 0x1 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x11 0x2 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 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 =
				<0x0 0x12 0x0 IRQ_TYPE_EDGE_RISING>,
				<0x0 0x12 0x1 IRQ_TYPE_EDGE_BOTH>,
				<0x0 0x12 0x2 IRQ_TYPE_EDGE_BOTH>,
				<0x0 0x12 0x3 IRQ_TYPE_EDGE_BOTH>,
				<0x0 0x12 0x4 IRQ_TYPE_EDGE_BOTH>,
				<0x0 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 =
				<0x0 0x13 0x0 IRQ_TYPE_EDGE_BOTH>,
				<0x0 0x13 0x1 IRQ_TYPE_EDGE_BOTH>,
				<0x0 0x13 0x2 IRQ_TYPE_EDGE_BOTH>,
				<0x0 0x13 0x3 IRQ_TYPE_EDGE_BOTH>,
				<0x0 0x13 0x4 IRQ_TYPE_EDGE_BOTH>,
				<0x0 0x13 0x5 IRQ_TYPE_EDGE_RISING>,
				<0x0 0x13 0x6 IRQ_TYPE_EDGE_RISING>,
				<0x0 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 =
				<0x0 0x14 0x0 IRQ_TYPE_EDGE_BOTH>,
				<0x0 0x14 0x1 IRQ_TYPE_EDGE_BOTH>,
				<0x0 0x14 0x2 IRQ_TYPE_EDGE_BOTH>,
				<0x0 0x14 0x3 IRQ_TYPE_EDGE_BOTH>,
				<0x0 0x14 0x4 IRQ_TYPE_EDGE_BOTH>,
				<0x0 0x14 0x5 IRQ_TYPE_EDGE_BOTH>,
				<0x0 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 =
				<0x0 0x16 0x0 IRQ_TYPE_EDGE_RISING>,
				<0x0 0x16 0x1 IRQ_TYPE_EDGE_RISING>,
				<0x0 0x16 0x2 IRQ_TYPE_EDGE_BOTH>,
				<0x0 0x16 0x3 IRQ_TYPE_EDGE_BOTH>,
				<0x0 0x16 0x4 IRQ_TYPE_EDGE_BOTH>,
				<0x0 0x16 0x5 IRQ_TYPE_EDGE_BOTH>,
				<0x0 0x16 0x6 IRQ_TYPE_EDGE_FALLING>,
				<0x0 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";
		};
		smb2_vbus: qcom,smb2-vbus {
			regulator-name = "smb2-vbus";
		};

		smb2_vconn: qcom,smb2-vconn {
			regulator-name = "smb2-vconn";
		};
	};

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

	pm660_fg: qpnp,fg {
		compatible = "qcom,fg-gen3";
		#address-cells = <1>;
		#size-cells = <1>;
		qcom,pmic-revid = <&pm660_revid>;
		io-channels = <&pm660_rradc 0>,
			      <&pm660_rradc 7>;
		io-channel-names = "rradc_batt_id",
				   "rradc_die_temp";
		qcom,rradc-base = <0x4500>;
		qcom,fg-esr-timer-awake = <64 96>;
		qcom,fg-esr-timer-asleep = <224 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 = <0x0 0x40 0x0 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x40 0x1 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x40 0x2
						IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x40 0x3
						IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x40 0x4 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x40 0x5
						IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x40 0x6 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 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 = <0x0 0x41 0x0 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x41 0x1 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x41 0x2 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x41 0x3 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 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 = <0x0 0x44 0x0 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x44 0x1 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x44 0x2 IRQ_TYPE_EDGE_BOTH>;
			interrupt-names = "ima-rdy",
					  "mem-xcp",
					  "dma-grant";
		};
	};
};

&pm660_1 {
	pm660_haptics: qcom,haptics@c000 {
		compatible = "qcom,qpnp-haptics";
		reg = <0xc000 0x100>;
		interrupts = <0x1 0xc0 0x0 IRQ_TYPE_EDGE_BOTH>,
			     <0x1 0xc0 0x1 IRQ_TYPE_EDGE_BOTH>;
		interrupt-names = "hap-sc-irq", "hap-play-irq";
		qcom,pmic-revid = <&pm660_revid>;
		qcom,pmic-misc = <&pm660_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 = "opt0";
		qcom,lra-auto-res-mode = "qwd";
		qcom,lra-res-cal-period = <4>;
	};
};

&pm660l_3 {
	pm660l_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>;
		interrupt-names = "ovp-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];
		qcom,loop-auto-gm-en;
		qcom,pmic-revid = <&pm660l_revid>;
		qcom,auto-calibration-enable;
		status = "ok";
	};

	pm660l_lcdb: qpnp-lcdb@ec00 {
		compatible = "qcom,qpnp-lcdb-regulator";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0xec00 0x100>;
		interrupts = <0x3 0xec 0x1 IRQ_TYPE_EDGE_RISING>;
		interrupt-names = "sc-irq";

		qcom,pmic-revid = <&pm660l_revid>;

		lcdb_ldo_vreg: ldo {
			label = "ldo";
			regulator-name = "lcdb_ldo";
			regulator-min-microvolt = <4000000>;
			regulator-max-microvolt = <6000000>;
		};

		lcdb_ncp_vreg: ncp {
			label = "ncp";
			regulator-name = "lcdb_ncp";
			regulator-min-microvolt = <4000000>;
			regulator-max-microvolt = <6000000>;
		};
	};

	pm660a_oledb: qpnp-oledb@e000 {
	       compatible = "qcom,qpnp-oledb-regulator";
	       #address-cells = <1>;
	       #size-cells = <1>;
	       qcom,pmic-revid = <&pm660l_revid>;
	       reg = <0xe000 0x100>;
	       qcom,pbs-client = <&pm660l_pbs>;

	       label = "oledb";
	       regulator-name = "regulator-oledb";
	       regulator-min-microvolt = <5000000>;
	       regulator-max-microvolt = <8100000>;

	       qcom,swire-control;
	       qcom,ext-pin-control;
	       status = "disabled";
	};

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

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

			regulator-min-microvolt = <4000000>;
			regulator-max-microvolt = <6300000>;

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

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

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

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

			qcom,notify-lab-vreg-ok-sts;
		};
	};
};

&pm660_pdphy {
	vbus-supply = <&smb2_vbus>;
	vconn-supply = <&smb2_vconn>;
};

&usb0 {
	extcon = <&pm660_pdphy>, <&pm660_pdphy>, <&eud>,
					<&pm660_charger>, <&pm660_charger>;
	vbus_dwc3-supply = <&smb2_vbus>;
	qcom,no-vbus-vote-with-type-C;
};

&thermal_zones {
	xo-therm-batt-step {
		polling-delay-passive = <0>;
		polling-delay = <0>;
		thermal-sensors = <&pm660_adc_tm 0x4c>;
		thermal-governor = "step_wise";

		trips {
			batt_trip1: batt-trip1 {
				temperature = <50000>;
				hysteresis = <4000>;
				type = "passive";
			};
			batt_trip2: batt-trip2 {
				temperature = <52000>;
				hysteresis = <2000>;
				type = "passive";
			};
			batt_trip3: batt-trip3 {
				temperature = <54000>;
				hysteresis = <2000>;
				type = "passive";
			};
			batt_trip4: batt-trip4 {
				temperature = <56000>;
				hysteresis = <2000>;
				type = "passive";
			};
		};

		cooling-maps {
			battery_lvl1 {
				trip = <&batt_trip1>;
				cooling-device = <&pm660_charger 1 1>;
			};
			battery_lvl2 {
				trip = <&batt_trip2>;
				cooling-device = <&pm660_charger 2 2>;
			};
			battery_lvl3 {
				trip = <&batt_trip3>;
				cooling-device = <&pm660_charger 4 4>;
			};
			battery_lvl4 {
				trip = <&batt_trip4>;
				cooling-device = <&pm660_charger 5 5>;
			};
		};
	};
};
