/*
 * Copyright (c) 2017-2018, 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 "msm8953.dtsi"

/ {
	model = "Qualcomm Technologies, Inc. SDM450";
	compatible = "qcom,sdm450";
	qcom,msm-id = <338 0x0>;
	qcom,msm-name = "SDM450";
};

&CPU4 {
	efficiency = <1024>;
};

&CPU5 {
	efficiency = <1024>;
};

&CPU6 {
	efficiency = <1024>;
};

&CPU7 {
	efficiency = <1024>;
};

&clock_gcc_gfx {
	compatible = "qcom,gcc-gfx-sdm450";
	qcom,gfxfreq-corner =
		<         0   0 >,
		< 133330000   1 >,  /* Min SVS   */
		< 216000000   2 >,  /* Low SVS   */
		< 320000000   3 >,  /* SVS       */
		< 400000000   4 >,  /* SVS Plus  */
		< 510000000   5 >,  /* NOM       */
		< 560000000   6 >,  /* Nom Plus  */
		< 600000000   7 >;  /* Turbo     */
};
