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

/include/ "msm8974-gpu.dtsi"

&msm_gpu {
	qcom,chipid = <0x03000510>;

	qcom,clk-map = <0x00000016>; /* KGSL_CLK_CORE | KGSL_CLK_IFACE | KGSL_CLK_MEM_IFACE */

	/* Bus Scale Settings */
	qcom,msm-bus,name = "grp3d";
	qcom,msm-bus,num-cases = <4>;
	qcom,msm-bus,active-only = <0>;
	qcom,msm-bus,num-paths = <2>;
	qcom,msm-bus,vectors-KBps =
			<26 512 0 0>, <89 604 0 0>,
			<26 512 0 1600000>, <89 604 0 3200000>,
			<26 512 0 3200000>, <89 604 0 5120000>,
			<26 512 0 4256000>, <89 604 0 6400000>;

	/* GDSC oxili regulators */
	vddcx-supply = "\0";
	vdd-supply = <&gdsc_oxili_cx>;

	qcom,gpu-pwrlevels {
		#address-cells = <1>;
		#size-cells = <0>;

		compatible = "qcom,gpu-pwrlevels";

		qcom,gpu-pwrlevel@0 {
			reg = <0>;
			qcom,gpu-freq = <450000000>;
			qcom,bus-freq = <3>;
			qcom,io-fraction = <0>;
		};

		qcom,gpu-pwrlevel@1 {
			reg = <1>;
			qcom,gpu-freq = <320000000>;
			qcom,bus-freq = <2>;
			qcom,io-fraction = <33>;
		};

		qcom,gpu-pwrlevel@2 {
			reg = <2>;
			qcom,gpu-freq = <200000000>;
			qcom,bus-freq = <1>;
			qcom,io-fraction = <100>;
		};

		qcom,gpu-pwrlevel@3 {
			reg = <3>;
			qcom,gpu-freq = <19000000>;
			qcom,bus-freq = <0>;
			qcom,io-fraction = <0>;
		};
	};
};
