treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156
[sfrench/cifs-2.6.git] / include / linux / regulator / max8952.h
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * max8952.h - Voltage regulation for the Maxim 8952
4  *
5  *  Copyright (C) 2010 Samsung Electrnoics
6  *  MyungJoo Ham <myungjoo.ham@samsung.com>
7  */
8
9 #ifndef REGULATOR_MAX8952
10 #define REGULATOR_MAX8952
11
12 #include <linux/regulator/machine.h>
13
14 enum {
15         MAX8952_DVS_MODE0,
16         MAX8952_DVS_MODE1,
17         MAX8952_DVS_MODE2,
18         MAX8952_DVS_MODE3,
19 };
20
21 enum {
22         MAX8952_DVS_770mV = 0,
23         MAX8952_DVS_780mV,
24         MAX8952_DVS_790mV,
25         MAX8952_DVS_800mV,
26         MAX8952_DVS_810mV,
27         MAX8952_DVS_820mV,
28         MAX8952_DVS_830mV,
29         MAX8952_DVS_840mV,
30         MAX8952_DVS_850mV,
31         MAX8952_DVS_860mV,
32         MAX8952_DVS_870mV,
33         MAX8952_DVS_880mV,
34         MAX8952_DVS_890mV,
35         MAX8952_DVS_900mV,
36         MAX8952_DVS_910mV,
37         MAX8952_DVS_920mV,
38         MAX8952_DVS_930mV,
39         MAX8952_DVS_940mV,
40         MAX8952_DVS_950mV,
41         MAX8952_DVS_960mV,
42         MAX8952_DVS_970mV,
43         MAX8952_DVS_980mV,
44         MAX8952_DVS_990mV,
45         MAX8952_DVS_1000mV,
46         MAX8952_DVS_1010mV,
47         MAX8952_DVS_1020mV,
48         MAX8952_DVS_1030mV,
49         MAX8952_DVS_1040mV,
50         MAX8952_DVS_1050mV,
51         MAX8952_DVS_1060mV,
52         MAX8952_DVS_1070mV,
53         MAX8952_DVS_1080mV,
54         MAX8952_DVS_1090mV,
55         MAX8952_DVS_1100mV,
56         MAX8952_DVS_1110mV,
57         MAX8952_DVS_1120mV,
58         MAX8952_DVS_1130mV,
59         MAX8952_DVS_1140mV,
60         MAX8952_DVS_1150mV,
61         MAX8952_DVS_1160mV,
62         MAX8952_DVS_1170mV,
63         MAX8952_DVS_1180mV,
64         MAX8952_DVS_1190mV,
65         MAX8952_DVS_1200mV,
66         MAX8952_DVS_1210mV,
67         MAX8952_DVS_1220mV,
68         MAX8952_DVS_1230mV,
69         MAX8952_DVS_1240mV,
70         MAX8952_DVS_1250mV,
71         MAX8952_DVS_1260mV,
72         MAX8952_DVS_1270mV,
73         MAX8952_DVS_1280mV,
74         MAX8952_DVS_1290mV,
75         MAX8952_DVS_1300mV,
76         MAX8952_DVS_1310mV,
77         MAX8952_DVS_1320mV,
78         MAX8952_DVS_1330mV,
79         MAX8952_DVS_1340mV,
80         MAX8952_DVS_1350mV,
81         MAX8952_DVS_1360mV,
82         MAX8952_DVS_1370mV,
83         MAX8952_DVS_1380mV,
84         MAX8952_DVS_1390mV,
85         MAX8952_DVS_1400mV,
86 };
87
88 enum {
89         MAX8952_SYNC_FREQ_26MHZ, /* Default */
90         MAX8952_SYNC_FREQ_13MHZ,
91         MAX8952_SYNC_FREQ_19_2MHZ,
92 };
93
94 enum {
95         MAX8952_RAMP_32mV_us = 0, /* Default */
96         MAX8952_RAMP_16mV_us,
97         MAX8952_RAMP_8mV_us,
98         MAX8952_RAMP_4mV_us,
99         MAX8952_RAMP_2mV_us,
100         MAX8952_RAMP_1mV_us,
101         MAX8952_RAMP_0_5mV_us,
102         MAX8952_RAMP_0_25mV_us,
103 };
104
105 #define MAX8952_NUM_DVS_MODE    4
106
107 struct max8952_platform_data {
108         int gpio_vid0;
109         int gpio_vid1;
110
111         u32 default_mode;
112         u32 dvs_mode[MAX8952_NUM_DVS_MODE]; /* MAX8952_DVS_MODEx_XXXXmV */
113
114         u32 sync_freq;
115         u32 ramp_speed;
116
117         struct regulator_init_data *reg_data;
118 };
119
120
121 #endif /* REGULATOR_MAX8952 */