/*
 * This header provides constants for Exynos PM Domain bindings.
 *
 * Copyright (C) 2016 Samsung Electronics Co., Ltd.
 *	Jeonghoon Jang <jnghn.jang@samsung.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 */

#ifndef _DT_BINDINGS_POWER_EXYNOS_POWER_H
#define _DT_BINDINGS_POWER_EXYNOS_POWER_H

#define PD_OK_AUD		0x1
#define PD_OK_VTS		0x2
#define PD_OK_USB		0x3

#endif
