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

/include/ "skeleton.dtsi"

/ {
	qcom,spm@f9089000 {
		compatible = "qcom,spm-v2";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0xf9089000 0x1000>;
		qcom,core-id = <0>;
		qcom,saw2-ver-reg = <0xfd0>;
		qcom,saw2-cfg = <0x01>;
		qcom,saw2-spm-dly= <0x20000400>;
		qcom,saw2-spm-ctl = <0x1>;
		qcom,saw2-spm-cmd-wfi = [60 03 60 76 76 0b 0f];
		qcom,saw2-spm-cmd-spc = [00 20 10 80 90 5b 60 03 60 3b 76 76 94
				5b 80 10 2b 30 06 26 30 0f];
		qcom,saw2-spm-cmd-pc = [00 20 10 80 90 5b 60 07 3b 76 76 0b 94
				5b 80 10 2b 30 06 26 30 0f];
	};

	qcom,spm@f9099000 {
		compatible = "qcom,spm-v2";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0xf9099000 0x1000>;
		qcom,core-id = <1>;
		qcom,saw2-ver-reg = <0xfd0>;
		qcom,saw2-cfg = <0x01>;
		qcom,saw2-spm-dly= <0x20000400>;
		qcom,saw2-spm-ctl = <0x1>;
		qcom,saw2-spm-cmd-wfi = [60 03 60 76 76 0b 0f];
		qcom,saw2-spm-cmd-spc = [00 20 10 80 90 5b 60 03 60 3b 76 76 94
				5b 80 10 2b 30 06 26 30 0f];
		qcom,saw2-spm-cmd-pc = [00 20 10 80 90 5b 60 07 3b 76 76 0b 94
				5b 80 10 2b 30 06 26 30 0f];
	};

	qcom,spm@f90a9000 {
		compatible = "qcom,spm-v2";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0xf90a9000 0x1000>;
		qcom,core-id = <2>;
		qcom,saw2-ver-reg = <0xfd0>;
		qcom,saw2-cfg = <0x01>;
		qcom,saw2-spm-dly= <0x20000400>;
		qcom,saw2-spm-ctl = <0x1>;
		qcom,saw2-spm-cmd-wfi = [60 03 60 76 76 0b 0f];
		qcom,saw2-spm-cmd-spc = [00 20 10 80 90 5b 60 03 60 3b 76 76 94
				5b 80 10 2b 30 06 26 30 0f];
		qcom,saw2-spm-cmd-pc = [00 20 10 80 90 5b 60 07 3b 76 76 0b 94
				5b 80 10 2b 30 06 26 30 0f];
	};

	qcom,spm@f90b9000 {
		compatible = "qcom,spm-v2";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0xf90b9000 0x1000>;
		qcom,core-id = <3>;
		qcom,saw2-ver-reg = <0xfd0>;
		qcom,saw2-cfg = <0x01>;
		qcom,saw2-spm-dly= <0x20000400>;
		qcom,saw2-spm-ctl = <0x1>;
		qcom,saw2-spm-cmd-wfi = [60 03 60 76 76 0b 0f];
		qcom,saw2-spm-cmd-spc = [00 20 10 80 90 5b 60 03 60 3b 76 76 94
				5b 80 10 2b 30 06 26 30 0f];
		qcom,saw2-spm-cmd-pc = [00 20 10 80 90 5b 60 07 3b 76 76 0b 94
				5b 80 10 2b 30 06 26 30 0f];
	};

	qcom,spm@f9012000 {
		compatible = "qcom,spm-v2";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0xf9012000 0x1000>;
		qcom,core-id = <0xffff>; /* L2/APCS SAW */
		qcom,saw2-ver-reg = <0xfd0>;
		qcom,saw2-cfg = <0x14>;
		qcom,saw2-spm-dly= <0x20000400>;
		qcom,saw2-spm-ctl = <0x1>;
		qcom,saw2-pmic-data0 = <0x02030080>;
		qcom,saw2-pmic-data1 = <0x00030000>;
		qcom,vctl-timeout-us = <50>;
		qcom,vctl-port = <0x0>;
		qcom,phase-port = <0x1>;
		qcom,pfm-port = <0x2>;
		qcom,saw2-spm-cmd-ret = [0b 00 03 00 7b 0f];
		qcom,saw2-spm-cmd-gdhs = [00 20 32 60 70 80 0b 6b c0 e0 d0 42 07
				78 1f 80 4e d0 e0 c0 22 6b 50 4b 60 02 32 50 7b
				0f];
		qcom,saw2-spm-cmd-pc = [00 32 60 70 80 b0 0b 10 e0 d0 6b c0
				42 f0 11 07 01 b0 78 1f 80 4e c0 d0 12 e0 6b 50 4b
				60 02 32 50 f0 7b 0f]; /*APCS_PMIC_OFF_L2RAM_OFF*/
	};

	qcom,lpm-resources {
		compatible = "qcom,lpm-resources";
		#address-cells = <1>;
		#size-cells = <0>;

		qcom,lpm-resources@0 {
			reg = <0x0>;
			qcom,name = "vdd-dig";
			qcom,resource-type = <0>;
			qcom,type = <0x62706d73>;	/* "smpb" */
			qcom,id = <0x02>;
			qcom,key = <0x6e726f63>;	/* "corn" */
			qcom,init-value = <5>;		/* Super Turbo */
		};

		qcom,lpm-resources@1 {
			reg = <0x1>;
			qcom,name = "vdd-mem";
			qcom,resource-type = <0>;
			qcom,type = <0x62706d73>;	/* "smpb" */
			qcom,id = <0x01>;
			qcom,key = <0x7675>;		/* "uv" */
			qcom,init-value = <1050000>;	/* Super Turbo */
		};

		qcom,lpm-resources@2 {
			reg = <0x2>;
			qcom,name = "pxo";
			qcom,resource-type = <0>;
			qcom,type = <0x306b6c63>;	/* "clk0" */
			qcom,id = <0x00>;
			qcom,key = <0x62616e45>;	/* "Enab" */
			qcom,init-value = <1>;		/* On */
		};

		qcom,lpm-resources@3 {
			reg = <0x3>;
			qcom,name = "l2";
			qcom,resource-type = <1>;
			qcom,init-value = <2>;		/* Retention */
		};
	};

	qcom,lpm-levels {
		compatible = "qcom,lpm-levels";
		#address-cells = <1>;
		#size-cells = <0>;

		qcom,lpm-level@0 {
			reg = <0x0>;
			qcom,mode = <0>;        /* MSM_PM_SLEEP_MODE_WAIT_FOR_INTERRUPT */
			qcom,xo = <1>;          /* ON */
			qcom,l2 = <3>;          /* ACTIVE */
			qcom,vdd-mem-upper-bound = <1150000>; /* MAX */
			qcom,vdd-mem-lower-bound = <1050000>; /* ACTIVE */
			qcom,vdd-dig-upper-bound = <5>; /* MAX */
			qcom,vdd-dig-lower-bound = <3>;  /* ACTIVE */
			qcom,latency-us = <1>;
			qcom,ss-power = <784>;
			qcom,energy-overhead = <190000>;
			qcom,time-overhead = <100>;
		};

		qcom,lpm-level@1 {
			reg = <0x1>;
			qcom,mode = <4>;        /* MSM_PM_SLEEP_MODE_RETENTION*/
			qcom,xo = <1>;          /* ON */
			qcom,l2 = <3>;          /* ACTIVE */
			qcom,vdd-mem-upper-bound = <1150000>; /* MAX */
			qcom,vdd-mem-lower-bound = <1050000>; /* ACTIVE */
			qcom,vdd-dig-upper-bound = <5>; /* MAX */
			qcom,vdd-dig-lower-bound = <3>;  /* ACTIVE */
			qcom,latency-us = <75>;
			qcom,ss-power = <735>;
			qcom,energy-overhead = <77341>;
			qcom,time-overhead = <105>;
		};


		qcom,lpm-level@2 {
			reg = <0x2>;
			qcom,mode = <2>;        /* MSM_PM_SLEEP_MODE_STANDALONE_POWER_COLLAPSE */
			qcom,xo = <1>;          /* ON */
			qcom,l2 = <3>;          /* ACTIVE */
			qcom,vdd-mem-upper-bound = <1150000>; /* MAX */
			qcom,vdd-mem-lower-bound = <1050000>; /* ACTIVE */
			qcom,vdd-dig-upper-bound = <5>; /* MAX */
			qcom,vdd-dig-lower-bound = <3>;  /* ACTIVE */
			qcom,latency-us = <95>;
			qcom,ss-power = <725>;
			qcom,energy-overhead = <99500>;
			qcom,time-overhead = <130>;
		};

		qcom,lpm-level@3 {
			reg = <0x3>;
			qcom,mode = <3>;        /* MSM_PM_SLEEP_MODE_POWER_COLLAPSE */
			qcom,xo = <1>;          /* ON */
			qcom,l2 = <1>;          /* GDHS */
			qcom,vdd-mem-upper-bound = <1150000>; /* MAX */
			qcom,vdd-mem-lower-bound = <1050000>; /* ACTIVE */
			qcom,vdd-dig-upper-bound = <5>; /* MAX */
			qcom,vdd-dig-lower-bound = <3>;  /* ACTIVE */
			qcom,latency-us = <2000>;
			qcom,ss-power = <138>;
			qcom,energy-overhead = <1208400>;
			qcom,time-overhead = <3200>;
		};

		qcom,lpm-level@4 {
			reg = <0x4>;
			qcom,mode = <3>;        /* MSM_PM_SLEEP_MODE_POWER_COLLAPSE */
			qcom,xo = <1>;          /* ON */
			qcom,l2 = <0>;          /* OFF */
			qcom,vdd-mem-upper-bound = <1050000>; /* ACTIVE */
			qcom,vdd-mem-lower-bound = <750000>;  /* RETENTION HIGH */
			qcom,vdd-dig-upper-bound = <3>;  /* ACTIVE */
			qcom,vdd-dig-lower-bound = <2>;  /* RETENTION HIGH */
			qcom,latency-us = <3000>;
			qcom,ss-power = <110>;
			qcom,energy-overhead = <1250300>;
			qcom,time-overhead = <3500>;
		};

		qcom,lpm-level@5 {
			reg = <0x5>;
			qcom,mode = <3>;        /* MSM_PM_SLEEP_MODE_POWER_COLLAPSE */
			qcom,xo = <0>;          /* OFF */
			qcom,l2 = <1>;          /* GDHS */
			qcom,vdd-mem-upper-bound = <1150000>; /* MAX */
			qcom,vdd-mem-lower-bound = <1050000>; /* ACTIVE */
			qcom,vdd-dig-upper-bound = <5>; /* MAX */
			qcom,vdd-dig-lower-bound = <3>;  /* ACTIVE */
			qcom,latency-us = <3000>;
			qcom,ss-power = <68>;
			qcom,energy-overhead = <1350200>;
			qcom,time-overhead = <4000>;
		};

		qcom,lpm-level@6 {
			reg = <0x6>;
			qcom,mode = <3>;        /* MSM_PM_SLEEP_MODE_POWER_COLLAPSE */
			qcom,xo = <0>;          /* OFF */
			qcom,l2 = <0>;          /* OFF */
			qcom,vdd-mem-upper-bound = <1150000>; /* MAX */
			qcom,vdd-mem-lower-bound = <1050000>; /* ACTIVE */
			qcom,vdd-dig-upper-bound = <5>; /* MAX */
			qcom,vdd-dig-lower-bound = <3>;  /* ACTIVE */
			qcom,latency-us = <10300>;
			qcom,ss-power = <63>;
			qcom,energy-overhead = <2128000>;
			qcom,time-overhead = <18200>;
		};

		qcom,lpm-level@7 {
			reg = <0x7>;
			qcom,mode= <3>;         /* MSM_PM_SLEEP_MODE_POWER_COLLAPSE */
			qcom,xo = <0>;          /* OFF */
			qcom,l2 = <0>;          /* OFF */
			qcom,vdd-mem-upper-bound = <1050000>; /* ACTIVE */
			qcom,vdd-mem-lower-bound = <750000>;  /* RETENTION HIGH */
			qcom,vdd-dig-upper-bound = <3>;  /* ACTIVE */
			qcom,vdd-dig-lower-bound = <2>;  /* RETIONTION HIGH */
			qcom,latency-us = <18000>;
			qcom,ss-power = <10>;
			qcom,energy-overhead = <3202600>;
			qcom,time-overhead = <27000>;
		};

		qcom,lpm-level@8 {
			reg = <0x8>;
			qcom,mode= <3>;         /* MSM_PM_SLEEP_MODE_POWER_COLLAPSE */
			qcom,xo = <0>;          /* OFF */
			qcom,l2 = <0>;          /* OFF */
			qcom,vdd-mem-upper-bound = <750000>; /* RETENTION HIGH */
			qcom,vdd-mem-lower-bound = <750000>; /* RETENTION LOW */
			qcom,vdd-dig-upper-bound = <2>; /* RETENTION HIGH */
			qcom,vdd-dig-lower-bound = <0>; /* RETENTION LOW */
			qcom,latency-us = <20000>;
			qcom,ss-power = <2>;
			qcom,energy-overhead = <4252000>;
			qcom,time-overhead = <32000>;
		};
	};

	qcom,pm-boot {
		compatible = "qcom,pm-boot";
		qcom,mode = <0>; /* MSM_PM_BOOT_CONFIG_TZ */
	};

	qcom,mpm@fc4281d0 {
		compatible = "qcom,mpm-v2";
		reg = <0xfc4281d0 0x1000>, /* MSM_RPM_MPM_BASE 4K */
		    <0xf9011008 0x4>;   /* MSM_APCS_GCC_BASE 4K */
		reg-names = "vmpm", "ipc";
		interrupts = <0 171 1>;

		qcom,ipc-bit-offset = <1>;

		qcom,gic-parent = <&intc>;
		qcom,gic-map = <47 172>, /* usb2_hsic_async_wakeup_irq */
			<53 104>, /* mdss_irq */
			<62 222>, /* ee0_krait_hlos_spmi_periph_irq */
			<0xff 57>,  /* mss_to_apps_irq(0) */
			<0xff 58>,  /* mss_to_apps_irq(1) */
			<0xff 59>,  /* mss_to_apps_irq(2) */
			<0xff 60>,  /* mss_to_apps_irq(3) */
			<0xff 173>, /* o_wcss_apss_smd_hi */
			<0xff 174>, /* o_wcss_apss_smd_med */
			<0xff 175>, /* o_wcss_apss_smd_low */
			<0xff 176>, /* o_wcss_apss_smsm_irq */
			<0xff 177>, /* o_wcss_apss_wlan_data_xfer_done */
			<0xff 178>, /* o_wcss_apss_wlan_rx_data_avail */
			<0xff 179>, /* o_wcss_apss_asic_intr

			<0xff 188>, /* lpass_irq_out_apcs(0) */
			<0xff 189>, /* lpass_irq_out_apcs(1) */
			<0xff 190>, /* lpass_irq_out_apcs(2) */
			<0xff 191>, /* lpass_irq_out_apcs(3) */
			<0xff 192>, /* lpass_irq_out_apcs(4) */
			<0xff 193>, /* lpass_irq_out_apcs(5) */
			<0xff 194>, /* lpass_irq_out_apcs(6) */
			<0xff 195>, /* lpass_irq_out_apcs(7) */
			<0xff 196>, /* lpass_irq_out_apcs(8) */
			<0xff 197>, /* lpass_irq_out_apcs(9) */
			<0xff 200>, /* rpm_ipc(4) */
			<0xff 201>, /* rpm_ipc(5) */
			<0xff 202>, /* rpm_ipc(6) */
			<0xff 203>, /* rpm_ipc(7) */
			<0xff 204>, /* rpm_ipc(24) */
			<0xff 205>, /* rpm_ipc(25) */
			<0xff 206>, /* rpm_ipc(26) */
			<0xff 207>, /* rpm_ipc(27) */
			<0xff 240>; /* summary_irq_kpss */

		qcom,gpio-parent = <&msmgpio>;
		qcom,gpio-map = <3  102>,
			<4  1 >,
			<5  5 >,
			<6  9 >,
			<7  18>,
			<8  20>,
			<9  24>,
			<10  27>,
			<11  28>,
			<12  34>,
			<13  35>,
			<14  37>,
			<15  42>,
			<16  44>,
			<17  46>,
			<18  50>,
			<19  54>,
			<20  59>,
			<21  61>,
			<22  62>,
			<23  64>,
			<24  65>,
			<25  66>,
			<26  67>,
			<27  68>,
			<28  71>,
			<29  72>,
			<30  73>,
			<31  74>,
			<32  75>,
			<33  77>,
			<34  79>,
			<35  80>,
			<36  82>,
			<37  86>,
			<38  92>,
			<39  93>,
			<40  95>;
	};

	qcom,pc-cntr@fe805664 {
		compatible = "qcom,pc-cntr";
		reg = <0xfe805664 0x40>;
	};

	qcom,pm-8x60 {
		compatible = "qcom,pm-8x60";
		qcom,pc-mode = <0>; /*MSM_PC_TZ_L2_INT */
		qcom,use-sync-timer;
	};

	qcom,rpm-stats@0xfc19dbd0{
		compatible = "qcom,rpm-stats";
		reg = <0xfc19dbd0 0x1000>;
		reg-names = "phys_addr_base";
		qcom,sleep-stats-version = <2>;
	};
};
