/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * LP8755 High Performance Power Management Unit Driver:System Interface Driver
 *
 *			Copyright (C) 2012 Texas Instruments
 *
 * Author: Daniel(Geon Si) Jeong <daniel.jeong@ti.com>
 *             G.Shark Jeong <gshark.jeong@gmail.com>
 */

#ifndef _LP8755_H
#define _LP8755_H

#include <linux/regulator/consumer.h>

#define LP8755_NAME "lp8755-regulator"
/*
 *PWR FAULT : power fault detected
 *OCP : over current protect activated
 *OVP : over voltage protect activated
 *TEMP_WARN : thermal warning
 *TEMP_SHDN : thermal shutdonw detected
 *I_LOAD : current measured
 */
#define LP8755_EVENT_PWR_FAULT REGULATOR_EVENT_FAIL
#define LP8755_EVENT_OCP REGULATOR_EVENT_OVER_CURRENT
#define LP8755_EVENT_OVP 0x10000
#define LP8755_EVENT_TEMP_WARN 0x2000
#define LP8755_EVENT_TEMP_SHDN REGULATOR_EVENT_OVER_TEMP
#define LP8755_EVENT_I_LOAD	0x40000

enum lp8755_bucks {
	LP8755_BUCK0 = 0,
	LP8755_BUCK1,
	LP8755_BUCK2,
	LP8755_BUCK3,
	LP8755_BUCK4,
	LP8755_BUCK5,
	LP8755_BUCK_MAX,
};

/**
 * multiphase configuration options
 */
enum lp8755_mphase_config {
	MPHASE_CONF0,
	MPHASE_CONF1,
	MPHASE_CONF2,
	MPHASE_CONF3,
	MPHASE_CONF4,
	MPHASE_CONF5,
	MPHASE_CONF6,
	MPHASE_CONF7,
	MPHASE_CONF8,
	MPHASE_CONF_MAX
};

/**
 * struct lp8755_platform_data
 * @mphase_type : Multiphase Switcher Configurations.
 * @buck_data   : buck0~6 init voltage in uV
 */
struct lp8755_platform_data {
	int mphase;
	struct regulator_init_data *buck_data[LP8755_BUCK_MAX];
};
#endif
