/*
 * Copyright (C) 2017 MediaTek Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
 */

#ifndef __HELIO_DVFSRC_MT6771_H
#define __HELIO_DVFSRC_MT6771_H

#define PMIC_VCORE_ADDR         PMIC_RG_BUCK_VCORE_VOSEL
#define VCORE_BASE_UV           500000
#define VCORE_STEP_UV           6250
#define VCORE_INVALID           0x80

#endif /* __HELIO_DVFSRC_MT6771_H */
