/* 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.
 */

&soc {
	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-avs-ctl = <0>;
		qcom,saw2-avs-hysteresis = <0>;
		qcom,saw2-avs-limit = <0>;
		qcom,saw2-avs-dly= <0>;
		qcom,saw2-spm-dly= <0x20000400>;
		qcom,saw2-spm-ctl = <0x1>;
		qcom,saw2-spm-cmd-wfi = [03 0b 0f];
		qcom,saw2-spm-cmd-ret = [42 1b 00 d0 c0 a0 90 03 d0 98 a2 c0
				0b 00 42 1b 0f];
		qcom,saw2-spm-cmd-spc = [00 20 80 10 90 a0 b0 03 3b 98 a2 b0 82
				10 0b 30 06 26 30 0f];
		qcom,saw2-spm-cmd-pc = [00 20 80 10 90 a0 b0 07 3b 98 a2 b0 82
				10 0b 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-avs-ctl = <0>;
		qcom,saw2-avs-hysteresis = <0>;
		qcom,saw2-avs-limit = <0>;
		qcom,saw2-avs-dly= <0>;
		qcom,saw2-spm-dly= <0x20000400>;
		qcom,saw2-spm-ctl = <0x1>;
		qcom,saw2-spm-cmd-wfi = [03 0b 0f];
		qcom,saw2-spm-cmd-ret = [42 1b 00 d0 c0 a0 90 03 d0 98 a2 c0
				0b 00 42 1b 0f];
		qcom,saw2-spm-cmd-spc = [00 20 80 10 90 a0 b0 03 3b 98 a2 b0 82
				10 0b 30 06 26 30 0f];
		qcom,saw2-spm-cmd-pc = [00 20 80 10 90 a0 b0 07 3b 98 a2 b0 82
				10 0b 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-avs-ctl = <0>;
		qcom,saw2-avs-hysteresis = <0>;
		qcom,saw2-avs-limit = <0>;
		qcom,saw2-avs-dly= <0>;
		qcom,saw2-spm-dly= <0x20000400>;
		qcom,saw2-spm-ctl = <0x1>;
		qcom,saw2-spm-cmd-wfi = [03 0b 0f];
		qcom,saw2-spm-cmd-ret = [42 1b 00 d0 c0 a0 90 03 d0 98 a2 c0
				0b 00 42 1b 0f];
		qcom,saw2-spm-cmd-spc = [00 20 80 10 90 a0 b0 03 3b 98 a2 b0 82
				10 0b 30 06 26 30 0f];
		qcom,saw2-spm-cmd-pc = [00 20 80 10 90 a0 b0 07 3b 98 a2 b0 82
				10 0b 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-avs-ctl = <0>;
		qcom,saw2-avs-hysteresis = <0>;
		qcom,saw2-avs-limit = <0>;
		qcom,saw2-avs-dly= <0>;
		qcom,saw2-spm-dly= <0x20000400>;
		qcom,saw2-spm-ctl = <0x1>;
		qcom,saw2-spm-cmd-wfi = [03 0b 0f];
		qcom,saw2-spm-cmd-ret = [42 1b 00 d0 c0 a0 90 03 d0 98 a2 c0
				0b 00 42 1b 0f];
		qcom,saw2-spm-cmd-spc = [00 20 80 10 90 a0 b0 03 3b 98 a2 b0 82
				10 0b 30 06 26 30 0f];
		qcom,saw2-spm-cmd-pc = [00 20 80 10 90 a0 b0 07 3b 98 a2 b0 82
				10 0b 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-avs-ctl = <0>;
		qcom,saw2-avs-hysteresis = <0>;
		qcom,saw2-avs-limit = <0>;
		qcom,saw2-avs-dly= <0>;
		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 = [1f 00 20 03 22 00 0f];
		qcom,saw2-spm-cmd-gdhs = [00 20 32 42 03 44 22 50 02 32 50 0f];
		qcom,saw2-spm-cmd-pc = [00 10 32 b0 11 42 07 01 b0 12 44
				50 02 32 50 0f];
		qcom,L2-spm-is-apcs-master;
	};

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

		qcom,lpm-level@0 {
			reg = <0x0>;
			qcom,mode = "wfi";
			qcom,l2 = "l2_cache_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 = "retention";
			qcom,l2 = "l2_cache_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 = "standalone_pc";
			qcom,l2 = "l2_cache_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 = "pc";
			qcom,l2 = "l2_cache_gdhs";
			qcom,latency-us = <20000>;
			qcom,ss-power = <138>;
			qcom,energy-overhead = <1208400>;
			qcom,time-overhead = <3200>;
		};

		qcom,lpm-level@4 {
			reg = <0x4>;
			qcom,mode = "pc";
			qcom,l2 = "l2_cache_pc";
			qcom,latency-us = <30000>;
			qcom,ss-power = <110>;
			qcom,energy-overhead = <1250300>;
			qcom,time-overhead = <3500>;
		};
	};

	qcom,pm-boot {
		compatible = "qcom,pm-boot";
		qcom,mode = "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 = <2 216>, /* tsens_upper_lower_int */
			<47 165>, /* usb30_hs_phy_irq */
			<50 172>, /* usb1_hs_async_wakeup_irq */
			<53 104>, /* mdss_irq */
			<62 222>, /* ee0_krait_hlos_spmi_periph_irq */
			<0xff 34>,  /* APCC_qgicL2ErrorIrptReq */
			<0xff 35>,  /* WDT_barkInt */
			<0xff 40>,  /* qtimer_phy_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 74>,  /* osmmu_CIrpt[1] */
			<0xff 75>,  /* osmmu_CIrpt[0] */
			<0xff 77>,  /* osmmu_CIrpt[0] */
			<0xff 78>,  /* osmmu_CIrpt[0] */
			<0xff 79>,  /* osmmu_CIrpt[0] */
			<0xff 94>,  /* osmmu_CIrpt[0] */
			<0xff 99>,  /* msm_iommu_pmon_nonsecure_irq */
			<0xff 102>,  /* osmmu_CIrpt[1] */
			<0xff 109>,  /* ocmem_dm_nonsec_irq */
			<0xff 126>,  /* bam_irq[0] */
			<0xff 155>,  /* sdcc_irq[0] */
			<0xff 163>,  /* usb30_ee1_irq */
			<0xff 170>,  /* sdcc_pwr_cmd_irq */
			<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 198>, /* coresight-tmc-etr interrupt */
			<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 */
			<0xff 268>, /* bam_irq[1] */
			<0xff 270>, /* bam_irq[0] */
			<0xff 271>; /* bam_irq[0] */

		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>,
			<41  144>;
	};

	qcom,pm-8x60@fe805664 {
		compatible = "qcom,pm-8x60";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;
		reg = <0xfe805664 0x40>;
		qcom,pc-mode = "tz_l2_int";
		qcom,use-sync-timer;
		qcom,cpus-as-clocks;
	};

	qcom,cpu-sleep-status@f9088008 {
		compatible = "qcom,cpu-sleep-status";
		reg = <0xf9088008 0x4>;
		qcom,cpu-alias-addr = <0x10000>;
		qcom,sleep-status-mask= <0x80000>;
	};

	qcom,rpm-log@fc19dc00 {
		compatible = "qcom,rpm-log";
		reg = <0xfc19dc00 0x4000>;
		qcom,rpm-addr-phys = <0xfc000000>;
		qcom,offset-version = <4>;
		qcom,offset-page-buffer-addr = <36>;
		qcom,offset-log-len = <40>;
		qcom,offset-log-len-mask = <44>;
		qcom,offset-page-indices = <56>;
	};

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

	qcom,rpm-master-stats@fc428150 {
		compatible = "qcom,rpm-master-stats";
		reg = <0xfc428150 0x3200>;
		qcom,masters = "APSS", "MPSS", "LPSS", "PRONTO";
		qcom,master-stats-version = <2>;
		qcom,master-offset = <2560>;
	};

};
