blob: 89337427b080ce5f9c4228bb696c1e2ac09b7259 [file] [log] [blame]
Subbaraman Narayanamurthyc3d22c42018-01-22 18:39:02 -08001/* Copyright (c) 2013-2018, The Linux Foundation. All rights reserved.
David Collins8885f792017-01-26 14:36:34 -08002 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License version 2 and
5 * only version 2 as published by the Free Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 */
12
13#ifndef __QPNP_REVID
14#define __QPNP_REVID
15
16/* Common TYPE for all PMICs */
17#define PMIC_TYPE 0x51
18
19/* PM8994 */
20#define PM8941_SUBTYPE 0x01
21
22#define PM8941_V1P0_REV1 0x00
23#define PM8941_V1P0_REV2 0x00
24#define PM8941_V1P0_REV3 0x00
25#define PM8941_V1P0_REV4 0x01
26
27#define PM8941_V2P0_REV1 0x00
28#define PM8941_V2P0_REV2 0x00
29#define PM8941_V2P0_REV3 0x00
30#define PM8941_V2P0_REV4 0x01
31
32#define PM8941_V3P0_REV1 0x00
33#define PM8941_V3P0_REV2 0x00
34#define PM8941_V3P0_REV3 0x00
35#define PM8941_V3P0_REV4 0x03
36
37#define PM8941_V3P1_REV1 0x00
38#define PM8941_V3P1_REV2 0x00
39#define PM8941_V3P1_REV3 0x01
40#define PM8941_V3P1_REV4 0x03
41
42/* PM8841 */
43#define PM8841_SUBTYPE 0x02
44
45/* PM8019 */
46#define PM8019_SUBTYPE 0x03
47
48/* PM8226 */
49#define PM8226_SUBTYPE 0x04
50
51#define PM8226_V2P2_REV1 0x00
52#define PM8226_V2P2_REV2 0x00
53#define PM8226_V2P2_REV3 0x02
54#define PM8226_V2P2_REV4 0x02
55
56#define PM8226_V2P1_REV1 0x00
57#define PM8226_V2P1_REV2 0x00
58#define PM8226_V2P1_REV3 0x01
59#define PM8226_V2P1_REV4 0x02
60
61#define PM8226_V2P0_REV1 0x00
62#define PM8226_V2P0_REV2 0x00
63#define PM8226_V2P0_REV3 0x00
64#define PM8226_V2P0_REV4 0x02
65
66#define PM8226_V1P0_REV1 0x00
67#define PM8226_V1P0_REV2 0x00
68#define PM8226_V1P0_REV3 0x00
69#define PM8226_V1P0_REV4 0x00
70
71/* PM8110 */
72#define PM8110_SUBTYPE 0x05
73
74#define PM8110_V1P0_REV1 0x00
75#define PM8110_V1P0_REV2 0x00
76#define PM8110_V1P0_REV3 0x00
77#define PM8110_V1P0_REV4 0x01
78
79#define PM8110_V1P1_REV1 0x00
80#define PM8110_V1P1_REV2 0x01
81#define PM8110_V1P1_REV3 0x00
82#define PM8110_V1P1_REV4 0x01
83
84#define PM8110_V1P3_REV1 0x00
85#define PM8110_V1P3_REV2 0x03
86#define PM8110_V1P3_REV3 0x00
87#define PM8110_V1P3_REV4 0x01
88
89#define PM8110_V2P0_REV1 0x00
90#define PM8110_V2P0_REV2 0x00
91#define PM8110_V2P0_REV3 0x00
92#define PM8110_V2P0_REV4 0x02
93
94/* PMA8084 */
95#define PMA8084_SUBTYPE 0x06
96
97/* PMI8962 */
98#define PMI8962_SUBTYPE 0x07
99
100/* PMD9635 */
101#define PMD9635_SUBTYPE 0x08
102/* PM8994 */
103#define PM8994_SUBTYPE 0x09
104
105/* PMI8994 */
106#define PMI8994_TYPE 0x51
107#define PMI8994_SUBTYPE 0x0A
108
109#define PMI8994_V1P0_REV1 0x00
110#define PMI8994_V1P0_REV2 0x00
111#define PMI8994_V1P0_REV3 0x00
112#define PMI8994_V1P0_REV4 0x01
113
114#define PMI8994_V2P0_REV1 0x00
115#define PMI8994_V2P0_REV2 0x00
116#define PMI8994_V2P0_REV3 0x00
117#define PMI8994_V2P0_REV4 0x02
118
119/* PM8916 */
120#define PM8916_SUBTYPE 0x0B
121
122#define PM8916_V1P0_REV1 0x00
123#define PM8916_V1P0_REV2 0x00
124#define PM8916_V1P0_REV3 0x00
125#define PM8916_V1P0_REV4 0x01
126
127#define PM8916_V1P1_REV1 0x00
128#define PM8916_V1P1_REV2 0x00
129#define PM8916_V1P1_REV3 0x01
130#define PM8916_V1P1_REV4 0x01
131
132#define PM8916_V2P0_REV1 0x00
133#define PM8916_V2P0_REV2 0x00
134#define PM8916_V2P0_REV3 0x00
135#define PM8916_V2P0_REV4 0x02
136
137/* PM8004 */
138#define PM8004_SUBTYPE 0x0C
139
140/* PM8909 */
141#define PM8909_SUBTYPE 0x0D
142
143#define PM8909_V1P0_REV1 0x00
144#define PM8909_V1P0_REV2 0x00
145#define PM8909_V1P0_REV3 0x00
146#define PM8909_V1P0_REV4 0x01
147
148#define PM8909_V1P1_REV1 0x00
149#define PM8909_V1P1_REV2 0x00
150#define PM8909_V1P1_REV3 0x01
151#define PM8909_V1P1_REV4 0x01
152
153/* PM2433 */
154#define PM2433_SUBTYPE 0x0E
155
156/* PMD9655 */
157#define PMD9655_SUBTYPE 0x0F
158
159/* PM8950 */
160#define PM8950_SUBTYPE 0x10
161#define PM8950_V1P0_REV4 0x01
162
163#define PM8950_V2P0_REV4 0x02
164
165/* PMI8950 */
166#define PMI8950_SUBTYPE 0x11
167
168/* PMK8001 */
169#define PMK8001_SUBTYPE 0x12
170
171/* PMI8996 */
172#define PMI8996_SUBTYPE 0x13
173
174/* PM8998 */
175#define PM8998_SUBTYPE 0x14
176
177/* PMI8998 */
178#define PMI8998_SUBTYPE 0x15
179
180/* PM660 */
181#define PM660L_SUBTYPE 0x1A
182#define PM660_SUBTYPE 0x1B
183
Kiran Gunda8c383ac2017-12-07 11:16:12 +0530184/* PMI632 */
185#define PMI632_SUBTYPE 0x25
186
Subbaraman Narayanamurthyc3d22c42018-01-22 18:39:02 -0800187/* PM855 */
188#define PM855_SUBTYPE 0x1E
189#define PM855L_SUBTYPE 0x1F
190#define PM855B_SUBTYPE 0x20
191
Subbaraman Narayanamurthy9625c942017-03-23 11:34:28 -0700192/* PMI8998 REV_ID */
David Collins8885f792017-01-26 14:36:34 -0800193#define PMI8998_V1P0_REV1 0x00
194#define PMI8998_V1P0_REV2 0x00
195#define PMI8998_V1P0_REV3 0x00
196#define PMI8998_V1P0_REV4 0x01
197
198#define PMI8998_V1P1_REV1 0x00
199#define PMI8998_V1P1_REV2 0x00
200#define PMI8998_V1P1_REV3 0x01
201#define PMI8998_V1P1_REV4 0x01
202
203#define PMI8998_V2P0_REV1 0x00
204#define PMI8998_V2P0_REV2 0x00
205#define PMI8998_V2P0_REV3 0x00
206#define PMI8998_V2P0_REV4 0x02
207
Subbaraman Narayanamurthyb7c54a92017-03-23 11:46:25 -0700208/* PM660 REV_ID */
209#define PM660_V1P0_REV1 0x00
210#define PM660_V1P0_REV2 0x00
211#define PM660_V1P0_REV3 0x00
212#define PM660_V1P0_REV4 0x01
213
214#define PM660_V1P1_REV1 0x00
215#define PM660_V1P1_REV2 0x00
216#define PM660_V1P1_REV3 0x01
217#define PM660_V1P1_REV4 0x01
218
Anirudh Ghayal58d2f602017-03-31 16:18:24 +0530219/* PM660L REV_ID */
220#define PM660L_V1P1_REV1 0x00
221#define PM660L_V1P1_REV2 0x00
222#define PM660L_V1P1_REV3 0x01
223#define PM660L_V1P1_REV4 0x01
224
Kiran Gundaf94ddd72017-04-14 12:25:20 +0530225#define PM660L_V2P0_REV1 0x00
226#define PM660L_V2P0_REV2 0x00
227#define PM660L_V2P0_REV3 0x00
228#define PM660L_V2P0_REV4 0x02
229
Kiran Gunda8c383ac2017-12-07 11:16:12 +0530230/* PMI632 REV_ID */
231#define PMI632_V1P0_REV1 0x00
232#define PMI632_V1P0_REV2 0x00
233#define PMI632_V1P0_REV3 0x00
234#define PMI632_V1P0_REV4 0x01
235
Subbaraman Narayanamurthy9625c942017-03-23 11:34:28 -0700236/* PMI8998 FAB_ID */
237#define PMI8998_FAB_ID_SMIC 0x11
238#define PMI8998_FAB_ID_GF 0x30
239
240/* PM660 FAB_ID */
241#define PM660_FAB_ID_GF 0x0
242#define PM660_FAB_ID_TSMC 0x2
243#define PM660_FAB_ID_MX 0x3
244
David Collins8885f792017-01-26 14:36:34 -0800245/* PM8005 */
246#define PM8005_SUBTYPE 0x18
247
248/* PM8937 */
249#define PM8937_SUBTYPE 0x19
250
251/* PMI8937 */
252#define PMI8937_SUBTYPE 0x37
253
254/* SMB1381 */
255#define SMB1381_SUBTYPE 0x17
256
Abhijeet Dharmapurikar13f220e2017-04-04 19:37:09 -0700257/* SMB1355 */
258#define SMB1355_SUBTYPE 0x1C
259
David Collins8885f792017-01-26 14:36:34 -0800260struct pmic_revid_data {
261 u8 rev1;
262 u8 rev2;
263 u8 rev3;
264 u8 rev4;
265 u8 pmic_type;
266 u8 pmic_subtype;
267 const char *pmic_name;
268 int fab_id;
Rama Krishna Phani A379c70e2017-07-30 19:04:31 +0530269 int tp_rev;
David Collins8885f792017-01-26 14:36:34 -0800270};
271
272#ifdef CONFIG_QPNP_REVID
273struct pmic_revid_data *get_revid_data(struct device_node *dev_node);
274#else
275static inline
276struct pmic_revid_data *get_revid_data(struct device_node *dev_node)
277{
278 return NULL;
279}
280#endif
281#endif