/* Copyright (c) 2014-2016, 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 "sundial-dsi-panel-sim-video.dtsi"
#include "sundial-dsi-panel-sim-cmd.dtsi"
#include "sundial-dsi-panel-hx8394d-720p-video.dtsi"
#include "sundial-dsi-panel-sharp-qhd-video.dtsi"
#include "sundial-dsi-panel-truly-wvga-cmd.dtsi"
#include "sundial-dsi-panel-hx8394d-qhd-video.dtsi"
#include "sundial-dsi-panel-hx8379a-fwvga-skua-video.dtsi"
#include "sundial-dsi-panel-ili9806e-fwvga-video.dtsi"
#include "sundial-dsi-panel-hx8379c-fwvga-video.dtsi"
#include "sundial-dsi-panel-hx8394d-480p-video.dtsi"
#include "sundial-dsi-panel-auo-qvga-cmd.dtsi"
#include "sundial-dsi-panel-auo-cx-qvga-cmd.dtsi"
#include "sundial-dsi-panel-auo-amoled-cmd.dtsi"
#include "sundial-dsi-panel-auo-w022-amoled-cmd.dtsi"

&soc {
	dsi_panel_pwr_supply: dsi_panel_pwr_supply {
		#address-cells = <1>;
		#size-cells = <0>;

			qcom,panel-supply-entry@0 {
			reg = <0>;
			qcom,supply-name = "vdd";
			qcom,supply-min-voltage = <2850000>;
			qcom,supply-max-voltage = <2850000>;
			qcom,supply-enable-load = <100000>;
			qcom,supply-disable-load = <100>;
			qcom,supply-ulp-load = <100>;
		};

		qcom,panel-supply-entry@1 {
			reg = <1>;
			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-ulp-load = <100>;
		};
	};
};


