blob: be9b532e02061dc031a49fa3a5d9bd2d2f4aa656 [file] [log] [blame]
Ashish Garg22001a92017-08-07 14:46:54 +05301/* Copyright (c) 2014-2015, 2017, The Linux Foundation. All rights reserved.
Unnati Gandhif35baba2014-11-06 18:40:36 +05302 *
3 * Redistribution and use in source and binary forms, with or without
4 * modification, are permitted provided that the following conditions are
5 * met:
6 * * Redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer.
8 * * Redistributions in binary form must reproduce the above
9 * copyright notice, this list of conditions and the following
10 * disclaimer in the documentation and/or other materials provided
11 * with the distribution.
12 * * Neither the name of The Linux Fundation, Inc. nor the names of its
13 * contributors may be used to endorse or promote products derived
14 * from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
17 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
20 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
26 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 */
29
30#include <regulator.h>
31#include <rpm-smd.h>
Casey Piperd2af07b2015-04-01 18:01:58 -070032#include <bits.h>
Unnati Gandhif35baba2014-11-06 18:40:36 +053033#include <debug.h>
34
35static uint32_t ldo2[][11]=
36{
37 {
38 LDOA_RES_TYPE, 2,
39 KEY_SOFTWARE_ENABLE, 4, GENERIC_DISABLE,
40 KEY_MICRO_VOLT, 4, 0,
41 KEY_CURRENT, 4, 0,
42 },
43
44 {
45 LDOA_RES_TYPE, 2,
46 KEY_SOFTWARE_ENABLE, 4, GENERIC_ENABLE,
47 KEY_MICRO_VOLT, 4, 1200000,
48 KEY_CURRENT, 4, 40,
49 },
50};
51
Ashish Garg22001a92017-08-07 14:46:54 +053052static uint32_t ldo5[][11]=
53{
54 {
55 LDOA_RES_TYPE, 5,
56 KEY_SOFTWARE_ENABLE, 4, GENERIC_DISABLE,
57 KEY_MICRO_VOLT, 4, 0,
58 KEY_CURRENT, 4, 0,
59 },
60
61 {
62 LDOA_RES_TYPE, 5,
63 KEY_SOFTWARE_ENABLE, 4, GENERIC_ENABLE,
64 KEY_MICRO_VOLT, 4, 1200000,
65 KEY_CURRENT, 4, 86,
66 },
67};
68
69
Unnati Gandhif35baba2014-11-06 18:40:36 +053070static uint32_t ldo6[][11]=
71{
72 {
73 LDOA_RES_TYPE, 6,
74 KEY_SOFTWARE_ENABLE, 4, GENERIC_DISABLE,
75 KEY_MICRO_VOLT, 4, 0,
76 KEY_CURRENT, 4, 0,
77 },
78
79 {
80 LDOA_RES_TYPE, 6,
81 KEY_SOFTWARE_ENABLE, 4, GENERIC_ENABLE,
82 KEY_MICRO_VOLT, 4, 1800000,
83 KEY_CURRENT, 4, 150,
84 },
85};
86
87
Ashish Garg22001a92017-08-07 14:46:54 +053088static uint32_t ldo11[][11]=
89{
90 {
91 LDOA_RES_TYPE, 11,
92 KEY_SOFTWARE_ENABLE, 4, GENERIC_DISABLE,
93 KEY_MICRO_VOLT, 4, 0,
94 KEY_CURRENT, 4, 0,
95 },
96
97 {
98 LDOA_RES_TYPE, 11,
99 KEY_SOFTWARE_ENABLE, 4, GENERIC_ENABLE,
100 KEY_MICRO_VOLT, 4, 1800000,
101 KEY_CURRENT, 4, 150,
102 },
103};
104
105
106static uint32_t ldo12[][11]=
107{
108 {
109 LDOA_RES_TYPE, 12,
110 KEY_SOFTWARE_ENABLE, 4, GENERIC_DISABLE,
111 KEY_MICRO_VOLT, 4, 0,
112 KEY_CURRENT, 4, 0,
113 },
114
115 {
116 LDOA_RES_TYPE, 12,
117 KEY_SOFTWARE_ENABLE, 4, GENERIC_ENABLE,
118 KEY_MICRO_VOLT, 4, 1800000,
119 KEY_CURRENT, 4, 150,
120 },
121};
122
123
Unnati Gandhif35baba2014-11-06 18:40:36 +0530124static uint32_t ldo17[][11]=
125{
126 {
127 LDOA_RES_TYPE, 17,
128 KEY_SOFTWARE_ENABLE, 4, GENERIC_DISABLE,
129 KEY_MICRO_VOLT, 4, 0,
130 KEY_CURRENT, 4, 0,
131 },
132
133 {
134 LDOA_RES_TYPE, 17,
135 KEY_SOFTWARE_ENABLE, 4, GENERIC_ENABLE,
136 KEY_MICRO_VOLT, 4, 2850000,
137 KEY_CURRENT, 4, 40,
138 },
139};
140
Ashish Garg22001a92017-08-07 14:46:54 +0530141static uint32_t ldo18[][11]=
142{
143 {
144 LDOA_RES_TYPE, 18,
145 KEY_SOFTWARE_ENABLE, 4, GENERIC_DISABLE,
146 KEY_MICRO_VOLT, 4, 0,
147 KEY_CURRENT, 4, 0,
148 },
149
150 {
151 LDOA_RES_TYPE, 18,
152 KEY_SOFTWARE_ENABLE, 4, GENERIC_ENABLE,
153 KEY_MICRO_VOLT, 4, 3000000,
154 KEY_CURRENT, 4, 5,
155 },
156};
157
158
Casey Piperd2af07b2015-04-01 18:01:58 -0700159void regulator_enable(uint32_t enable)
Unnati Gandhif35baba2014-11-06 18:40:36 +0530160{
Casey Piperd2af07b2015-04-01 18:01:58 -0700161 if (enable & REG_LDO2)
162 rpm_send_data(&ldo2[GENERIC_ENABLE][0], 36, RPM_REQUEST_TYPE);
Unnati Gandhif35baba2014-11-06 18:40:36 +0530163
Casey Piperd2af07b2015-04-01 18:01:58 -0700164 if (enable & REG_LDO17)
165 rpm_send_data(&ldo17[GENERIC_ENABLE][0], 36, RPM_REQUEST_TYPE);
Unnati Gandhif35baba2014-11-06 18:40:36 +0530166
Casey Piperd2af07b2015-04-01 18:01:58 -0700167 if (enable & REG_LDO6)
168 rpm_send_data(&ldo6[GENERIC_ENABLE][0], 36, RPM_REQUEST_TYPE);
169
Ashish Garg22001a92017-08-07 14:46:54 +0530170 if (enable & REG_LDO5)
171 rpm_send_data(&ldo5[GENERIC_ENABLE][0], 36, RPM_REQUEST_TYPE);
172
173 if (enable & REG_LDO11)
174 rpm_send_data(&ldo11[GENERIC_ENABLE][0], 36, RPM_REQUEST_TYPE);
175
176 if (enable & REG_LDO12)
177 rpm_send_data(&ldo12[GENERIC_ENABLE][0], 36, RPM_REQUEST_TYPE);
178
179 if (enable & REG_LDO18)
180 rpm_send_data(&ldo18[GENERIC_ENABLE][0], 36, RPM_REQUEST_TYPE);
Casey Piperd2af07b2015-04-01 18:01:58 -0700181
Unnati Gandhif35baba2014-11-06 18:40:36 +0530182
183}