2 * linux/arch/arm/mach-s5pv310/max8997-u1hd.c
4 * Copyright (c) 2011 Samsung Electronics Co., Ltd.
5 * MyungJoo Ham <myungjoo.ham@samsung.com>
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.
11 * MAX8997 Setting for U1 Board
14 #include <linux/mfd/max8997.h>
15 #include <linux/regulator/machine.h>
17 #include <mach/gpio.h>
18 #include <mach/irqs.h>
20 #include <plat/gpio-cfg.h>
22 void __init u1hd_pmic_init(void)
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);
33 static struct regulator_consumer_supply u1hd_max8997_ldo1_consumer[] = {
34 REGULATOR_SUPPLY("vadc", NULL),
35 REGULATOR_SUPPLY("vadc", "s5p-charger"),
37 static struct regulator_consumer_supply u1hd_max8997_ldo2_consumer[] = {
38 REGULATOR_SUPPLY("vdd_alive", "s5pc210"), /* FIXME: device name */
40 static struct regulator_consumer_supply u1hd_max8997_ldo3_consumer[] = {
41 REGULATOR_SUPPLY("vusb_a", NULL), /* TODO: DEV NAME? */
42 REGULATOR_SUPPLY("mipi_1.1v_c210", "s5p-mipi-dsim.0"), /* obsolete */
43 REGULATOR_SUPPLY("vdd11_mipi", "s3c-csis.0"),
44 REGULATOR_SUPPLY("vdd11_mipi", "s3c-csis.1"),
46 static struct regulator_consumer_supply u1hd_max8997_ldo4_consumer[] = {
47 REGULATOR_SUPPLY("vmipi_1.8v", "s5p-mipi-dsim.0"), /* obsolete */
48 REGULATOR_SUPPLY("vdd18_mipi", "s3c-csis.0"),
49 REGULATOR_SUPPLY("vdd18_mipi", "s3c-csis.1"),
51 static struct regulator_consumer_supply u1hd_max8997_ldo5_consumer[] = {
52 REGULATOR_SUPPLY("vhsic", NULL), /* obsolete? 8*/
53 REGULATOR_SUPPLY("vdd12_uhost", "s5pc210"), /* FIXME: device name */
55 static struct regulator_consumer_supply u1hd_max8997_ldo6_consumer[] = {
56 REGULATOR_SUPPLY("vcc_1.8v", "ld9040"),
57 REGULATOR_SUPPLY("v_gps_1.8v", "gsd4t"),
59 static struct regulator_consumer_supply u1hd_max8997_ldo7_consumer[] = {
60 REGULATOR_SUPPLY("i_host_18", "0-001f"),
61 REGULATOR_SUPPLY("i_host_18", "17-002d"),
63 static struct regulator_consumer_supply u1hd_max8997_ldo8_consumer[] = {
64 REGULATOR_SUPPLY("vusb_d", NULL), /* TODO: DEV NAME? */
65 REGULATOR_SUPPLY("vdac", NULL), /* TODO: DEV NAME? */
67 static struct regulator_consumer_supply u1hd_max8997_ldo9_consumer[] = {
68 REGULATOR_SUPPLY("vcc_2.8v_pda", NULL), /* FIXME: update name */
70 static struct regulator_consumer_supply u1hd_max8997_ldo10_consumer[] = {
71 REGULATOR_SUPPLY("vpll", NULL), /* obsolete? */
72 REGULATOR_SUPPLY("vdd11_pll", "s5pc210"), /* FIXME: device name */
74 static struct regulator_consumer_supply u1hd_max8997_ldo11_consumer[] = {
75 REGULATOR_SUPPLY("touch_2.8v", NULL),
77 static struct regulator_consumer_supply u1hd_max8997_ldo12_consumer[] = {
78 REGULATOR_SUPPLY("vddio", "17-003c"), /* TODO: double check the name */
79 REGULATOR_SUPPLY("vt_core_18", "17-002d"), /* TODO: double check the name */
81 static struct regulator_consumer_supply u1hd_max8997_ldo13_consumer[] = {
82 REGULATOR_SUPPLY("vcc_3.0v_lcd", "s6e8aa0"),
84 static struct regulator_consumer_supply u1hd_max8997_ldo14_consumer[] = {
85 REGULATOR_SUPPLY("inmotor", "max8997-haptic"),
87 static struct regulator_consumer_supply u1hd_max8997_ldo15_consumer[] = {
88 REGULATOR_SUPPLY("vlcd_2.2v", "s6e8aa0"), /* FIXME: dev name of motor */
90 static struct regulator_consumer_supply u1hd_max8997_ldo16_consumer[] = {
91 REGULATOR_SUPPLY("s_vif_18", "0-001f"),
93 static struct regulator_consumer_supply u1hd_max8997_ldo17_consumer[] = {
94 REGULATOR_SUPPLY("vmmc", "s3c-sdhci.2"),
96 static struct regulator_consumer_supply u1hd_max8997_ldo18_consumer[] = {
97 REGULATOR_SUPPLY("touch_led_3.3v", NULL),
99 static struct regulator_consumer_supply u1hd_max8997_ldo21_consumer[] = {
100 /* "Memory I/O Power" */
103 static struct regulator_consumer_supply u1hd_max8997_buck1_consumer[] = {
104 REGULATOR_SUPPLY("vdd_arm", NULL),
106 static struct regulator_consumer_supply u1hd_max8997_buck2_consumer[] = {
107 REGULATOR_SUPPLY("vdd_int", NULL),
109 static struct regulator_consumer_supply u1hd_max8997_buck3_consumer[] = {
110 REGULATOR_SUPPLY("vg3d", "mali_dev.0"),
112 static struct regulator_consumer_supply u1hd_max8997_buck4_consumer[] = {
113 REGULATOR_SUPPLY("i_core_12", "0-001f"),
114 REGULATOR_SUPPLY("i_core_12", "17-002d"),
116 static struct regulator_consumer_supply u1hd_max8997_buck5_consumer[] = {
117 REGULATOR_SUPPLY("vdd_mem", NULL), /* LPDDR's Core Power */
119 static struct regulator_consumer_supply u1hd_max8997_buck6_consumer[] = {
120 REGULATOR_SUPPLY("dig_28", "0-001f"),
121 REGULATOR_SUPPLY("flash_en", "0-001f"), /* Actual SET/EN of FLASH */
122 REGULATOR_SUPPLY("flash_set", "0-001f"), /* Dummy of FLASH */
124 static struct regulator_consumer_supply u1hd_max8997_buck7_consumer[] = {
125 REGULATOR_SUPPLY("vcc_sub_2.0v", "0-003c"), /* TODO: double check the name */
128 static struct regulator_consumer_supply u1hd_max8997_esafeout1_consumer[] = {
129 REGULATOR_SUPPLY("usb_vbus_ap_5v", NULL), /* obsolete. FIXME name? */
131 static struct regulator_consumer_supply u1hd_max8997_esafeout2_consumer[] = {
132 REGULATOR_SUPPLY("usb_vbus_cp_5v", NULL), /* obsolete. FIXME name? */
134 #ifdef CONFIG_CHARGERCTRL_MAX8997
135 static struct regulator_consumer_supply u1hd_max8997_charger_consumer[] = {
136 REGULATOR_SUPPLY("vinchg1", "charger-manager.0"),
138 static struct regulator_consumer_supply u1hd_max8997_charger_topoff_consumer[] = {
139 REGULATOR_SUPPLY("vinchg_stop", NULL),
142 static struct regulator_consumer_supply u1hd_max8997_32khz_ap_consumer[] = {
143 REGULATOR_SUPPLY("gps_clk", "gsd4t"),
144 REGULATOR_SUPPLY("bt_clk", NULL),
145 REGULATOR_SUPPLY("wifi_clk", NULL),
147 static struct regulator_init_data u1hd_max8997_ldo1_data = {
149 .name = "VADC_3.3V_C210",
152 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
159 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_ldo1_consumer),
160 .consumer_supplies = u1hd_max8997_ldo1_consumer,
163 static struct regulator_init_data u1hd_max8997_ldo2_data = {
165 .name = "VALIVE_1.1V_C210",
175 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_ldo2_consumer),
176 .consumer_supplies = u1hd_max8997_ldo2_consumer,
179 static struct regulator_init_data u1hd_max8997_ldo3_data = {
181 .name = "VUSB/MIPI_1.1V_C210",
184 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
192 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_ldo3_consumer),
193 .consumer_supplies = u1hd_max8997_ldo3_consumer,
196 static struct regulator_init_data u1hd_max8997_ldo4_data = {
198 .name = "VMIPI_1.8V",
201 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
209 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_ldo4_consumer),
210 .consumer_supplies = u1hd_max8997_ldo4_consumer,
213 static struct regulator_init_data u1hd_max8997_ldo5_data = {
215 .name = "VHSIC_1.2V_C210",
218 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
225 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_ldo5_consumer),
226 .consumer_supplies = u1hd_max8997_ldo5_consumer,
229 static struct regulator_init_data u1hd_max8997_ldo6_data = {
231 .name = "VCC_1.8V_PDA",
241 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_ldo6_consumer),
242 .consumer_supplies = u1hd_max8997_ldo6_consumer,
245 static struct regulator_init_data u1hd_max8997_ldo7_data = {
247 .name = "CAM_ISP_1.8V",
250 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
257 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_ldo7_consumer),
258 .consumer_supplies = u1hd_max8997_ldo7_consumer,
261 static struct regulator_init_data u1hd_max8997_ldo8_data = {
263 .name = "VUSB/VDAC_3.3V_C210",
266 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
273 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_ldo8_consumer),
274 .consumer_supplies = u1hd_max8997_ldo8_consumer,
277 static struct regulator_init_data u1hd_max8997_ldo9_data = {
279 .name = "VCC_2.8V_PDA",
289 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_ldo9_consumer),
290 .consumer_supplies = u1hd_max8997_ldo9_consumer,
293 static struct regulator_init_data u1hd_max8997_ldo10_data = {
295 .name = "VPLL_1.1V_C210",
305 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_ldo10_consumer),
306 .consumer_supplies = u1hd_max8997_ldo10_consumer,
309 static struct regulator_init_data u1hd_max8997_ldo11_data = {
311 .name = "TOUCH_2.8V",
314 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
321 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_ldo11_consumer),
322 .consumer_supplies = u1hd_max8997_ldo11_consumer,
325 static struct regulator_init_data u1hd_max8997_ldo12_data = {
327 .name = "VT_CAM_1.8V",
330 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
337 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_ldo12_consumer),
338 .consumer_supplies = u1hd_max8997_ldo12_consumer,
341 static struct regulator_init_data u1hd_max8997_ldo13_data = {
343 .name = "VCC_3.0V_LCD",
346 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
354 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_ldo13_consumer),
355 .consumer_supplies = u1hd_max8997_ldo13_consumer,
358 static struct regulator_init_data u1hd_max8997_ldo14_data = {
360 .name = "VCC_3.0V_MOTOR",
363 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
370 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_ldo14_consumer),
371 .consumer_supplies = u1hd_max8997_ldo14_consumer,
374 static struct regulator_init_data u1hd_max8997_ldo15_data = {
381 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
387 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_ldo15_consumer),
388 .consumer_supplies = u1hd_max8997_ldo15_consumer,
391 static struct regulator_init_data u1hd_max8997_ldo16_data = {
393 .name = "CAM_SENSOR_IO_1.8V",
396 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
403 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_ldo16_consumer),
404 .consumer_supplies = u1hd_max8997_ldo16_consumer,
407 static struct regulator_init_data u1hd_max8997_ldo17_data = {
412 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
419 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_ldo17_consumer),
420 .consumer_supplies = u1hd_max8997_ldo17_consumer,
423 static struct regulator_init_data u1hd_max8997_ldo18_data = {
425 .name = "TOUCH_LED_3.3V",
428 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
435 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_ldo18_consumer),
436 .consumer_supplies = u1hd_max8997_ldo18_consumer,
439 static struct regulator_init_data u1hd_max8997_ldo21_data = {
441 .name = "VDDQ_M1M2_1.2V",
451 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_ldo21_consumer),
452 .consumer_supplies = u1hd_max8997_ldo21_consumer,
455 static struct regulator_init_data u1hd_max8997_buck1_data = {
457 .name = "VARM_1.2V_C210",
460 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
467 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_buck1_consumer),
468 .consumer_supplies = u1hd_max8997_buck1_consumer,
471 static struct regulator_init_data u1hd_max8997_buck2_data = {
473 .name = "VINT_1.1V_C210",
476 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
483 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_buck2_consumer),
484 .consumer_supplies = u1hd_max8997_buck2_consumer,
487 static struct regulator_init_data u1hd_max8997_buck3_data = {
489 .name = "VG3D_1.1V_C210",
492 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
493 REGULATOR_CHANGE_STATUS,
499 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_buck3_consumer),
500 .consumer_supplies = u1hd_max8997_buck3_consumer,
503 static struct regulator_init_data u1hd_max8997_buck4_data = {
505 .name = "CAM_ISP_CORE_1.2V",
509 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
515 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_buck4_consumer),
516 .consumer_supplies = u1hd_max8997_buck4_consumer,
519 static struct regulator_init_data u1hd_max8997_buck5_data = {
521 .name = "VMEM_1.2V_C210",
531 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_buck5_consumer),
532 .consumer_supplies = u1hd_max8997_buck5_consumer,
535 static struct regulator_init_data u1hd_max8997_buck6_data = {
541 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
547 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_buck6_consumer),
548 .consumer_supplies = u1hd_max8997_buck6_consumer,
551 static struct regulator_init_data u1hd_max8997_buck7_data = {
553 .name = "VCC_SUB_2.0V",
563 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_buck7_consumer),
564 .consumer_supplies = u1hd_max8997_buck7_consumer,
567 static struct regulator_init_data u1hd_max8997_32khz_ap_data = {
571 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
577 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_32khz_ap_consumer),
578 .consumer_supplies = u1hd_max8997_32khz_ap_consumer,
581 static struct regulator_init_data u1hd_max8997_32khz_cp_data = {
591 static struct regulator_init_data u1hd_max8997_vichg_data = {
601 static struct regulator_init_data u1hd_max8997_esafeout1_data = {
604 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
610 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_esafeout1_consumer),
611 .consumer_supplies = u1hd_max8997_esafeout1_consumer,
614 static struct regulator_init_data u1hd_max8997_esafeout2_data = {
617 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
623 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_esafeout2_consumer),
624 .consumer_supplies = u1hd_max8997_esafeout2_consumer,
627 #ifdef CONFIG_CHARGERCTRL_MAX8997
628 static struct regulator_init_data u1hd_max8997_charger_cv_data = {
630 .name = "CHARGER_CV",
637 static struct regulator_init_data u1hd_max8997_charger_data = {
643 .valid_ops_mask = REGULATOR_CHANGE_STATUS |
644 REGULATOR_CHANGE_CURRENT,
646 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_charger_consumer),
647 .consumer_supplies = u1hd_max8997_charger_consumer,
650 static struct regulator_init_data u1hd_max8997_charger_topoff_data = {
652 .name = "CHARGER TOPOFF",
655 .valid_ops_mask = REGULATOR_CHANGE_CURRENT,
657 .num_consumer_supplies = ARRAY_SIZE(u1hd_max8997_charger_topoff_consumer),
658 .consumer_supplies = u1hd_max8997_charger_topoff_consumer,
662 static struct max8997_regulator_data u1hd_max8997_regulators[] = {
663 { MAX8997_LDO1, &u1hd_max8997_ldo1_data },
664 { MAX8997_LDO2, &u1hd_max8997_ldo2_data },
665 { MAX8997_LDO3, &u1hd_max8997_ldo3_data },
666 { MAX8997_LDO4, &u1hd_max8997_ldo4_data },
667 { MAX8997_LDO5, &u1hd_max8997_ldo5_data },
668 { MAX8997_LDO6, &u1hd_max8997_ldo6_data },
669 { MAX8997_LDO7, &u1hd_max8997_ldo7_data },
670 { MAX8997_LDO8, &u1hd_max8997_ldo8_data },
671 { MAX8997_LDO9, &u1hd_max8997_ldo9_data },
672 { MAX8997_LDO10, &u1hd_max8997_ldo10_data },
673 { MAX8997_LDO11, &u1hd_max8997_ldo11_data },
674 { MAX8997_LDO12, &u1hd_max8997_ldo12_data },
675 { MAX8997_LDO13, &u1hd_max8997_ldo13_data },
676 { MAX8997_LDO14, &u1hd_max8997_ldo14_data },
677 { MAX8997_LDO15, &u1hd_max8997_ldo15_data },
678 { MAX8997_LDO16, &u1hd_max8997_ldo16_data },
679 { MAX8997_LDO17, &u1hd_max8997_ldo17_data },
680 { MAX8997_LDO18, &u1hd_max8997_ldo18_data },
681 { MAX8997_LDO21, &u1hd_max8997_ldo21_data },
683 { MAX8997_BUCK1, &u1hd_max8997_buck1_data },
684 { MAX8997_BUCK2, &u1hd_max8997_buck2_data },
685 { MAX8997_BUCK3, &u1hd_max8997_buck3_data },
686 { MAX8997_BUCK4, &u1hd_max8997_buck4_data },
687 { MAX8997_BUCK5, &u1hd_max8997_buck5_data },
688 { MAX8997_BUCK6, &u1hd_max8997_buck6_data },
689 { MAX8997_BUCK7, &u1hd_max8997_buck7_data },
691 { MAX8997_EN32KHZ_AP, &u1hd_max8997_32khz_ap_data },
692 { MAX8997_EN32KHZ_CP, &u1hd_max8997_32khz_cp_data },
694 { MAX8997_ENVICHG, &u1hd_max8997_vichg_data },
695 { MAX8997_ESAFEOUT1, &u1hd_max8997_esafeout1_data },
696 { MAX8997_ESAFEOUT2, &u1hd_max8997_esafeout2_data },
697 #ifdef CONFIG_CHARGERCTRL_MAX8997
698 { MAX8997_CHARGER_CV, &u1hd_max8997_charger_cv_data },
699 { MAX8997_CHARGER, &u1hd_max8997_charger_data },
700 { MAX8997_CHARGER_TOPOFF, &u1hd_max8997_charger_topoff_data },
704 extern struct max8997_muic_platform_data u1hd_muic_pdata;
705 extern struct max8997_haptic_platform_data u1hd_haptic_pdata;
707 struct max8997_platform_data u1hd_max8997_pdata = {
708 .irq_base = IRQ_PMIC_BASE,
712 .num_regulators = ARRAY_SIZE(u1hd_max8997_regulators),
713 .regulators = u1hd_max8997_regulators,
715 .buck125_gpios = { S5PV310_GPX0(5), S5PV310_GPX0(6), S5PV310_GPL0(0) },
716 .buck125_default_idx = 0,
717 .buck1_gpiodvs = false,
718 .buck2_gpiodvs = false,
719 .buck5_gpiodvs = false,
721 .buck1_voltage[0] = 1350000, /* 1.35V */
722 .buck1_voltage[1] = 1300000, /* 1.3V */
723 .buck1_voltage[2] = 1250000, /* 1.25V */
724 .buck1_voltage[3] = 1200000, /* 1.2V */
725 .buck1_voltage[4] = 1150000, /* 1.15V */
726 .buck1_voltage[5] = 1100000, /* 1.1V */
727 .buck1_voltage[6] = 1000000, /* 1.0V */ /* No room for 1.05V */
728 .buck1_voltage[7] = 950000, /* 0.95V */
730 .buck2_voltage[0] = 1100000, /* 1.1V */
731 .buck2_voltage[1] = 1000000, /* 1.0V */
732 .buck2_voltage[2] = 950000, /* 0.95V */
733 .buck2_voltage[3] = 900000, /* 0.9V */
734 .buck2_voltage[4] = 1100000, /* 1.1V */
735 .buck2_voltage[5] = 1000000, /* 1.0V */
736 .buck2_voltage[6] = 950000, /* 0.95V */
737 .buck2_voltage[7] = 900000, /* 0.9V */
739 .buck5_voltage[0] = 1200000, /* 1.2V */
740 .buck5_voltage[1] = 1200000, /* 1.2V */
741 .buck5_voltage[2] = 1200000, /* 1.2V */
742 .buck5_voltage[3] = 1200000, /* 1.2V */
743 .buck5_voltage[4] = 1200000, /* 1.2V */
744 .buck5_voltage[5] = 1200000, /* 1.2V */
745 .buck5_voltage[6] = 1200000, /* 1.2V */
746 .buck5_voltage[7] = 1200000, /* 1.2V */
750 .eoc_ratio = 0, /* TODO: change after ratio is implemented */
751 .vichg_adc_get_uV = NULL, /* TODO: Need to fill this in */
755 .haptic_pdata = &u1hd_haptic_pdata,
758 .muic_pdata = &u1hd_muic_pdata,
764 .flash_cntl_val = 0x53, /* Flash safety timer duration: 800msec,
765 Maximum timer mode */