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

&spmi_bus {
	#address-cells = <1>;
	#size-cells = <0>;
	interrupt-controller;
	#interrupt-cells = <3>;

	qcom,pm8226@0 {
		spmi-slave-container;
		reg = <0x0>;
		#address-cells = <1>;
		#size-cells = <1>;

		qcom,power-on@800 {
			compatible = "qcom,qpnp-power-on";
			reg = <0x800 0x100>;
			interrupts = <0x0 0x8 0x0>,
				     <0x0 0x8 0x1>,
				     <0x0 0x8 0x4>;
			interrupt-names = "kpdpwr", "resin", "resin-bark";
			qcom,pon-dbc-delay = <15625>;
			qcom,system-reset;

			qcom,pon_1 {
				qcom,pon-type = <0>;
				qcom,pull-up = <1>;
				linux,code = <116>;
			};

			qcom,pon_2 {
				qcom,pon-type = <1>;
				qcom,support-reset = <1>;
				qcom,pull-up = <1>;
				qcom,s1-timer = <0>;
				qcom,s2-timer = <2000>;
				qcom,s2-type = <1>;
				linux,code = <114>;
			};
		};

		pm8226_chg: qcom,charger {
			spmi-dev-container;
			compatible = "qcom,qpnp-charger";
			#address-cells = <1>;
			#size-cells = <1>;
			status = "disabled";

			qcom,chg-vddmax-mv = <4200>;
			qcom,chg-vddsafe-mv = <4200>;
			qcom,chg-vinmin-mv = <4200>;
			qcom,chg-vbatdet-mv = <4100>;
			qcom,chg-ibatmax-ma = <1500>;
			qcom,chg-ibatterm-ma = <200>;
			qcom,chg-ibatsafe-ma = <1500>;
			qcom,chg-thermal-mitigation = <1500 700 600 325>;

			qcom,chg-chgr@1000 {
				status = "disabled";
				reg = <0x1000 0x100>;
				interrupts =	<0x0 0x10 0x0>,
						<0x0 0x10 0x1>,
						<0x0 0x10 0x2>,
						<0x0 0x10 0x3>,
						<0x0 0x10 0x4>,
						<0x0 0x10 0x5>,
						<0x0 0x10 0x6>,
						<0x0 0x10 0x7>;

				interrupt-names =	"vbat-det-lo",
							"vbat-det-hi",
							"chgwdog",
							"state-change",
							"trkl-chg-on",
							"fast-chg-on",
							"chg-failed",
							"chg-done";
			};

			qcom,chg-buck@1100 {
				status = "disabled";
				reg = <0x1100 0x100>;
				interrupts =	<0x0 0x11 0x0>,
						<0x0 0x11 0x1>,
						<0x0 0x11 0x2>,
						<0x0 0x11 0x3>,
						<0x0 0x11 0x4>,
						<0x0 0x11 0x5>,
						<0x0 0x11 0x6>;

				interrupt-names =	"vbat-ov",
							"vreg-ov",
							"overtemp",
							"vchg-loop",
							"ichg-loop",
							"ibat-loop",
							"vdd-loop";
			};

			qcom,chg-bat-if@1200 {
				status = "disabled";
				reg = <0x1200 0x100>;
				interrupts =	<0x0 0x12 0x0>,
						<0x0 0x12 0x1>,
						<0x0 0x12 0x2>,
						<0x0 0x12 0x3>,
						<0x0 0x12 0x4>;

				interrupt-names =	"batt-pres",
							"bat-temp-ok",
							"bat-fet-on",
							"vcp-on",
							"psi";

			};

			qcom,chg-usb-chgpth@1300 {
				status = "disabled";
				reg = <0x1300 0x100>;
				interrupts =	<0 0x13 0x0>,
						<0 0x13 0x1>,
						<0x0 0x13 0x2>;

				interrupt-names =	"coarse-det-usb",
							"usbin-valid",
							"chg-gone";
			};

			qcom,chg-boost@1500 {
				status = "disabled";
				reg = <0x1500 0x100>;
				interrupts =	<0x0 0x15 0x0>,
						<0x0 0x15 0x1>;

				interrupt-names =	"boost-pwr-ok",
							"limit-error";
			};

			qcom,chg-misc@1600 {
				status = "disabled";
				reg = <0x1600 0x100>;
			};
		};

		pm8226_gpios: gpios {
			spmi-dev-container;
			compatible = "qcom,qpnp-pin";
			gpio-controller;
			#gpio-cells = <2>;
			#address-cells = <1>;
			#size-cells = <1>;
			label = "pm8226-gpio";

			gpio@c000 {
				reg = <0xc000 0x100>;
				qcom,pin-num = <1>;
			};

			gpio@c100 {
				reg = <0xc100 0x100>;
				qcom,pin-num = <2>;
			};

			gpio@c200 {
				reg = <0xc200 0x100>;
				qcom,pin-num = <3>;
			};

			gpio@c300 {
				reg = <0xc300 0x100>;
				qcom,pin-num = <4>;
			};

			gpio@c400 {
				reg = <0xc400 0x100>;
				qcom,pin-num = <5>;
			};

			gpio@c500 {
				reg = <0xc500 0x100>;
				qcom,pin-num = <6>;
			};

			gpio@c600 {
				reg = <0xc600 0x100>;
				qcom,pin-num = <7>;
			};

			gpio@c700 {
				reg = <0xc700 0x100>;
				qcom,pin-num = <8>;
			};
		};

		pm8226_mpps: mpps {
			spmi-dev-container;
			compatible = "qcom,qpnp-pin";
			gpio-controller;
			#gpio-cells = <2>;
			#address-cells = <1>;
			#size-cells = <1>;
			label = "pm8226-mpp";

			mpp@a000 {
				reg = <0xa000 0x100>;
				qcom,pin-num = <1>;
			};

			mpp@a100 {
				reg = <0xa100 0x100>;
				qcom,pin-num = <2>;
			};

			mpp@a200 {
				reg = <0xa200 0x100>;
				qcom,pin-num = <3>;
			};

			mpp@a300 {
				reg = <0xa300 0x100>;
				qcom,pin-num = <4>;
			};

			mpp@a400 {
				reg = <0xa400 0x100>;
				qcom,pin-num = <5>;
			};

			mpp@a500 {
				reg = <0xa500 0x100>;
				qcom,pin-num = <6>;
			};

			mpp@a600 {
				reg = <0xa600 0x100>;
				qcom,pin-num = <7>;
			};

			mpp@a700 {
				reg = <0xa700 0x100>;
				qcom,pin-num = <8>;
			};
		};

		pm8226_vadc: vadc@3100 {
			compatible = "qcom,qpnp-vadc";
			reg = <0x3100 0x100>;
			#address-cells = <1>;
			#size-cells = <0>;
			interrupts = <0x0 0x31 0x0>;
			interrupt-names = "eoc-int-en-set";
			qcom,adc-bit-resolution = <15>;
			qcom,adc-vdd-reference = <1800>;

			chan@8 {
				label = "die_temp";
				reg = <8>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <0>;
				qcom,calibration-type = "absolute";
				qcom,scale-function = <3>;
				qcom,hw-settle-time = <0>;
				qcom,fast-avg-setup = <0>;
			};

			chan@9 {
				label = "ref_625mv";
				reg = <9>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <0>;
				qcom,calibration-type = "absolute";
				qcom,scale-function = <0>;
				qcom,hw-settle-time = <0>;
				qcom,fast-avg-setup = <0>;
			};

			chan@a {
				label = "ref_1250v";
				reg = <0xa>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <0>;
				qcom,calibration-type = "absolute";
				qcom,scale-function = <0>;
				qcom,hw-settle-time = <0>;
				qcom,fast-avg-setup = <0>;
			};
		};

		iadc@3600 {
			compatible = "qcom,qpnp-iadc";
			reg = <0x3600 0x100>;
			#address-cells = <1>;
			#size-cells = <0>;
			interrupts = <0x0 0x36 0x0>;
			interrupt-names = "eoc-int-en-set";
			qcom,adc-bit-resolution = <16>;
			qcom,adc-vdd-reference = <1800>;
			qcom,rsense = <1500>;

			chan@0 {
				label = "internal_rsense";
				reg = <0>;
				qcom,decimation = <0>;
				qcom,pre-div-channel-scaling = <1>;
				qcom,calibration-type = "absolute";
				qcom,scale-function = <0>;
				qcom,hw-settle-time = <0>;
				qcom,fast-avg-setup = <0>;
			};
		};

		qcom,pm8226_rtc {
			spmi-dev-container;
			compatible = "qcom,qpnp-rtc";
			#address-cells = <1>;
			#size-cells = <1>;
			qcom,qpnp-rtc-write = <0>;
			qcom,qpnp-rtc-alarm-pwrup = <0>;

			qcom,pm8226_rtc_rw@6000 {
				reg = <0x6000 0x100>;
			};
			qcom,pm8226_rtc_alarm@6100 {
				reg = <0x6100 0x100>;
				interrupts = <0x0 0x61 0x1>;
			};
		};
	};

	qcom,pm8226@1 {
		spmi-slave-container;
		reg = <0x1>;
		#address-cells = <1>;
		#size-cells = <1>;

		regulator@1400 {
			regulator-name = "8226_s1";
			spmi-dev-container;
			#address-cells = <1>;
			#size-cells = <1>;
			compatible = "qcom,qpnp-regulator";
			reg = <0x1400 0x300>;
			status = "disabled";

			qcom,ctl@1400 {
				reg = <0x1400 0x100>;
			};
			qcom,ps@1500 {
				reg = <0x1500 0x100>;
			};
			qcom,freq@1600 {
				reg = <0x1600 0x100>;
			};
		};

		regulator@1700 {
			regulator-name = "8226_s2";
			spmi-dev-container;
			#address-cells = <1>;
			#size-cells = <1>;
			compatible = "qcom,qpnp-regulator";
			reg = <0x1700 0x300>;
			status = "disabled";

			qcom,ctl@1700 {
				reg = <0x1700 0x100>;
			};
			qcom,ps@1800 {
				reg = <0x1800 0x100>;
			};
			qcom,freq@1900 {
				reg = <0x1900 0x100>;
			};
		};

		regulator@1a00 {
			regulator-name = "8226_s3";
			spmi-dev-container;
			#address-cells = <1>;
			#size-cells = <1>;
			compatible = "qcom,qpnp-regulator";
			reg = <0x1a00 0x300>;
			status = "disabled";

			qcom,ctl@1a00 {
				reg = <0x1a00 0x100>;
			};
			qcom,ps@1b00 {
				reg = <0x1b00 0x100>;
			};
			qcom,freq@1c00 {
				reg = <0x1c00 0x100>;
			};
		};

		regulator@1d00 {
			regulator-name = "8226_s4";
			spmi-dev-container;
			#address-cells = <1>;
			#size-cells = <1>;
			compatible = "qcom,qpnp-regulator";
			reg = <0x1d00 0x300>;
			status = "disabled";

			qcom,ctl@1d00 {
				reg = <0x1d00 0x100>;
			};
			qcom,ps@1e00 {
				reg = <0x1e00 0x100>;
			};
			qcom,freq@1f00 {
				reg = <0x1f00 0x100>;
			};
		};

		regulator@2000 {
			regulator-name = "8226_s5";
			spmi-dev-container;
			#address-cells = <1>;
			#size-cells = <1>;
			compatible = "qcom,qpnp-regulator";
			reg = <0x2000 0x300>;
			status = "disabled";

			qcom,ctl@2000 {
				reg = <0x2000 0x100>;
			};
			qcom,ps@2100 {
				reg = <0x2100 0x100>;
			};
			qcom,freq@2200 {
				reg = <0x2200 0x100>;
			};
		};

		regulator@4000 {
			regulator-name = "8226_l1";
			reg = <0x4000 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@4100 {
			regulator-name = "8226_l2";
			reg = <0x4100 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@4200 {
			regulator-name = "8226_l3";
			reg = <0x4200 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@4300 {
			regulator-name = "8226_l4";
			reg = <0x4300 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@4400 {
			regulator-name = "8226_l5";
			reg = <0x4400 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@4500 {
			regulator-name = "8226_l6";
			reg = <0x4500 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@4600 {
			regulator-name = "8226_l7";
			reg = <0x4600 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@4700 {
			regulator-name = "8226_l8";
			reg = <0x4700 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@4800 {
			regulator-name = "8226_l9";
			reg = <0x4800 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@4900 {
			regulator-name = "8226_l10";
			reg = <0x4900 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@4b00 {
			regulator-name = "8226_l12";
			reg = <0x4b00 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@4d00 {
			regulator-name = "8226_l14";
			reg = <0x4d00 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@4e00 {
			regulator-name = "8226_l15";
			reg = <0x4e00 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@4f00 {
			regulator-name = "8226_l16";
			reg = <0x4f00 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@5000 {
			regulator-name = "8226_l17";
			reg = <0x5000 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@5100 {
			regulator-name = "8226_l18";
			reg = <0x5100 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@5200 {
			regulator-name = "8226_l19";
			reg = <0x5200 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@5300 {
			regulator-name = "8226_l20";
			reg = <0x5300 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@5400 {
			regulator-name = "8226_l21";
			reg = <0x5400 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@5500 {
			regulator-name = "8226_l22";
			reg = <0x5500 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@5600 {
			regulator-name = "8226_l23";
			reg = <0x5600 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@5700 {
			regulator-name = "8226_l24";
			reg = <0x5700 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@5900 {
			regulator-name = "8226_l26";
			reg = <0x5900 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@5a00 {
			regulator-name = "8226_l27";
			reg = <0x5a00 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		regulator@5b00 {
			regulator-name = "8226_l28";
			reg = <0x5b00 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};

		qcom,leds@d800 {
			compatible = "qcom,leds-qpnp";
			reg = <0xd800 0x100>;
			label = "wled";
		};

		regulator@8000 {
			regulator-name = "8226_lvs1";
			reg = <0x8000 0x100>;
			compatible = "qcom,qpnp-regulator";
			status = "disabled";
		};
	};
};
