/*
 * 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 _DT_BINDINGS_POWER_MT7622_POWER_H
#define _DT_BINDINGS_POWER_MT7622_POWER_H

#define MT7622_POWER_DOMAIN_ETHSYS	0
#define MT7622_POWER_DOMAIN_HIF0	1
#define MT7622_POWER_DOMAIN_HIF1	2
#define MT7622_POWER_DOMAIN_WB		3

#endif /* _DT_BINDINGS_POWER_MT7622_POWER_H */
