/*
 * Copyright (C) 2014 Google, 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.
 *
 * Device Tree binding constants for the Maxim 77802 PMIC regulators
 */

#ifndef _DT_BINDINGS_REGULATOR_MAXIM_MAX77802_H
#define _DT_BINDINGS_REGULATOR_MAXIM_MAX77802_H

/* Regulator operating modes */
#define MAX77802_OPMODE_LP	1
#define MAX77802_OPMODE_NORMAL	3

#endif /* _DT_BINDINGS_REGULATOR_MAXIM_MAX77802_H */
