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

/include/ "skeleton.dtsi"
/include/ "msm9625-ion.dtsi"
/include/ "msm9625-pm.dtsi"
/include/ "msm9625-coresight.dtsi"
/include/ "msm9625-smp2p.dtsi"

/ {
	model = "Qualcomm MSM 9625";
	compatible = "qcom,msm9625";
	interrupt-parent = <&intc>;

	aliases {
		spi0 = &spi_0;
	};

	intc: interrupt-controller@F9000000 {
		compatible = "qcom,msm-qgic2";
		interrupt-controller;
		#interrupt-cells = <3>;
		reg = <0xF9000000 0x1000>,
		      <0xF9002000 0x1000>;
	};

	l2: cache-controller@f9040000 {
		compatible = "arm,pl310-cache";
		reg = <0xf9040000 0x1000>;
		cache-unified;
		cache-level = <2>;
	};

	msmgpio: gpio@fd510000 {
		compatible = "qcom,msm-gpio";
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-controller;
		#interrupt-cells = <2>;
		reg = <0xfd510000 0x4000>;
		ngpio = <76>;
		interrupts = <0 208 0>;
		qcom,direct-connect-irqs = <8>;
	};

	qcom,mpm2-sleep-counter@fc4a3000 {
		compatible = "qcom,mpm2-sleep-counter";
		reg = <0xfc4a3000 0x1000>;
		clock-frequency = <32768>;
	};

	timer: msm-qtimer@f9021000 {
		compatible = "arm,armv7-timer";
		reg = <0xF9021000 0x1000>;
		interrupts = <0 7 0>;
		irq-is-not-percpu;
		clock-frequency = <19200000>;
	};

	qcom,sps@f9980000 {
		compatible = "qcom,msm_sps";
		reg = <0xf9984000 0x15000>,
		      <0xf9999000 0xb000>,
		      <0xfe803000 0x4800>;
		interrupts = <0 94 0>;
		qcom,device-type = <2>;
	};

	serial@f991f000 {
		compatible = "qcom,msm-lsuart-v14";
		reg = <0xf991f000 0x1000>;
		interrupts = <0 109 0>;
	};

	usb@f9a55000 {
		compatible = "qcom,hsusb-otg";
		reg = <0xf9a55000 0x400>;
		interrupts = <0 134 0 0 140 0>;
		interrupt-names = "core_irq", "async_irq";
		HSUSB_VDDCX-supply = <&pm8019_l12>;
		HSUSB_1p8-supply = <&pm8019_l2>;
		HSUSB_3p3-supply = <&pm8019_l4>;
		vbus_otg-supply = <&usb_vbus>;

		qcom,hsusb-otg-phy-type = <2>;
		qcom,hsusb-otg-mode = <3>;
		qcom,hsusb-otg-otg-control = <1>;
		qcom,hsusb-otg-disable-reset;
		qcom,hsusb-otg-lpm-on-dev-suspend;
		qcom,hsusb-otg-clk-always-on-workaround;
		qcom,hsusb-otg-delay-lpm;

		qcom,msm-bus,name = "usb2";
		qcom,msm-bus,num-cases = <2>;
		qcom,msm-bus,active-only = <0>;
		qcom,msm-bus,num-paths = <1>;
		qcom,msm-bus,vectors-KBps =
				<87 512 0 0>,
				<87 512 40000 640000>;
	};

	hsic@f9a15000 {
		compatible = "qcom,hsic-host";
		reg = <0xf9a15000 0x400>;
		interrupts = <0 136 0>, <0 148 0>;
		interrupt-names = "core_irq", "async_irq";
		HSIC_VDDCX-supply = <&pm8019_l12>;
		HSIC_GDSC-supply = <&gdsc_usb_hsic>;

		qcom,msm-bus,name = "hsic";
		qcom,msm-bus,num-cases = <2>;
		qcom,msm-bus,active-only = <0>;
		qcom,msm-bus,num-paths = <1>;
		qcom,msm-bus,vectors-KBps =
				<85 512 0 0>,
				<85 512 40000 640000>;
		qcom,pool-64-bit-align;
		qcom,enable-hbm;
	};

	qcom,usbbam@f9a44000 {
		compatible = "qcom,usb-bam-msm";
		reg = <0xf9a44000 0x11000>,
		      <0xf9a04000 0x11000>;
		reg-names = "hsusb", "hsic";
		interrupts = <0 135 0 0 255 0>;
		interrupt-names = "hsusb", "hsic";
		qcom,usb-bam-num-pipes = <16>;
		qcom,ignore-core-reset-ack;
		qcom,disable-clk-gating;

		qcom,pipe0 {
			label = "hsusb-ipa-out-0";
			qcom,usb-bam-mem-type = <2>;
			qcom,bam-type = <1>;
			qcom,dir = <0>;
			qcom,pipe-num = <0>;
			qcom,peer-bam = <2>;
			qcom,src-bam-physical-address = <0xf9a44000>;
			qcom,src-bam-pipe-index = <1>;
			qcom,data-fifo-size = <0x8000>;
			qcom,descriptor-fifo-size = <0x2000>;
		};
		qcom,pipe1 {
			label = "hsusb-ipa-in-0";
			qcom,usb-bam-mem-type = <2>;
			qcom,bam-type = <1>;
			qcom,dir = <1>;
			qcom,pipe-num = <0>;
			qcom,peer-bam = <2>;
			qcom,dst-bam-physical-address = <0xf9a44000>;
			qcom,dst-bam-pipe-index = <0>;
			qcom,data-fifo-size = <0x8000>;
			qcom,descriptor-fifo-size = <0x2000>;
		};
		qcom,pipe2 {
			label = "hsusb-qdss-in-0";
			qcom,usb-bam-mem-type = <0>;
			qcom,bam-type = <1>;
			qcom,dir = <1>;
			qcom,pipe-num = <0>;
			qcom,peer-bam = <1>;
			qcom,src-bam-physical-address = <0xfc37c000>;
			qcom,src-bam-pipe-index = <0>;
			qcom,dst-bam-physical-address = <0xf9a44000>;
			qcom,dst-bam-pipe-index = <2>;
			qcom,data-fifo-offset = <0x4100>;
			qcom,data-fifo-size = <0x400>;
			qcom,descriptor-fifo-offset = <0x4000>;
			qcom,descriptor-fifo-size = <0x400>;
		};
		qcom,pipe3 {
			label = "hsic-ipa-in-0";
			qcom,usb-bam-mem-type = <2>;
			qcom,bam-type = <2>;
			qcom,dir = <1>;
			qcom,pipe-num = <0>;
			qcom,peer-bam = <2>;
			qcom,dst-bam-physical-address = <0xf9a04000>;
			qcom,dst-bam-pipe-index = <3>;
			qcom,data-fifo-size = <0xD480>;
			qcom,descriptor-fifo-size = <0x1A80>;
		};
		qcom,pipe4 {
			label = "hsic-ipa-in-1";
			qcom,bam-type = <2>;
			qcom,dir = <1>;
			qcom,pipe-num = <1>;
			qcom,peer-bam = <2>;
			qcom,usb-bam-mem-type = <2>;
			qcom,dst-bam-physical-address = <0xf9a04000>;
			qcom,dst-bam-pipe-index = <4>;
			qcom,data-fifo-size = <0xD480>;
			qcom,descriptor-fifo-size = <0x1A80>;
		};
		qcom,pipe5 {
			label = "hsic-ipa-in-2";
			qcom,usb-bam-mem-type = <2>;
			qcom,bam-type = <2>;
			qcom,dir = <1>;
			qcom,pipe-num = <2>;
			qcom,peer-bam = <2>;
			qcom,dst-bam-physical-address = <0xf9a04000>;
			qcom,dst-bam-pipe-index = <5>;
			qcom,data-fifo-size = <0xD480>;
			qcom,descriptor-fifo-size = <0x1A80>;
		};
		qcom,pipe6 {
			label = "hsic-ipa-in-3";
			qcom,usb-bam-mem-type = <2>;
			qcom,bam-type = <2>;
			qcom,dir = <1>;
			qcom,pipe-num = <3>;
			qcom,peer-bam = <2>;
			qcom,dst-bam-physical-address = <0xf9a04000>;
			qcom,dst-bam-pipe-index = <6>;
			qcom,data-fifo-size = <0xD480>;
			qcom,descriptor-fifo-size = <0x1A80>;
		};
		qcom,pipe7 {
			label = "hsic-ipa-out-0";
			qcom,usb-bam-mem-type = <2>;
			qcom,bam-type = <2>;
			qcom,dir = <0>;
			qcom,pipe-num = <0>;
			qcom,peer-bam = <2>;
			qcom,src-bam-physical-address = <0xf9a04000>;
			qcom,src-bam-pipe-index = <7>;
			qcom,data-fifo-size = <0xD480>;
			qcom,descriptor-fifo-size = <0x1A80>;
		};
	};

	qcom,nand@f9ac0000 {
		compatible = "qcom,msm-nand";
		reg = <0xf9ac0000 0x1000>,
		      <0xf9ac4000 0x8000>;
		reg-names = "nand_phys",
			    "bam_phys";
		interrupts = <0 247 0>;
		interrupt-names = "bam_irq";
	};

	spi_0: spi@f9924000 {
		compatible = "qcom,spi-qup-v2";
		reg = <0xf9924000 0x1000>;
		interrupts = <0 96 0>;
		spi-max-frequency = <25000000>;
		#address-cells = <1>;
		#size-cells = <0>;
		gpios = <&msmgpio 7 0>, /* CLK  */
			<&msmgpio 5 0>, /* MISO */
			<&msmgpio 4 0>; /* MOSI */

		cs-gpios = <&msmgpio 6 0>;

		ethernet-switch@0 {
			compatible = "simtec,ks8851";
			reg = <0>;
			interrupt-parent = <&msmgpio>;
			interrupts = <75 0>;
			spi-max-frequency = <4800000>;
		};
	};

	qcom,wdt@f9017000 {
		compatible = "qcom,msm-watchdog";
		reg = <0xf9017000 0x1000>;
		interrupts = <1 2 0>, <1 1 0>;
		qcom,bark-time = <11000>;
		qcom,pet-time = <10000>;
	};

	rpm_bus: qcom,rpm-smd {
		compatible = "qcom,rpm-smd";
		rpm-channel-name = "rpm_requests";
		rpm-channel-type = <15>; /* SMD_APPS_RPM */
	};

	spmi_bus: qcom,spmi@fc4c0000 {
		cell-index = <0>;
		compatible = "qcom,spmi-pmic-arb";
		reg-names = "core", "intr", "cnfg";
		reg = <0xfc4cf000 0x1000>,
		      <0Xfc4cb000 0x1000>,
		      <0Xfc4ca000 0x1000>;
		/* 190,ee0_krait_hlos_spmi_periph_irq */
		/* 187,channel_0_krait_hlos_trans_done_irq */
		interrupts = <0 190 0 0 187 0>;
		qcom,pmic-arb-ee = <0>;
		qcom,pmic-arb-channel = <0>;
	};

	i2c@f9925000 {
		cell-index = <3>;
		compatible = "qcom,i2c-qup";
		reg = <0xf9925000 0x1000>;
		#address-cells = <1>;
		#size-cells = <0>;
		reg-names = "qup_phys_addr";
		interrupts = <0 97 0>;
		interrupt-names = "qup_err_intr";
		qcom,i2c-bus-freq = <100000>;
		qcom,i2c-src-freq = <24000000>;
	};

	sdcc2: qcom,sdcc@f98a4000 {
		cell-index = <2>; /* SDC2 SD card slot */
		compatible = "qcom,msm-sdcc";
		reg = <0xf98a4000 0x800>,
		      <0xf98a4800 0x100>,
		      <0xf9884000 0x7000>;
		reg-names = "core_mem", "dml_mem", "bam_mem";

		vdd-supply = <&ext_2p95v>;

		vdd-io-supply = <&pm8019_l13>;
		qcom,vdd-io-always-on;
		qcom,vdd-io-lpm-sup;
		qcom,vdd-io-voltage-level = <1800000 2950000>;
		qcom,vdd-io-current-level = <6 22000>;

		qcom,pad-pull-on = <0x0 0x3 0x3>;
		qcom,pad-pull-off = <0x0 0x3 0x3>;
		qcom,pad-drv-on = <0x7 0x4 0x4>;
		qcom,pad-drv-off = <0x0 0x0 0x0>;

		qcom,clk-rates = <400000 25000000 50000000 100000000 200000000>;
		qcom,sup-voltages = <2950 2950>;
		qcom,bus-width = <4>;
		qcom,xpc;
		qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104";
		qcom,current-limit = <800>;

		interrupt-parent = <&sdcc2>;
		#address-cells = <0>;
		interrupts = <0 1 2>;
		#interrupt-cells = <1>;
		interrupt-map-mask = <0xffffffff>;
		interrupt-map = <0 &intc 0 125 0
				 1 &intc 0 220 0
				 2 &msmgpio 66 0x3>;
		interrupt-names = "core_irq", "bam_irq", "status_irq";
		cd-gpios = <&msmgpio 66 0>;
	};

	sdcc3: qcom,sdcc@f9864000 {
		cell-index = <3>; /* SDC3 SDIO slot */
		compatible = "qcom,msm-sdcc";
		reg = <0xf9864000 0x800>,
		      <0xf9864800 0x100>,
		      <0xf9844000 0x7000>;
		reg-names = "core_mem", "dml_mem", "bam_mem";
		interrupts = <0 127 0>, <0 223 0>;
		interrupt-names = "core_irq", "bam_irq";

		gpios = <&msmgpio 25 0>,
			<&msmgpio 24 0>,
			<&msmgpio 16 0>,
			<&msmgpio 17 0>,
			<&msmgpio 18 0>,
			<&msmgpio 19 0>;
		qcom,gpio-names = "CLK", "CMD", "DAT0", "DAT1", "DAT2", "DAT3";

		qcom,clk-rates = <400000 25000000 50000000 100000000>;
		qcom,sup-voltages = <2950 2950>;
		qcom,bus-width = <4>;
		qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50";
	};

	ipa_hw: qcom,ipa@fd4c0000 {
		compatible = "qcom,ipa";
		reg = <0xfd4c0000 0x26000>,
		      <0xfd4c4000 0x14818>,
		      <0xfc834000 0x7000>;
		reg-names = "ipa-base", "bam-base", "a2-bam-base";
		interrupts = <0 252 0>,
		             <0 253 0>,
		             <0 29 1>;
		interrupt-names = "ipa-irq", "bam-irq", "a2-bam-irq";

		qcom,pipe1 {
			label = "a2-to-ipa";
			qcom,src-bam-physical-address = <0xfc834000>;
			qcom,ipa-bam-mem-type = <0>;
			qcom,src-bam-pipe-index = <1>;
			qcom,dst-bam-physical-address = <0xfd4c0000>;
			qcom,dst-bam-pipe-index = <6>;
			qcom,data-fifo-offset = <0x1000>;
			qcom,data-fifo-size = <0xd00>;
			qcom,descriptor-fifo-offset = <0x1d00>;
			qcom,descriptor-fifo-size = <0x300>;
		};

		qcom,pipe2 {
			label = "ipa-to-a2";
			qcom,src-bam-physical-address = <0xfd4c0000>;
			qcom,ipa-bam-mem-type = <0>;
			qcom,src-bam-pipe-index = <7>;
			qcom,dst-bam-physical-address = <0xfc834000>;
			qcom,dst-bam-pipe-index = <0>;
			qcom,data-fifo-offset = <0x00>;
			qcom,data-fifo-size = <0xd00>;
			qcom,descriptor-fifo-offset = <0xd00>;
			qcom,descriptor-fifo-size = <0x300>;
		};
	};

	qcom,acpuclk@f9010000 {
		compatible = "qcom,acpuclk-9625";
		reg = <0xf9010008 0x10>,
		      <0xf9008004 0x4>;
		reg-names = "rcg_base", "pwr_base";
		a5_cpu-supply = <&pm8019_l10_corner_ao>;
		a5_mem-supply = <&pm8019_l12_ao>;
	};

	gdsc_usb_hsic: qcom,gdsc@fc400404 {
		compatible = "qcom,gdsc";
		reg = <0xfc400404 0x4>;
		regulator-name = "gdsc_usb_hsic";
	};

	tsens@fc4a8000 {
		compatible = "qcom,msm-tsens";
		reg = <0xfc4a8000 0x2000>,
		      <0xfc4b8000 0x1000>;
		reg-names = "tsens_physical", "tsens_eeprom_physical";
		interrupts = <0 184 0>;
		qcom,sensors = <5>;
		qcom,slope = <3200 3200 3200 3200 3200>;
		qcom,calib-mode = "fuse_map1";
	};

	qcom,msm-rng@f9bff000 {
                compatible = "qcom,msm-rng";
                reg = <0xf9bff000 0x200>;
                qcom,msm-rng-iface-clk;
	};

	wcd9xxx_intc: wcd9xxx-irq {
		compatible = "qcom,wcd9xxx-irq";
		interrupt-controller;
		#interrupt-cells = <1>;
		interrupt-parent = <&msmgpio>;
		interrupts = <20 0>;
		interrupt-names = "cdc-int";
	};

	i2c@f9925000 {
		cell-index = <3>;
		compatible = "qcom,i2c-qup";
		reg = <0xf9925000 0x1000>;
		#address-cells = <1>;
		#size-cells = <0>;
		reg-names = "qup_phys_addr";
		interrupts = <0 97 0>;
		interrupt-names = "qup_err_intr";
		qcom,i2c-bus-freq = <100000>;
		qcom,i2c-src-freq = <24000000>;

		wcd9xxx_codec@0d{
			compatible = "qcom,wcd9xxx-i2c";
			reg = <0x0d>;
			qcom,cdc-reset-gpio = <&msmgpio 22 0>;
			interrupt-parent = <&wcd9xxx_intc>;
			interrupts = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28>;
			cdc-vdd-buck-supply = <&pm8019_l11>;
			qcom,cdc-vdd-buck-voltage = <1800000 1800000>;
			qcom,cdc-vdd-buck-current = <25000>;

			cdc-vdd-tx-h-supply = <&pm8019_l11>;
			qcom,cdc-vdd-tx-h-voltage = <1800000 1800000>;
			qcom,cdc-vdd-tx-h-current = <25000>;

			cdc-vdd-rx-h-supply = <&pm8019_l11>;
			qcom,cdc-vdd-rx-h-voltage = <1800000 1800000>;
			qcom,cdc-vdd-rx-h-current = <25000>;

			cdc-vddpx-1-supply = <&pm8019_l11>;
			qcom,cdc-vddpx-1-voltage = <1800000 1800000>;
			qcom,cdc-vddpx-1-current = <10000>;

			cdc-vdd-a-1p2v-supply = <&pm8019_l9>;
			qcom,cdc-vdd-a-1p2v-voltage = <1200000 1200000>;
			qcom,cdc-vdd-a-1p2v-current = <10000>;

			cdc-vddcx-1-supply = <&pm8019_l9>;
			qcom,cdc-vddcx-1-voltage = <1200000 1200000>;
			qcom,cdc-vddcx-1-current = <10000>;

			cdc-vddcx-2-supply = <&pm8019_l9>;
			qcom,cdc-vddcx-2-voltage = <1200000 1200000>;
			qcom,cdc-vddcx-2-current = <10000>;

			qcom,cdc-micbias-ldoh-v = <0x3>;
			qcom,cdc-micbias-cfilt1-mv = <1800>;
			qcom,cdc-micbias-cfilt2-mv = <2700>;
			qcom,cdc-micbias-cfilt3-mv = <1800>;
			qcom,cdc-micbias1-cfilt-sel = <0x0>;
			qcom,cdc-micbias2-cfilt-sel = <0x1>;
			qcom,cdc-micbias3-cfilt-sel = <0x2>;
			qcom,cdc-micbias4-cfilt-sel = <0x2>;
			qcom,cdc-mclk-clk-rate = <12288000>;
		};

		wcd9xxx_codec@77{
			compatible = "qcom,wcd9xxx-i2c";
			reg = <0x77>;
		};

		wcd9xxx_codec@66{
			compatible = "qcom,wcd9xxx-i2c";
			reg = <0x66>;
		};

		wcd9xxx_codec@55{
			compatible = "qcom,wcd9xxx-i2c";
			reg = <0x55>;
		};
	};

	sound {
		compatible = "qcom,mdm9625-audio-taiko";
		qcom,model = "mdm9625-taiko-i2s-snd-card";

		qcom,audio-routing =
			"RX_BIAS", "MCLK",
			"LDO_H", "MCLK",
			"Ext Spk Bottom Pos", "LINEOUT1",
			"Ext Spk Bottom Neg", "LINEOUT3",
			"Ext Spk Top Pos", "LINEOUT2",
			"Ext Spk Top Neg", "LINEOUT4",
			"AMIC1", "MIC BIAS1 External",
			"MIC BIAS1 External", "Handset Mic",
			"AMIC2", "MIC BIAS2 External",
			"MIC BIAS2 External", "Headset Mic",
			"AMIC3", "MIC BIAS3 Internal1",
			"MIC BIAS3 Internal1", "ANCRight Headset Mic",
			"AMIC4", "MIC BIAS1 Internal2",
			"MIC BIAS1 Internal2", "ANCLeft Headset Mic",
			"DMIC1", "MIC BIAS1 External",
			"MIC BIAS1 External", "Digital Mic1",
			"DMIC2", "MIC BIAS1 External",
			"MIC BIAS1 External", "Digital Mic2",
			"DMIC3", "MIC BIAS3 External",
			"MIC BIAS3 External", "Digital Mic3",
			"DMIC4", "MIC BIAS3 External",
			"MIC BIAS3 External", "Digital Mic4",
			"DMIC5", "MIC BIAS4 External",
			"MIC BIAS4 External", "Digital Mic5",
			"DMIC6", "MIC BIAS4 External",
			"MIC BIAS4 External", "Digital Mic6";
			qcom,taiko-mclk-clk-freq = <12288000>;
			prim-i2s-gpio-ws   = <&msmgpio 12 0>;
			prim-i2s-gpio-din  = <&msmgpio 13 0>;
			prim-i2s-gpio-dout = <&msmgpio 14 0>;
			prim-i2s-gpio-sclk = <&msmgpio 15 0>;
			prim-i2s-gpio-mclk = <&msmgpio 71 0>;
	};

	qcom,msm-adsp-loader {
		compatible = "qcom,adsp-loader";
		qcom,adsp-state = <2>;
	};

	qcom,msm-pcm {
		compatible = "qcom,msm-pcm-dsp";
		qcom,msm-pcm-dsp-id = <0>;
	};

	qcom,msm-pcm-routing {
		compatible = "qcom,msm-pcm-routing";
	};

	qcom,msm-compr-dsp {
		compatible = "qcom,msm-compr-dsp";
	};

	qcom,msm-voip-dsp {
		compatible = "qcom,msm-voip-dsp";
	};

	qcom,msm-pcm-voice {
		compatible = "qcom,msm-pcm-voice";
	};

	qcom,msm-stub-codec {
		compatible = "qcom,msm-stub-codec";
	};

	qcom,msm-dai-fe {
		compatible = "qcom,msm-dai-fe";
	};

	qcom,msm-pcm-afe {
		compatible = "qcom,msm-pcm-afe";
	};

	qcom,msm-pcm-hostless {
		compatible = "qcom,msm-pcm-hostless";
	};

	qcom,msm-dai-q6 {
		compatible = "qcom,msm-dai-q6";
		qcom,msm-dai-q6-be-afe-pcm-rx {
			compatible = "qcom,msm-dai-q6-dev";
			qcom,msm-dai-q6-dev-id = <224>;
		};

		qcom,msm-dai-q6-be-afe-pcm-tx {
			compatible = "qcom,msm-dai-q6-dev";
			qcom,msm-dai-q6-dev-id = <225>;
		};

		qcom,msm-dai-q6-afe-proxy-rx {
			compatible = "qcom,msm-dai-q6-dev";
			qcom,msm-dai-q6-dev-id = <241>;
		};

		qcom,msm-dai-q6-afe-proxy-tx {
			compatible = "qcom,msm-dai-q6-dev";
			qcom,msm-dai-q6-dev-id = <240>;
		};
	};
	qcom,msm-pcm-dtmf {
		compatible = "qcom,msm-pcm-dtmf";
	};

	qcom,msm-dai-stub {
		compatible = "qcom,msm-dai-stub";
	};

	qcom,msm-stub-codec {
		compatible = "qcom,msm-stub-codec";
	};

	qcom,msm-auxpcm {
		compatible = "qcom,msm-auxpcm-resource";
		qcom,msm-cpudai-auxpcm-clk = "pcm_clk";
		qcom,msm-cpudai-auxpcm-mode = <0>, <0>;
		qcom,msm-cpudai-auxpcm-sync = <1>, <1>;
		qcom,msm-cpudai-auxpcm-frame = <5>, <4>;
		qcom,msm-cpudai-auxpcm-quant = <2>, <2>;
		qcom,msm-cpudai-auxpcm-slot = <1>, <1>;
		qcom,msm-cpudai-auxpcm-data = <0>, <0>;
		qcom,msm-cpudai-auxpcm-pcm-clk-rate = <2048000>, <2048000>;

		qcom,msm-auxpcm-rx {
			qcom,msm-auxpcm-dev-id = <4106>;
			compatible = "qcom,msm-auxpcm-dev";
		};

		qcom,msm-auxpcm-tx {
			qcom,msm-auxpcm-dev-id = <4107>;
			compatible = "qcom,msm-auxpcm-dev";
		};
	};

	qcom,msm-dai-mi2s {
		compatible = "qcom,msm-dai-mi2s";
		qcom,msm-dai-q6-mi2s-prim {
			compatible = "qcom,msm-dai-q6-mi2s";
			qcom,msm-dai-q6-mi2s-dev-id = <0>;
			qcom,msm-mi2s-rx-lines = <2>;
			qcom,msm-mi2s-tx-lines = <1>;
		};
	};

	qcom,msm-dai-q6 {
		compatible = "qcom,msm-dai-q6";
	};

	qcom,mss {
		compatible = "qcom,pil-q6v5-mss";
		interrupts = <0 24 1>;

		/* GPIO input from mss */
		qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_1_in 0 0>;

		/* GPIO output to mss */
		qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_1_out 0 0>;
	};

	qcom,smem@fa00000 {
		compatible = "qcom,smem";
		reg = <0xfa00000 0x200000>,
			<0xf9011000 0x1000>,
			<0xfc428000 0x4000>;
		reg-names = "smem", "irq-reg-base", "aux-mem1";

		qcom,smd-modem {
			compatible = "qcom,smd";
			qcom,smd-edge = <0>;
			qcom,smd-irq-offset = <0x8>;
			qcom,smd-irq-bitmask = <0x1000>;
			qcom,pil-string = "modem";
			interrupts = <0 25 1>;
		};

		qcom,smsm-modem {
			compatible = "qcom,smsm";
			qcom,smsm-edge = <0>;
			qcom,smsm-irq-offset = <0x8>;
			qcom,smsm-irq-bitmask = <0x2000>;
			interrupts = <0 26 1>;
		};

		qcom,smd-adsp {
			compatible = "qcom,smd";
			qcom,smd-edge = <1>;
			qcom,smd-irq-offset = <0x8>;
			qcom,smd-irq-bitmask = <0x100>;
			qcom,pil-string = "adsp";
			interrupts = <0 156 1>;
		};

		qcom,smsm-adsp {
			compatible = "qcom,smsm";
			qcom,smsm-edge = <1>;
			qcom,smsm-irq-offset = <0x8>;
			qcom,smsm-irq-bitmask = <0x200>;
			interrupts = <0 157 1>;
		};

		qcom,smd-rpm {
			compatible = "qcom,smd";
			qcom,smd-edge = <15>;
			qcom,smd-irq-offset = <0x8>;
			qcom,smd-irq-bitmask = <0x1>;
			interrupts = <0 168 1>;
			qcom,irq-no-suspend;
		};
	};

	qcom,qcedev@fd400000 {
		compatible = "qcom,qcedev";
		reg = <0xfd400000 0x20000>,
			  <0xfd404000 0x8000>;
		reg-names = "crypto-base","crypto-bam-base";
		interrupts = <0 207 0>;
		qcom,bam-pipe-pair = <1>;
	};

	qcom,qcrypto@fd440000 {
		compatible = "qcom,qcrypto";
		reg = <0xfd400000 0x20000>,
			  <0xfd404000 0x8000>;
		reg-names = "crypto-base","crypto-bam-base";
		interrupts = <0 207 0>;
		qcom,bam-pipe-pair = <2>;
	};

	jtag_mm: jtagmm@fc332000 {
		compatible = "qcom,jtag-mm";
		reg = <0xfc332000 0x1000>,
			<0xfc330000 0x1000>;
		reg-names = "etm-base","debug-base";
	};

	qcom,msm-rtb {
		compatible = "qcom,msm-rtb";
		qcom,memory-reservation-type = "EBI1";
		qcom,memory-reservation-size = <0x1000>; /* 4K EBI1 buffer */
	};

        qcom,msm-mem-hole {
                compatible = "qcom,msm-mem-hole";
                qcom,memblock-remove = <0x1f00000 0x5700000>; /* Address and Size of Hole */
        };

	sfpb_spinlock: qcom,ipc-spinlock@fd484000 {
		compatible = "qcom,ipc-spinlock-sfpb";
		reg = <0xfd484000 0x400>;
		qcom,num-locks = <8>;
	};

	ldrex_spinlock: qcom,ipc-spinlock@fa00000 {
		compatible = "qcom,ipc-spinlock-ldrex";
		reg = <0xfa00000 0x200000>;
		status = "disable";
	};

	cpu-pmu {
                compatible = "arm,cortex-a5-pmu";
                qcom,irq-is-percpu;
                interrupts = <1 7 0x00>;
        };

        l2-pmu {
                compatible = "qcom,l2-pmu";
                interrupts = <0 1 0>;
        };

};

/include/ "msm-pm8019-rpm-regulator.dtsi"
/include/ "msm-pm8019.dtsi"
/include/ "msm9625-regulator.dtsi"

&pm8019_vadc {
	chan@31 {
		label = "batt_id_therm";
		reg = <0x31>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <0>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
	};

	chan@33 {
		label = "pa_therm1";
		reg = <0x33>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
	};

	chan@34 {
		label = "pa_therm2";
		reg = <0x34>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
	};

	chan@32 {
		label = "xo_therm";
		reg = <0x32>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <4>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
	};

	chan@3c {
		label = "xo_therm_amux";
		reg = <0x3c>;
		qcom,decimation = <0>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <4>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
	};
};
