aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mfd/samsung
diff options
context:
space:
mode:
authorThomas Abraham <thomas.ab@samsung.com>2015-11-20 05:37:51 -0500
committerLee Jones <lee.jones@linaro.org>2015-11-23 05:33:16 -0500
commit9e4808d2c6a6660d5d2cd572e689570df14a8472 (patch)
tree4f67d44a6244c675ab8531d1ef46d3516faab758 /include/linux/mfd/samsung
parent1ec218373b8ebda821aec00bb156a9c94fad9cd4 (diff)
mfd: sec: Add support for S2MPS15 PMIC
Add support for S2MPS15 PMIC which is similar to S2MPS11 PMIC. The S2MPS15 PMIC supports 27 LDO regulators, 10 buck regulators, RTC, three 32.768KHz clock outputs and battery charger. This patch adds initial support for LDO and buck regulators of S2MPS15 device. Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> Signed-off-by: Alim Akhtar <alim.akhtar@samsung.com> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> [Alim: Added s2mps15_devs like rtc and clk and related changes] Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'include/linux/mfd/samsung')
-rw-r--r--include/linux/mfd/samsung/core.h1
-rw-r--r--include/linux/mfd/samsung/s2mps15.h158
2 files changed, 159 insertions, 0 deletions
diff --git a/include/linux/mfd/samsung/core.h b/include/linux/mfd/samsung/core.h
index a06098639399..6bc4bcd488ac 100644
--- a/include/linux/mfd/samsung/core.h
+++ b/include/linux/mfd/samsung/core.h
@@ -44,6 +44,7 @@ enum sec_device_type {
44 S2MPS11X, 44 S2MPS11X,
45 S2MPS13X, 45 S2MPS13X,
46 S2MPS14X, 46 S2MPS14X,
47 S2MPS15X,
47 S2MPU02, 48 S2MPU02,
48}; 49};
49 50
diff --git a/include/linux/mfd/samsung/s2mps15.h b/include/linux/mfd/samsung/s2mps15.h
new file mode 100644
index 000000000000..36d35287c3c0
--- /dev/null
+++ b/include/linux/mfd/samsung/s2mps15.h
@@ -0,0 +1,158 @@
1/*
2 * Copyright (c) 2015 Samsung Electronics Co., Ltd
3 * http://www.samsung.com
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the
7 * Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version.
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_MFD_S2MPS15_H
17#define __LINUX_MFD_S2MPS15_H
18
19/* S2MPS15 registers */
20enum s2mps15_reg {
21 S2MPS15_REG_ID,
22 S2MPS15_REG_INT1,
23 S2MPS15_REG_INT2,
24 S2MPS15_REG_INT3,
25 S2MPS15_REG_INT1M,
26 S2MPS15_REG_INT2M,
27 S2MPS15_REG_INT3M,
28 S2MPS15_REG_ST1,
29 S2MPS15_REG_ST2,
30 S2MPS15_REG_PWRONSRC,
31 S2MPS15_REG_OFFSRC,
32 S2MPS15_REG_BU_CHG,
33 S2MPS15_REG_RTC_BUF,
34 S2MPS15_REG_CTRL1,
35 S2MPS15_REG_CTRL2,
36 S2MPS15_REG_RSVD1,
37 S2MPS15_REG_RSVD2,
38 S2MPS15_REG_RSVD3,
39 S2MPS15_REG_RSVD4,
40 S2MPS15_REG_RSVD5,
41 S2MPS15_REG_RSVD6,
42 S2MPS15_REG_CTRL3,
43 S2MPS15_REG_RSVD7,
44 S2MPS15_REG_RSVD8,
45 S2MPS15_REG_RSVD9,
46 S2MPS15_REG_B1CTRL1,
47 S2MPS15_REG_B1CTRL2,
48 S2MPS15_REG_B2CTRL1,
49 S2MPS15_REG_B2CTRL2,
50 S2MPS15_REG_B3CTRL1,
51 S2MPS15_REG_B3CTRL2,
52 S2MPS15_REG_B4CTRL1,
53 S2MPS15_REG_B4CTRL2,
54 S2MPS15_REG_B5CTRL1,
55 S2MPS15_REG_B5CTRL2,
56 S2MPS15_REG_B6CTRL1,
57 S2MPS15_REG_B6CTRL2,
58 S2MPS15_REG_B7CTRL1,
59 S2MPS15_REG_B7CTRL2,
60 S2MPS15_REG_B8CTRL1,
61 S2MPS15_REG_B8CTRL2,
62 S2MPS15_REG_B9CTRL1,
63 S2MPS15_REG_B9CTRL2,
64 S2MPS15_REG_B10CTRL1,
65 S2MPS15_REG_B10CTRL2,
66 S2MPS15_REG_BBCTRL1,
67 S2MPS15_REG_BBCTRL2,
68 S2MPS15_REG_BRAMP,
69 S2MPS15_REG_LDODVS1,
70 S2MPS15_REG_LDODVS2,
71 S2MPS15_REG_LDODVS3,
72 S2MPS15_REG_LDODVS4,
73 S2MPS15_REG_L1CTRL,
74 S2MPS15_REG_L2CTRL,
75 S2MPS15_REG_L3CTRL,
76 S2MPS15_REG_L4CTRL,
77 S2MPS15_REG_L5CTRL,
78 S2MPS15_REG_L6CTRL,
79 S2MPS15_REG_L7CTRL,
80 S2MPS15_REG_L8CTRL,
81 S2MPS15_REG_L9CTRL,
82 S2MPS15_REG_L10CTRL,
83 S2MPS15_REG_L11CTRL,
84 S2MPS15_REG_L12CTRL,
85 S2MPS15_REG_L13CTRL,
86 S2MPS15_REG_L14CTRL,
87 S2MPS15_REG_L15CTRL,
88 S2MPS15_REG_L16CTRL,
89 S2MPS15_REG_L17CTRL,
90 S2MPS15_REG_L18CTRL,
91 S2MPS15_REG_L19CTRL,
92 S2MPS15_REG_L20CTRL,
93 S2MPS15_REG_L21CTRL,
94 S2MPS15_REG_L22CTRL,
95 S2MPS15_REG_L23CTRL,
96 S2MPS15_REG_L24CTRL,
97 S2MPS15_REG_L25CTRL,
98 S2MPS15_REG_L26CTRL,
99 S2MPS15_REG_L27CTRL,
100 S2MPS15_REG_LDODSCH1,
101 S2MPS15_REG_LDODSCH2,
102 S2MPS15_REG_LDODSCH3,
103 S2MPS15_REG_LDODSCH4,
104};
105
106/* S2MPS15 regulator ids */
107enum s2mps15_regulators {
108 S2MPS15_LDO1,
109 S2MPS15_LDO2,
110 S2MPS15_LDO3,
111 S2MPS15_LDO4,
112 S2MPS15_LDO5,
113 S2MPS15_LDO6,
114 S2MPS15_LDO7,
115 S2MPS15_LDO8,
116 S2MPS15_LDO9,
117 S2MPS15_LDO10,
118 S2MPS15_LDO11,
119 S2MPS15_LDO12,
120 S2MPS15_LDO13,
121 S2MPS15_LDO14,
122 S2MPS15_LDO15,
123 S2MPS15_LDO16,
124 S2MPS15_LDO17,
125 S2MPS15_LDO18,
126 S2MPS15_LDO19,
127 S2MPS15_LDO20,
128 S2MPS15_LDO21,
129 S2MPS15_LDO22,
130 S2MPS15_LDO23,
131 S2MPS15_LDO24,
132 S2MPS15_LDO25,
133 S2MPS15_LDO26,
134 S2MPS15_LDO27,
135 S2MPS15_BUCK1,
136 S2MPS15_BUCK2,
137 S2MPS15_BUCK3,
138 S2MPS15_BUCK4,
139 S2MPS15_BUCK5,
140 S2MPS15_BUCK6,
141 S2MPS15_BUCK7,
142 S2MPS15_BUCK8,
143 S2MPS15_BUCK9,
144 S2MPS15_BUCK10,
145 S2MPS15_BUCK11,
146 S2MPS15_REGULATOR_MAX,
147};
148
149#define S2MPS15_LDO_VSEL_MASK (0x3F)
150#define S2MPS15_BUCK_VSEL_MASK (0xFF)
151
152#define S2MPS15_ENABLE_SHIFT (0x06)
153#define S2MPS15_ENABLE_MASK (0x03 << S2MPS15_ENABLE_SHIFT)
154
155#define S2MPS15_LDO_N_VOLTAGES (S2MPS15_LDO_VSEL_MASK + 1)
156#define S2MPS15_BUCK_N_VOLTAGES (S2MPS15_BUCK_VSEL_MASK + 1)
157
158#endif /* __LINUX_MFD_S2MPS15_H */