/* 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 {
	mdss_mdp: qcom,mdss_mdp@fd900000 {
		compatible = "qcom,mdss_mdp3";
		reg = <0xfd900000 0x100000>;
		reg-names = "mdp_phys";
		interrupts = <0 72 0>;

		mdss_fb0: qcom,mdss_fb_primary {
			cell-index = <0>;
			compatible = "qcom,mdss-fb";
			qcom,memblock-reserve = <0x3200000 0x800000>;
		};
	};

	mdss_dsi0: qcom,mdss_dsi@fdd00000 {
		compatible = "qcom,msm-dsi-v2";
		label = "MDSS DSI CTRL->0";
		cell-index = <0>;
		reg = <0xfdd00000 0x100000>;
		interrupts = <0 30 0>;
		vdd-supply = <&pm8110_l4>;
		vdda-supply = <&pm8110_l19>;
		vddio-supply = <&pm8110_l14>;
		qcom,mdss-fb-map = <&mdss_fb0>;
		qcom,mdss-mdp = <&mdss_mdp>;
		qcom,platform-reset-gpio = <&msmgpio 41 0>;
		qcom,platform-te-gpio = <&msmgpio 12 0>;
		qcom,platform-mode-gpio = <&msmgpio 7 0>;
		qcom,platform-strength-ctrl = [ff 06];
		qcom,platform-bist-ctrl = [03 03 00 00 0f 00];
		qcom,platform-regulator-settings = [02 08 05 00 20 03];
		qcom,platform-lane-config = [80 45 00 00 01 66
		80 45 00 00 01 66
		80 45 00 00 01 66
		80 45 00 00 01 66
		40 67 00 00 01 88];

		qcom,platform-supply-entry1 {
			qcom,supply-name = "vdd";
			qcom,supply-min-voltage = <1200000>;
			qcom,supply-max-voltage = <1200000>;
			qcom,supply-enable-load = <100000>;
			qcom,supply-disable-load = <100>;
			qcom,supply-pre-on-sleep = <0>;
			qcom,supply-post-on-sleep = <20>;
			qcom,supply-pre-off-sleep = <0>;
			qcom,supply-post-off-sleep = <20>;
		};

		qcom,platform-supply-entry2 {
			qcom,supply-name = "vddio";
			qcom,supply-min-voltage = <1800000>;
			qcom,supply-max-voltage = <1800000>;
			qcom,supply-enable-load = <100000>;
			qcom,supply-disable-load = <100>;
			qcom,supply-pre-on-sleep = <0>;
			qcom,supply-post-on-sleep = <0>;
			qcom,supply-pre-off-sleep = <0>;
			qcom,supply-post-off-sleep = <0>;
		};

		qcom,platform-supply-entry3 {
			qcom,supply-name = "vdda";
			qcom,supply-min-voltage = <2850000>;
			qcom,supply-max-voltage = <2850000>;
			qcom,supply-enable-load = <100000>;
			qcom,supply-disable-load = <100>;
			qcom,supply-pre-on-sleep = <0>;
			qcom,supply-post-on-sleep = <0>;
			qcom,supply-pre-off-sleep = <0>;
			qcom,supply-post-off-sleep = <0>;
		};
	};
};

/include/ "msm8610-mdss-panels.dtsi"
