summaryrefslogtreecommitdiff
path: root/include/linux/regulator/tps6591x-regulator.h
blob: 7f7f647906d04810a4cecec03c9adb5c87bbb02b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/*
 * include/linux/regulator/tps6591x-regulator.h
 *
 * Interface for regulator driver for TI TPS6591x PMIC family
 *
 * Copyright (C) 2011 NVIDIA Corporation
 *
 * 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.
 *
 * 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 the GNU General Public License for
 * more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 *
 */

#ifndef __REGULATOR_TPS6591X_H
#define	__REGULATOR_TPS6591X_H

#include <linux/regulator/machine.h>

#define tps6591x_rails(_name) "tps6591x_"#_name

enum {
	TPS6591X_ID_VIO,
	TPS6591X_ID_VDD_1,
	TPS6591X_ID_VDD_2,
	TPS6591X_ID_VDDCTRL,
	TPS6591X_ID_LDO_1,
	TPS6591X_ID_LDO_2,
	TPS6591X_ID_LDO_3,
	TPS6591X_ID_LDO_4,
	TPS6591X_ID_LDO_5,
	TPS6591X_ID_LDO_6,
	TPS6591X_ID_LDO_7,
	TPS6591X_ID_LDO_8,
};

enum tps6591x_ext_control {
	EXT_CTRL_NONE = 0x0,
	EXT_CTRL_EN1,
	EXT_CTRL_EN2,
	EXT_CTRL_SLEEP_OFF,
};

enum tps6591x_config_flags {
	LDO_LOW_POWER_ON_SUSPEND = 0x1,
};

/*
 * struct tps6591x_regulator_platform_data - tps6591x regulator platform data.
 *
 * @regulator: The regulator init data.
 * @init_uV: initial micro volts which need to be set.
 * @init_enable: Enable or do not enable the rails during initialization.
 * @init_apply: Init parameter applied or not.
 * @slew_rate_uV_per_us: Slew rate microvolt per microsec.
 */

struct tps6591x_regulator_platform_data {
	struct regulator_init_data regulator;
	int init_uV;
	unsigned init_enable:1;
	unsigned init_apply:1;
	enum tps6591x_ext_control ectrl;
	int slew_rate_uV_per_us;
	unsigned int flags;
};

#endif	/* __REGULATOR_TPS6591X_H */