GNU Linux-libre 4.19.263-gnu1
[releases.git] / include / linux / regulator / act8865.h
1 /*
2  * act8865.h  --  Voltage regulation for active-semi act88xx PMUs
3  *
4  * Copyright (C) 2013 Atmel Corporation.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; version 2 of the License.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  */
15
16 #ifndef __LINUX_REGULATOR_ACT8865_H
17 #define __LINUX_REGULATOR_ACT8865_H
18
19 #include <linux/regulator/machine.h>
20
21 enum {
22         ACT8600_ID_DCDC1,
23         ACT8600_ID_DCDC2,
24         ACT8600_ID_DCDC3,
25         ACT8600_ID_SUDCDC4,
26         ACT8600_ID_LDO5,
27         ACT8600_ID_LDO6,
28         ACT8600_ID_LDO7,
29         ACT8600_ID_LDO8,
30         ACT8600_ID_LDO9,
31         ACT8600_ID_LDO10,
32 };
33
34 enum {
35         ACT8865_ID_DCDC1,
36         ACT8865_ID_DCDC2,
37         ACT8865_ID_DCDC3,
38         ACT8865_ID_LDO1,
39         ACT8865_ID_LDO2,
40         ACT8865_ID_LDO3,
41         ACT8865_ID_LDO4,
42         ACT8865_REG_NUM,
43 };
44
45 enum {
46         ACT8846_ID_REG1,
47         ACT8846_ID_REG2,
48         ACT8846_ID_REG3,
49         ACT8846_ID_REG4,
50         ACT8846_ID_REG5,
51         ACT8846_ID_REG6,
52         ACT8846_ID_REG7,
53         ACT8846_ID_REG8,
54         ACT8846_ID_REG9,
55         ACT8846_ID_REG10,
56         ACT8846_ID_REG11,
57         ACT8846_ID_REG12,
58         ACT8846_REG_NUM,
59 };
60
61 enum {
62         ACT8600,
63         ACT8865,
64         ACT8846,
65 };
66
67 /**
68  * act8865_regulator_data - regulator data
69  * @id: regulator id
70  * @name: regulator name
71  * @init_data: regulator init data
72  * @of_node: device tree node (optional)
73  */
74 struct act8865_regulator_data {
75         int id;
76         const char *name;
77         struct regulator_init_data *init_data;
78         struct device_node *of_node;
79 };
80
81 /**
82  * act8865_platform_data - platform data for act8865
83  * @num_regulators: number of regulators used
84  * @regulators: pointer to regulators used
85  */
86 struct act8865_platform_data {
87         int num_regulators;
88         struct act8865_regulator_data *regulators;
89 };
90 #endif