/* 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_pc_no_rpm";
				qcom,latency-us = <1000>;
				qcom,ss-power = <315>;
				qcom,energy-overhead = <1027150>;
				qcom,time-overhead = <2400>;
				qcom,min-cpu-mode= "standalone_pc";
				qcom,sync-cpus;
			};

			qcom,system-modes@1 {
				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,send-rpm-sleep-set;
			};
		};
	};

	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 */
			<41 63>,  /* dino_gen_purpose_irq35 */
			<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 198>, /* QDSS - u_qdss */
			<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  5 >,
			<5  9 >,
			<6  14>,
			<7  15>,
			<8  32>,
			<9  33>,
			<10  34>,
			<11  35>,
			<12  41>,
			<13  42>,
			<14  72>,
			<15  73>,
			<16  74>,
			<17  75>,
			<18  76>,
			<19  77>,
			<20  78>,
			<21  79>,
			<22  80>,
			<23  81>,
			<24  82>,
			<25  83>,
			<26  84>,
			<27  85>,
			<28  87>,
			<29  90>,
			<30  91>,
			<31  92>,
			<32  93>,
			<33  94>,
			<34  95>,
			<35  96>,
			<36  97>,
			<37  98>,
			<38  99>,
			<39  100>,
			<40  101>;
	};

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