upload tizen1.0 source
[kernel/linux-2.6.36.git] / arch / arm / mach-s5pv310 / max8997-c1.c
1 /*
2  * linux/arch/arm/mach-s5pv310/max8997-c1.c
3  *
4  * Copyright (c) 2011 Samsung Electronics Co., Ltd.
5  * MyungJoo Ham <myungjoo.ham@samsung.com>
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License version 2 as
9  * published by the Free Software Foundation.
10  *
11  * MAX8997 Setting for C1 Board
12  */
13
14 #include <linux/mfd/max8997.h>
15 #include <linux/regulator/machine.h>
16
17 #include <mach/gpio.h>
18 #include <mach/irqs.h>
19
20 #include <plat/gpio-cfg.h>
21
22 void __init c1_pmic_init(void)
23 {
24         int gpio;
25
26         /* TODO: SET1, SET2, SET3, AP_PMIC_IRQ< ... */
27         gpio = S5PV310_GPX0(7);
28         gpio_request(gpio, "AP_PMIC_IRQ");
29         s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(0xf));
30         s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
31 }
32
33 static struct regulator_consumer_supply c1_max8997_ldo1_consumer[] = {
34         REGULATOR_SUPPLY("vadc", NULL),
35         REGULATOR_SUPPLY("vadc", "s5p-charger"),
36 };
37 static struct regulator_consumer_supply c1_max8997_ldo2_consumer[] = {
38         REGULATOR_SUPPLY("vdd_alive", "s5pc210"), /* FIXME: device name */
39 };
40 static struct regulator_consumer_supply c1_max8997_ldo3_consumer[] = {
41         REGULATOR_SUPPLY("vusb_a", NULL),       /* TODO: DEV NAME? */
42         REGULATOR_SUPPLY("vmipi_1.1v", NULL),   /* obsolete */
43         REGULATOR_SUPPLY("vdd11", "mipi"), /* FIXME: device name */
44 };
45 static struct regulator_consumer_supply c1_max8997_ldo4_consumer[] = {
46         REGULATOR_SUPPLY("vmipi_1.8V", NULL), /* obsolete */
47         REGULATOR_SUPPLY("vdd18", "mipi"), /* FIXME: device name */
48         REGULATOR_SUPPLY("mipi_csi", "s5p-mipi-csis.0"), /* FIXME: device name */
49 };
50 static struct regulator_consumer_supply c1_max8997_ldo5_consumer[] = {
51         REGULATOR_SUPPLY("vhsic", NULL), /* obsolete? 8*/
52         REGULATOR_SUPPLY("vdd12_uhost", "s5pc210"), /* FIXME: device name */
53 };
54 static struct regulator_consumer_supply c1_max8997_ldo6_consumer[] = {
55         REGULATOR_SUPPLY("vcc_1.8v", "ld9040"),
56 };
57 static struct regulator_consumer_supply c1_max8997_ldo7_consumer[] = {
58         REGULATOR_SUPPLY("dig_18", "0-001f"),
59 };
60 static struct regulator_consumer_supply c1_max8997_ldo8_consumer[] = {
61         REGULATOR_SUPPLY("vusb_d", NULL), /* TODO: DEV NAME? */
62         REGULATOR_SUPPLY("vdac", NULL), /* TODO: DEV NAME? */
63 };
64 static struct regulator_consumer_supply c1_max8997_ldo9_consumer[] = {
65         REGULATOR_SUPPLY("vcc_2.8v_pda", NULL), /* FIXME: update name */
66 };
67 static struct regulator_consumer_supply c1_max8997_ldo10_consumer[] = {
68         REGULATOR_SUPPLY("vpll", NULL), /* obsolete? */
69         REGULATOR_SUPPLY("vdd11_pll", "s5pc210"), /* FIXME: device name */
70 };
71 static struct regulator_consumer_supply c1_max8997_ldo11_consumer[] = {
72         REGULATOR_SUPPLY("touch_2.8v", NULL),
73 };
74 static struct regulator_consumer_supply c1_max8997_ldo12_consumer[] = {
75         REGULATOR_SUPPLY("vddio", "17-003c"),   /* TODO: double check the name */
76 };
77 static struct regulator_consumer_supply c1_max8997_ldo13_consumer[] = {
78         REGULATOR_SUPPLY("vcc_3.0v_lcd", "ld9040"),
79 };
80 static struct regulator_consumer_supply c1_max8997_ldo14_consumer[] = {
81         REGULATOR_SUPPLY("inmotor", "max8997-haptic"),
82 };
83 static struct regulator_consumer_supply c1_max8997_ldo15_consumer[] = {
84         REGULATOR_SUPPLY("led_a_2.8v", NULL),   /* FIXME: dev name of motor */
85 };
86 static struct regulator_consumer_supply c1_max8997_ldo16_consumer[] = {
87         REGULATOR_SUPPLY("d_sensor", "0-001f"),
88 };
89 static struct regulator_consumer_supply c1_max8997_ldo17_consumer[] = {
90         REGULATOR_SUPPLY("vtf_2.8v", "s3c-sdhci.2"),
91 };
92 static struct regulator_consumer_supply c1_max8997_ldo18_consumer[] = {
93         REGULATOR_SUPPLY("touch_led_3.3v", NULL),
94 };
95 static struct regulator_consumer_supply c1_max8997_ldo21_consumer[] = {
96         /* "Memory I/O Power" */
97 };
98
99 static struct regulator_consumer_supply c1_max8997_buck1_consumer[] = {
100         REGULATOR_SUPPLY("vdd_arm", NULL),
101 };
102 static struct regulator_consumer_supply c1_max8997_buck2_consumer[] = {
103         REGULATOR_SUPPLY("vdd_int", NULL),
104 };
105 static struct regulator_consumer_supply c1_max8997_buck3_consumer[] = {
106         REGULATOR_SUPPLY("vg3d", "mali_dev.0"),
107 };
108 static struct regulator_consumer_supply c1_max8997_buck4_consumer[] = {
109         REGULATOR_SUPPLY("core", "0-001f"),
110 };
111 static struct regulator_consumer_supply c1_max8997_buck5_consumer[] = {
112         REGULATOR_SUPPLY("vdd_mem", NULL), /* LPDDR's Core Power */
113 };
114 static struct regulator_consumer_supply c1_max8997_buck6_consumer[] = {
115         REGULATOR_SUPPLY("dig_28", "0-001f"),
116 };
117 static struct regulator_consumer_supply c1_max8997_buck7_consumer[] = {
118         REGULATOR_SUPPLY("vcc_sub_2.0v", "0-003c"),     /* TODO: double check the name */
119 };
120
121 static struct regulator_consumer_supply c1_max8997_esafeout1_consumer[] = {
122         REGULATOR_SUPPLY("usb_vbus_ap_5v", NULL), /* obsolete. FIXME name? */
123 };
124 static struct regulator_consumer_supply c1_max8997_esafeout2_consumer[] = {
125         REGULATOR_SUPPLY("usb_vbus_cp_5v", NULL), /* obsolete. FIXME name? */
126 };
127
128 static struct regulator_consumer_supply c1_max8997_charger_consumer[] = {
129         REGULATOR_SUPPLY("vinchg1", "charger-manager.0"),
130 };
131 static struct regulator_consumer_supply c1_max8997_charger_topoff_consumer[] = {
132         REGULATOR_SUPPLY("vinchg_stop", NULL),
133 };
134
135 static struct regulator_consumer_supply c1_max8997_32khz_ap_consumer[] = {
136         REGULATOR_SUPPLY("gps_clk", NULL),
137         REGULATOR_SUPPLY("bt_clk", NULL),
138         REGULATOR_SUPPLY("wifi_clk", NULL),
139 };
140 static struct regulator_init_data c1_max8997_ldo1_data = {
141         .constraints    = {
142                 .name           = "VADC_3.3V_C210",
143                 .min_uV         = 3300000,
144                 .max_uV         = 3300000,
145                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
146                 .apply_uV       = 1,
147                 .state_mem      = {
148                         .enabled        = 0,
149                         .disabled       = 1,
150                 },
151         },
152         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_ldo1_consumer),
153         .consumer_supplies      = c1_max8997_ldo1_consumer,
154 };
155
156 static struct regulator_init_data c1_max8997_ldo2_data = {
157         .constraints    = {
158                 .name           = "VALIVE_1.1V_C210",
159                 .min_uV         = 1100000,
160                 .max_uV         = 1100000,
161                 .apply_uV       = 1,
162                 .always_on      = 1,
163                 .state_mem      = {
164                         .enabled        = 1,
165                         .disabled       = 0,
166                 },
167         },
168         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_ldo2_consumer),
169         .consumer_supplies      = c1_max8997_ldo2_consumer,
170 };
171
172 static struct regulator_init_data c1_max8997_ldo3_data = {
173         .constraints    = {
174                 .name           = "VUSB/MIPI_1.1V_C210",
175                 .min_uV         = 1100000,
176                 .max_uV         = 1100000,
177                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
178                 .apply_uV       = 1,
179                 .state_mem      = {
180                         .enabled        = 0,
181                         .disabled       = 1,
182                 },
183         },
184         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_ldo3_consumer),
185         .consumer_supplies      = c1_max8997_ldo3_consumer,
186 };
187
188 static struct regulator_init_data c1_max8997_ldo4_data = {
189         .constraints    = {
190                 .name           = "VMIPI_1.8V",
191                 .min_uV         = 1800000,
192                 .max_uV         = 1800000,
193                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
194                 .apply_uV       = 1,
195                 .state_mem      = {
196                         .enabled        = 0,
197                         .disabled       = 1,
198                 },
199         },
200         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_ldo4_consumer),
201         .consumer_supplies      = c1_max8997_ldo4_consumer,
202 };
203
204 static struct regulator_init_data c1_max8997_ldo5_data = {
205         .constraints    = {
206                 .name           = "VHSIC_1.2V_C210",
207                 .min_uV         = 1200000,
208                 .max_uV         = 1200000,
209                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
210                 .apply_uV       = 1,
211                 .state_mem      = {
212                         .enabled        = 0,
213                         .disabled       = 1,
214                 },
215         },
216         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_ldo5_consumer),
217         .consumer_supplies      = c1_max8997_ldo5_consumer,
218 };
219
220 static struct regulator_init_data c1_max8997_ldo6_data = {
221         .constraints    = {
222                 .name           = "VCC_1.8V_PDA",
223                 .min_uV         = 1800000,
224                 .max_uV         = 1800000,
225                 .apply_uV       = 1,
226                 .always_on      = 1,
227                 .state_mem      = {
228                         .enabled        = 1,
229                         .disabled       = 0,
230                 },
231         },
232         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_ldo6_consumer),
233         .consumer_supplies      = c1_max8997_ldo6_consumer,
234 };
235
236 static struct regulator_init_data c1_max8997_ldo7_data = {
237         .constraints    = {
238                 .name           = "CAM_ISP_1.8V",
239                 .min_uV         = 1800000,
240                 .max_uV         = 1800000,
241                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
242                 .apply_uV       = 1,
243                 .state_mem      = {
244                         .enabled        = 0,
245                         .disabled       = 1,
246                 },
247         },
248         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_ldo7_consumer),
249         .consumer_supplies      = c1_max8997_ldo7_consumer,
250 };
251
252 static struct regulator_init_data c1_max8997_ldo8_data = {
253         .constraints    = {
254                 .name           = "VUSB/VDAC_3.3V_C210",
255                 .min_uV         = 3300000,
256                 .max_uV         = 3300000,
257                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
258                 .apply_uV       = 1,
259                 .state_mem      = {
260                         .enabled        = 0,
261                         .disabled       = 1,
262                 },
263         },
264         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_ldo8_consumer),
265         .consumer_supplies      = c1_max8997_ldo8_consumer,
266 };
267
268 static struct regulator_init_data c1_max8997_ldo9_data = {
269         .constraints    = {
270                 .name           = "VCC_2.8V_PDA",
271                 .min_uV         = 2800000,
272                 .max_uV         = 2800000,
273                 .apply_uV       = 1,
274                 .always_on      = 1,
275                 .state_mem      = {
276                         .enabled        = 1,
277                         .disabled       = 0,
278                 },
279         },
280         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_ldo9_consumer),
281         .consumer_supplies      = c1_max8997_ldo9_consumer,
282 };
283
284 static struct regulator_init_data c1_max8997_ldo10_data = {
285         .constraints    = {
286                 .name           = "VPLL_1.1V_C210",
287                 .min_uV         = 1100000,
288                 .max_uV         = 1100000,
289                 .apply_uV       = 1,
290                 .always_on      = 1,
291                 .state_mem      = {
292                         .enabled        = 0,
293                         .disabled       = 1,
294                 },
295         },
296         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_ldo10_consumer),
297         .consumer_supplies      = c1_max8997_ldo10_consumer,
298 };
299
300 static struct regulator_init_data c1_max8997_ldo11_data = {
301         .constraints    = {
302                 .name           = "TOUCH_2.8V",
303                 .min_uV         = 2800000,
304                 .max_uV         = 2800000,
305                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
306                 .apply_uV       = 1,
307                 .state_mem      = {
308                         .enabled        = 0,
309                         .disabled       = 1,
310                 },
311         },
312         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_ldo11_consumer),
313         .consumer_supplies      = c1_max8997_ldo11_consumer,
314 };
315
316 static struct regulator_init_data c1_max8997_ldo12_data = {
317         .constraints    = {
318                 .name           = "VT_CAM_1.8V",
319                 .min_uV         = 1800000,
320                 .max_uV         = 1800000,
321                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
322                 .apply_uV       = 1,
323                 .state_mem      = {
324                         .enabled        = 0,
325                         .disabled       = 1,
326                 },
327         },
328         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_ldo12_consumer),
329         .consumer_supplies      = c1_max8997_ldo12_consumer,
330 };
331
332 static struct regulator_init_data c1_max8997_ldo13_data = {
333         .constraints    = {
334                 .name           = "VCC_3.0V_LCD",
335                 .min_uV         = 3000000,
336                 .max_uV         = 3000000,
337                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
338                 .apply_uV       = 1,
339                 .state_mem      = {
340                         .enabled        = 0,
341                         .disabled       = 1,
342                 },
343         },
344         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_ldo13_consumer),
345         .consumer_supplies      = c1_max8997_ldo13_consumer,
346 };
347
348 static struct regulator_init_data c1_max8997_ldo14_data = {
349         .constraints    = {
350                 .name           = "VCC_3.0V_MOTOR",
351                 .min_uV         = 3000000,
352                 .max_uV         = 3000000,
353                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
354                 .apply_uV       = 1,
355                 .state_mem      = {
356                         .enabled        = 0,
357                         .disabled       = 1,
358                 },
359         },
360         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_ldo14_consumer),
361         .consumer_supplies      = c1_max8997_ldo14_consumer,
362 };
363
364 static struct regulator_init_data c1_max8997_ldo15_data = {
365         .constraints    = {
366                 .name           = "LED_A_2.8V",
367                 .min_uV         = 2800000,
368                 .max_uV         = 2800000,
369                 .apply_uV       = 1,
370                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
371                 .state_mem      = {
372                         .enabled        = 0,
373                         .disabled       = 1,
374                 },
375         },
376         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_ldo15_consumer),
377         .consumer_supplies      = c1_max8997_ldo15_consumer,
378 };
379
380 static struct regulator_init_data c1_max8997_ldo16_data = {
381         .constraints    = {
382                 .name           = "CAM_SENSOR_IO_1.8V",
383                 .min_uV         = 1800000,
384                 .max_uV         = 1800000,
385                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
386                 .apply_uV       = 1,
387                 .state_mem      = {
388                         .enabled        = 0,
389                         .disabled       = 1,
390                 },
391         },
392         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_ldo16_consumer),
393         .consumer_supplies      = c1_max8997_ldo16_consumer,
394 };
395
396 static struct regulator_init_data c1_max8997_ldo17_data = {
397         .constraints    = {
398                 .name           = "VTF_2.8V",
399                 .min_uV         = 2800000,
400                 .max_uV         = 2800000,
401                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
402                 .apply_uV       = 1,
403                 .state_mem      = {
404                         .enabled        = 0,
405                         .disabled       = 1,
406                 },
407         },
408         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_ldo17_consumer),
409         .consumer_supplies      = c1_max8997_ldo17_consumer,
410 };
411
412 static struct regulator_init_data c1_max8997_ldo18_data = {
413         .constraints    = {
414                 .name           = "TOUCH_LED_3.3V",
415                 .min_uV         = 3300000,
416                 .max_uV         = 3300000,
417                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
418                 .apply_uV       = 1,
419                 .state_mem      = {
420                         .enabled        = 0,
421                         .disabled       = 1,
422                 },
423         },
424         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_ldo18_consumer),
425         .consumer_supplies      = c1_max8997_ldo18_consumer,
426 };
427
428 static struct regulator_init_data c1_max8997_ldo21_data = {
429         .constraints    = {
430                 .name           = "VDDQ_M1M2_1.2V",
431                 .min_uV         = 1200000,
432                 .max_uV         = 1200000,
433                 .apply_uV       = 1,
434                 .always_on      = 1,
435                 .state_mem      = {
436                         .enabled        = 0,
437                         .disabled       = 1,
438                 },
439         },
440         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_ldo21_consumer),
441         .consumer_supplies      = c1_max8997_ldo21_consumer,
442 };
443
444 static struct regulator_init_data c1_max8997_buck1_data = {
445         .constraints    = {
446                 .name           = "VARM_1.2V_C210",
447                 .min_uV         = 900000,
448                 .max_uV         = 1350000,
449                 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
450                 .always_on      = 1,
451                 .state_mem      = {
452                         .enabled = 0,
453                         .disabled       = 1,
454                 },
455         },
456         .num_consumer_supplies = ARRAY_SIZE(c1_max8997_buck1_consumer),
457         .consumer_supplies = c1_max8997_buck1_consumer,
458 };
459
460 static struct regulator_init_data c1_max8997_buck2_data = {
461         .constraints    = {
462                 .name           = "VINT_1.1V_C210",
463                 .min_uV         = 900000,
464                 .max_uV         = 1100000,
465                 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
466                 .always_on      = 1,
467                 .state_mem      = {
468                         .enabled = 0,
469                         .disabled       = 1,
470                 },
471         },
472         .num_consumer_supplies = ARRAY_SIZE(c1_max8997_buck2_consumer),
473         .consumer_supplies = c1_max8997_buck2_consumer,
474 };
475
476 static struct regulator_init_data c1_max8997_buck3_data = {
477         .constraints    = {
478                 .name           = "VG3D_1.1V_C210",
479                 .min_uV         = 900000,
480                 .max_uV         = 1100000,
481                 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
482                         REGULATOR_CHANGE_STATUS,
483                 .state_mem      = {
484                         .enabled        = 0,
485                         .disabled       = 1,
486                 },
487         },
488         .num_consumer_supplies = ARRAY_SIZE(c1_max8997_buck3_consumer),
489         .consumer_supplies = c1_max8997_buck3_consumer,
490 };
491
492 static struct regulator_init_data c1_max8997_buck4_data = {
493         .constraints    = {
494                 .name           = "CAM_ISP_CORE_1.2V",
495                 .min_uV         = 1200000,
496                 .max_uV         = 1200000,
497                 .apply_uV       = 1,
498                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
499                 .state_mem      = {
500                         .enabled        = 0,
501                         .disabled       = 1,
502                 },
503         },
504         .num_consumer_supplies = ARRAY_SIZE(c1_max8997_buck4_consumer),
505         .consumer_supplies = c1_max8997_buck4_consumer,
506 };
507
508 static struct regulator_init_data c1_max8997_buck5_data = {
509         .constraints    = {
510                 .name           = "VMEM_1.2V_C210",
511                 .min_uV         = 1200000,
512                 .max_uV         = 1200000,
513                 .apply_uV       = 1,
514                 .always_on      = 1,
515                 .state_mem      = {
516                         .enabled        = 1,
517                         .disabled       = 0,
518                 },
519         },
520         .num_consumer_supplies = ARRAY_SIZE(c1_max8997_buck5_consumer),
521         .consumer_supplies = c1_max8997_buck5_consumer,
522 };
523
524 static struct regulator_init_data c1_max8997_buck6_data = {
525         .constraints    = {
526                 .name           = "CAM_AF_2.8V",
527                 .min_uV         = 2800000,
528                 .max_uV         = 2800000,
529                 .apply_uV       = 1,
530                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
531                 .state_mem      = {
532                         .enabled        = 0,
533                         .disabled       = 1,
534                 },
535         },
536         .num_consumer_supplies = ARRAY_SIZE(c1_max8997_buck6_consumer),
537         .consumer_supplies = c1_max8997_buck6_consumer,
538 };
539
540 static struct regulator_init_data c1_max8997_buck7_data = {
541         .constraints    = {
542                 .name           = "VCC_SUB_2.0V",
543                 .min_uV         = 2000000,
544                 .max_uV         = 2000000,
545                 .apply_uV       = 1,
546                 .always_on      = 1,
547                 .state_mem      = {
548                         .enabled        = 1,
549                         .disabled       = 0,
550                 },
551         },
552         .num_consumer_supplies = ARRAY_SIZE(c1_max8997_buck7_consumer),
553         .consumer_supplies = c1_max8997_buck7_consumer,
554 };
555
556 static struct regulator_init_data c1_max8997_32khz_ap_data = {
557         .constraints    = {
558                 .name           = "32KHz AP",
559                 .always_on      = 1,
560                 .state_mem      = {
561                         .enabled        = 1,
562                         .disabled       = 0,
563                 },
564         },
565         .num_consumer_supplies = ARRAY_SIZE(c1_max8997_32khz_ap_consumer),
566         .consumer_supplies = c1_max8997_32khz_ap_consumer,
567 };
568
569 static struct regulator_init_data c1_max8997_32khz_cp_data = {
570         .constraints    = {
571                 .name           = "32KHz CP",
572                 .state_mem      = {
573                         .enabled        = 0,
574                         .disabled       = 1,
575                 },
576         },
577 };
578
579 static struct regulator_init_data c1_max8997_vichg_data = {
580         .constraints    = {
581                 .name           = "VICHG",
582                 .state_mem      = {
583                         .enabled        = 0,
584                         .disabled       = 1,
585                 },
586         },
587 };
588
589 static struct regulator_init_data c1_max8997_esafeout1_data = {
590         .constraints    = {
591                 .name           = "SAFEOUT1",
592                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
593                 .state_mem      = {
594                         .enabled        = 0,
595                         .disabled       = 1,
596                 },
597         },
598         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_esafeout1_consumer),
599         .consumer_supplies      = c1_max8997_esafeout1_consumer,
600 };
601
602 static struct regulator_init_data c1_max8997_esafeout2_data = {
603         .constraints    = {
604                 .name           = "SAFEOUT2",
605                 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
606                 .state_mem      = {
607                         .enabled        = 0,
608                         .disabled       = 1,
609                 },
610         },
611         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_esafeout2_consumer),
612         .consumer_supplies      = c1_max8997_esafeout2_consumer,
613 };
614
615 static struct regulator_init_data c1_max8997_charger_cv_data = {
616         .constraints    = {
617                 .name           = "CHARGER_CV",
618                 .min_uV         = 4200000,
619                 .max_uV         = 4200000,
620                 .apply_uV       = 1,
621         },
622 };
623
624 static struct regulator_init_data c1_max8997_charger_data = {
625         .constraints    = {
626                 .name           = "CHARGER",
627                 .min_uA         = 200000,
628                 .max_uA         = 950000,
629                 .boot_on        = 1,
630                 .valid_ops_mask = REGULATOR_CHANGE_STATUS |
631                                 REGULATOR_CHANGE_CURRENT,
632         },
633         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_charger_consumer),
634         .consumer_supplies      = c1_max8997_charger_consumer,
635 };
636
637 static struct regulator_init_data c1_max8997_charger_topoff_data = {
638         .constraints    = {
639                 .name           = "CHARGER TOPOFF",
640                 .min_uA         = 50000,
641                 .max_uA         = 200000,
642                 .valid_ops_mask = REGULATOR_CHANGE_CURRENT,
643         },
644         .num_consumer_supplies  = ARRAY_SIZE(c1_max8997_charger_topoff_consumer),
645         .consumer_supplies      = c1_max8997_charger_topoff_consumer,
646 };
647
648 static struct max8997_regulator_data c1_max8997_regulators[] = {
649         { MAX8997_LDO1, &c1_max8997_ldo1_data },
650         { MAX8997_LDO2, &c1_max8997_ldo2_data },
651         { MAX8997_LDO3, &c1_max8997_ldo3_data },
652         { MAX8997_LDO4, &c1_max8997_ldo4_data },
653         { MAX8997_LDO5, &c1_max8997_ldo5_data },
654         { MAX8997_LDO6, &c1_max8997_ldo6_data },
655         { MAX8997_LDO7, &c1_max8997_ldo7_data },
656         { MAX8997_LDO8, &c1_max8997_ldo8_data },
657         { MAX8997_LDO9, &c1_max8997_ldo9_data },
658         { MAX8997_LDO10, &c1_max8997_ldo10_data },
659         { MAX8997_LDO11, &c1_max8997_ldo11_data },
660         { MAX8997_LDO12, &c1_max8997_ldo12_data },
661         { MAX8997_LDO13, &c1_max8997_ldo13_data },
662         { MAX8997_LDO14, &c1_max8997_ldo14_data },
663         { MAX8997_LDO15, &c1_max8997_ldo15_data },
664         { MAX8997_LDO16, &c1_max8997_ldo16_data },
665         { MAX8997_LDO17, &c1_max8997_ldo17_data },
666         { MAX8997_LDO18, &c1_max8997_ldo18_data },
667         { MAX8997_LDO21, &c1_max8997_ldo21_data },
668
669         { MAX8997_BUCK1, &c1_max8997_buck1_data },
670         { MAX8997_BUCK2, &c1_max8997_buck2_data },
671         { MAX8997_BUCK3, &c1_max8997_buck3_data },
672         { MAX8997_BUCK4, &c1_max8997_buck4_data },
673         { MAX8997_BUCK5, &c1_max8997_buck5_data },
674         { MAX8997_BUCK6, &c1_max8997_buck6_data },
675         { MAX8997_BUCK7, &c1_max8997_buck7_data },
676
677         { MAX8997_EN32KHZ_AP, &c1_max8997_32khz_ap_data },
678         { MAX8997_EN32KHZ_CP, &c1_max8997_32khz_cp_data },
679
680         { MAX8997_ENVICHG, &c1_max8997_vichg_data },
681         { MAX8997_ESAFEOUT1, &c1_max8997_esafeout1_data },
682         { MAX8997_ESAFEOUT2, &c1_max8997_esafeout2_data },
683         { MAX8997_CHARGER_CV, &c1_max8997_charger_cv_data },
684         { MAX8997_CHARGER, &c1_max8997_charger_data },
685         { MAX8997_CHARGER_TOPOFF, &c1_max8997_charger_topoff_data },
686 };
687
688 extern struct max8997_muic_platform_data c1_muic_pdata;
689 extern struct max8997_haptic_platform_data c1_haptic_pdata;
690
691 struct max8997_platform_data c1_max8997_pdata = {
692         .irq_base               = IRQ_PMIC_BASE,
693         .ono                    = 0,
694         .wakeup                 = 1,
695
696         .num_regulators         = ARRAY_SIZE(c1_max8997_regulators),
697         .regulators             = c1_max8997_regulators,
698
699         .buck125_gpios = { S5PV310_GPX0(5), S5PV310_GPX0(6), S5PV310_GPL0(0) },
700         .buck125_default_idx = 0,
701         .buck1_gpiodvs = false,
702         .buck2_gpiodvs = true,
703         .buck5_gpiodvs = false,
704
705         .buck1_voltage[0] = 1350000, /* 1.35V */
706         .buck1_voltage[1] = 1300000, /* 1.3V */
707         .buck1_voltage[2] = 1250000, /* 1.25V */
708         .buck1_voltage[3] = 1200000, /* 1.2V */
709         .buck1_voltage[4] = 1150000, /* 1.15V */
710         .buck1_voltage[5] = 1100000, /* 1.1V */
711         .buck1_voltage[6] = 1000000, /* 1.0V */ /* No room for 1.05V */
712         .buck1_voltage[7] = 950000, /* 0.95V */
713
714         .buck2_voltage[0] = 1100000, /* 1.1V */
715         .buck2_voltage[1] = 1000000, /* 1.0V */
716         .buck2_voltage[2] = 950000, /* 0.95V */
717         .buck2_voltage[3] = 900000, /* 0.9V */
718         .buck2_voltage[4] = 1100000, /* 1.1V */
719         .buck2_voltage[5] = 1000000, /* 1.0V */
720         .buck2_voltage[6] = 950000, /* 0.95V */
721         .buck2_voltage[7] = 900000, /* 0.9V */
722
723         .buck5_voltage[0] = 1200000, /* 1.2V */
724         .buck5_voltage[1] = 1200000, /* 1.2V */
725         .buck5_voltage[2] = 1200000, /* 1.2V */
726         .buck5_voltage[3] = 1200000, /* 1.2V */
727         .buck5_voltage[4] = 1200000, /* 1.2V */
728         .buck5_voltage[5] = 1200000, /* 1.2V */
729         .buck5_voltage[6] = 1200000, /* 1.2V */
730         .buck5_voltage[7] = 1200000, /* 1.2V */
731
732         /* CHARGER */
733         .eoc_mA         = 50,
734         .eoc_ratio      = 0,    /* TODO: change after ratio is implemented */
735         .vichg_adc_get_uV       = NULL, /* TODO: Need to fill this in */
736         .timeout        = 5,
737
738         /* haptic */
739         .haptic_pdata   = &c1_haptic_pdata,
740
741         /* muic */
742         .muic_pdata     = &c1_muic_pdata,
743
744         /* RTC */
745         .delay          = true,
746 };