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

&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 = <0x00>;
		qcom,saw2-spm-dly= <0x3c102800>;
		qcom,saw2-spm-ctl = <0x8>;
		qcom,saw2-spm-cmd-wfi = [60 03 60 0b 0f];
		qcom,saw2-spm-cmd-spc = [20 10 80 30 90 5b 60 03 60 3b 76 76
				0b 94 5b 80 10 26 30 0f];
		qcom,saw2-spm-cmd-pc = [20 10 80 30 90 5b 60 03 60 3b 76 76
				0b 94 5b 80 10 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 = <0x00>;
		qcom,saw2-spm-dly= <0x3c102800>;
		qcom,saw2-spm-ctl = <0x8>;
		qcom,saw2-spm-cmd-wfi = [60 03 60 0b 0f];
		qcom,saw2-spm-cmd-spc = [20 10 80 30 90 5b 60 03 60 3b 76 76
				0b 94 5b 80 10 26 30 0f];
		qcom,saw2-spm-cmd-pc = [20 10 80 30 90 5b 60 03 60 3b 76 76
				0b 94 5b 80 10 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 = <0x00>;
		qcom,saw2-spm-dly= <0x3c102800>;
		qcom,saw2-spm-ctl = <0x8>;
		qcom,saw2-spm-cmd-wfi = [60 03 60 0b 0f];
		qcom,saw2-spm-cmd-spc = [20 10 80 30 90 5b 60 03 60 3b 76 76
				0b 94 5b 80 10 26 30 0f];
		qcom,saw2-spm-cmd-pc = [20 10 80 30 90 5b 60 03 60 3b 76 76
				0b 94 5b 80 10 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 = <0x00>;
		qcom,saw2-spm-dly= <0x3c102800>;
		qcom,saw2-spm-ctl = <0x8>;
		qcom,saw2-spm-cmd-wfi = [60 03 60 0b 0f];
		qcom,saw2-spm-cmd-spc = [20 10 80 30 90 5b 60 03 60 3b 76 76
				0b 94 5b 80 10 26 30 0f];
		qcom,saw2-spm-cmd-pc = [20 10 80 30 90 5b 60 03 60 3b 76 76
				0b 94 5b 80 10 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= <0x3c102800>;
		qcom,saw2-spm-ctl = <0x0>;
		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 = [00 03 00 0f];
		qcom,saw2-spm-cmd-pc = [00 32 b0 10 e0 d0 6b c0 42 f0
				11 07 01 b0 50 4e 02 02 c0 d0 12 e0 6b 02 32
				50 f0 0f]; /*APCS_PMIC_OFF_L2RAM_OFF*/
		qcom,saw2-spm-cmd-pc-no-rpm = [00 32 b0 10 e0 d0 6b c0 42 f0
				11 03 01 b0 50 4e 02 02 c0 d0 12 e0 6b 02 32
				50 f0 0f]; /*APCS_PMIC_OFF_L2RAM_OFF*/
		qcom,L2-spm-is-apcs-master;
	};

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

		qcm,cpu-modes {
			compatible = "qcom,cpu-modes";

			qcom,cpu-modes@0 {
				qcom,mode = "wfi";
				qcom,latency-us = <1>;
				qcom,ss-power = <530>;
				qcom,energy-overhead = <52800>;
				qcom,time-overhead = <100>;
			};

			qcom,cpu-modes@1 {
				qcom,mode = "standalone_pc";
				qcom,latency-us = <500>;
				qcom,ss-power = <410>;
				qcom,energy-overhead = <603400>;
				qcom,time-overhead = <1200>;
				qcom,use-broadcast-timer;
			};

			qcom,cpu-modes@2 {
				qcom,mode = "pc";
				qcom,latency-us = <550>;
				qcom,ss-power = <372>;
				qcom,energy-overhead = <700000>;
				qcom,time-overhead = <1410>;
				qcom,use-broadcast-timer;
			};
		};

		qcom,system-modes {
			compatible = "qcom,system-modes";

			qcom,system-modes@0 {
				qcom,l2 = "l2_cache_gdhs";
				qcom,latency-us = <10700>;
				qcom,ss-power = <372>;
				qcom,energy-overhead = <738750>;
				qcom,time-overhead = <1410>;
				qcom,min-cpu-mode= "pc";
				qcom,sync-cpus;
			};

			qcom,system-modes@1 {
				qcom,l2 = "l2_cache_pc_no_rpm";
				qcom,latency-us = <1000>;
				qcom,ss-power = <315>;
				qcom,energy-overhead = <1027150>;
				qcom,time-overhead = <2400>;
				qcom,min-cpu-mode= "spc";
				qcom,sync-cpus;
			};

			qcom,system-modes@2 {
				qcom,l2 = "l2_cache_pc";
				qcom,latency-us = <12700>;
				qcom,ss-power = <315>;
				qcom,energy-overhead = <1027150>;
				qcom,time-overhead = <2400>;
				qcom,min-cpu-mode= "pc";
				qcom,sync-cpus;
			};
		};
	};

	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 = <47 172>, /* usb2_hsic_async_wakeup_irq */
			<53 104>, /* mdss_irq */
			<62 222>, /* ee0_krait_hlos_spmi_periph_irq */
			<2 216>, /* tsens_upper_lower_int */
			<0xff 18>,  /* APC_qgicQTmrSecPhysIrptReq */
			<0xff 19>,  /* APC_qgicQTmrNonSecPhysIrptReq */
			<0xff 35>,  /* WDT_barkInt */
			<0xff 40>,  /* qtmr_phy_irq[0] */
			<0xff 47>,  /* rbif_irq[0] */
			<0xff 56>,  /* q6_wdog_expired_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 61>,  /* mss_a2_bam_irq */
			<0xff 65>,  /* o_gc_sys_irq[0] */
			<0xff 74>,  /* venus0_mmu_cirpt[1] */
			<0xff 75>,  /* venus0_mmu_cirpt[0] */
			<0xff 78>,  /* mdss_mmu_cirpt[0] */
			<0xff 79>,  /* mdss_mmu_cirpt[1] */
			<0xff 97>,  /* camss_vfe_mmu_cirpt[1] */
			<0xff 102>, /* camss_jpeg_mmu_cirpt[1] */
			<0xff 109>, /* ocmem_dm_nonsec_irq */
			<0xff 131>, /* blsp1_qup_5_irq */
			<0xff 141>, /* blsp1_uart_3_irq */
			<0xff 155>, /* sdc1_irq(0) */
			<0xff 157>, /* sdc2_irq(0) */
			<0xff 161>, /* lpass_irq_out_spare[4] */
			<0xff 162>, /* lpass_irq_out_spare[5]*/
			<0xff 170>, /* sdc1_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 181>, /* o_wcss_apss_wdog_bite_and_reset_rdy */
			<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 194>, /* lpass_irq_out_apcs(6) */
			<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 234>, /* lpass_irq_out_spare[6]*/
			<0xff 235>, /* lpass_irq_out_spare[7]*/
			<0xff 240>, /* summary_irq_kpss */
			<0xff 253>, /* sdc2_pwr_cmd_irq */
			<0xff 258>, /* rpm_ipc(28) */
			<0xff 259>, /* rpm_ipc(29) */
			<0xff 269>, /* rpm_wdog_expired_irq */
			<0xff 270>, /* blsp1_bam_irq[0] */
			<0xff 275>, /* rpm_ipc(30) */
			<0xff 276>; /* rpm_ipc(31) */

		qcom,gpio-parent = <&msmgpio>;
		qcom,gpio-map = <3  1>,
			<4  4 >,
			<5  5 >,
			<6  9 >,
			<7  13>,
			<8  17>,
			<9  21>,
			<10  27>,
			<11  29>,
			<12  31>,
			<13  33>,
			<14  35>,
			<15  37>,
			<16  38>,
			<17  39>,
			<18  41>,
			<19  46>,
			<20  48>,
			<21  49>,
			<22  50>,
			<23  51>,
			<24  52>,
			<25  54>,
			<26  62>,
			<27  63>,
			<28  64>,
			<29  65>,
			<30  66>,
			<31  67>,
			<32  68>,
			<33  69>,
			<34  71>,
			<35  72>,
			<36  106>,
			<37  107>,
			<38  108>,
			<39  109>,
			<40  110>,
			<41  115>,
			<54  111>,
			<55  113>;
	};

	qcom,pm-8x60@fe805664 {
		compatible = "qcom,pm-8x60";
		reg = <0xfe805664 0x40>;
		qcom,pc-mode = "tz_l2_int";
		qcom,use-sync-timer;
		qcom,pc-resets-timer;
		qcom,cpus-as-clocks;
		qcom,synced-clocks;
	};

	qcom,cpu-sleep-status@f9088008{
		compatible = "qcom,cpu-sleep-status";
		reg = <0xf9088008 0x100>;
		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-rbcpr-stats@fc000000 {
		compatible = "qcom,rpmrbcpr-stats";
		reg = <0xfc000000 0x1a0000>;
		qcom,start-offset = <0x190010>;
	};

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