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

/ {
	qcom,mdss_mdp@fd900000 {
		compatible = "qcom,mdss_mdp";
		reg = <0xfd900000 0x22100>,
			<0xfd924000 0x1000>;
		reg-names = "mdp_phys", "vbif_phys";
		interrupts = <0 72 0>;
		vdd-supply = <&gdsc_mdss>;

		qcom,max-clk-rate = <200000000>;
		qcom,mdss-pipe-vig-off = <0x00001200>;
		qcom,mdss-pipe-rgb-off = <0x00001E00>;
		qcom,mdss-pipe-dma-off = <0x00002A00>;
		qcom,mdss-pipe-vig-fetch-id = <1>;
		qcom,mdss-pipe-rgb-fetch-id = <7>;
		qcom,mdss-pipe-dma-fetch-id = <4>;
		qcom,mdss-smp-data = <7 4096>;

		qcom,mdss-ctl-off = <0x00000600 0x00000700>;
		qcom,mdss-mixer-intf-off = <0x00003200>;
		qcom,mdss-mixer-wb-off = <0x00003E00>;
		qcom,mdss-dspp-off = <0x00004600>;
		qcom,mdss-wb-off = <0x00011100 0x00013100>;
		qcom,mdss-intf-off = <0x00000000 0x00021300>;

		qcom,vbif-settings = <0x004 0x00000001>,
				     <0x0D8 0x00000707>,
				     <0x124 0x00000003>;
		qcom,mdp-settings = <0x02E0 0x000000A9>,
				    <0x02E4 0x00000055>;

		mdss_fb0: qcom,mdss_fb_primary {
			cell-index = <0>;
			compatible = "qcom,mdss-fb";
			qcom,memory-reservation-type = "EBI1";
			qcom,memory-reservation-size = <0x800000>;
		};

		mdss_fb1: qcom,mdss_fb_wfd {
			cell-index = <1>;
			compatible = "qcom,mdss-fb";
		};
	};

	mdss_dsi0: qcom,mdss_dsi@fd922800 {
		compatible = "qcom,mdss-dsi-ctrl";
		label = "MDSS DSI CTRL->0";
		cell-index = <0>;
		reg = <0xfd922800 0x600>;
		vdd-supply = <&pm8226_l15>;
		vddio-supply = <&pm8226_l8>;
		vdda-supply = <&pm8226_l4>;
		qcom,supply-names = "vdd", "vddio", "vdda";
		qcom,supply-type = "regulator", "regulator", "regulator";
		qcom,supply-min-voltage-level = <2800000 1800000 1200000>;
		qcom,supply-max-voltage-level = <2800000 1800000 1200000>;
		qcom,supply-peak-current = <150000 100000 100000>;
		qcom,mdss-fb-map = <&mdss_fb0>;
	};

	qcom,mdss_wb_panel {
		compatible = "qcom,mdss_wb";
		qcom,mdss_pan_res = <1280 720>;
		qcom,mdss_pan_bpp = <24>;
		qcom,mdss-fb-map = <&mdss_fb1>;
	};
};
