summaryrefslogtreecommitdiff
path: root/zephyr/Kconfig.charger
blob: 7c50f9fe311cf84dfc72d50780e8795625a5b916 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
# Copyright 2022 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

menuconfig PLATFORM_EC_CHARGER
	bool "Charging support"
	default y
	select HAS_TASK_CHARGER
	select PLATFORM_EC_EXTPOWER
	depends on PLATFORM_EC_BATTERY
	help
	  Enable the EC charging task.

if PLATFORM_EC_CHARGER

choice PLATFORM_EC_CHARGER_TYPE
	prompt "Select how many chargers are on the board"
	default PLATFORM_EC_CHARGER_SINGLE_CHIP
	help
	  Select a single charger or multiple chargers.
	  Multiple chargers imply one charger per type-C port (OCPC).

config PLATFORM_EC_CHARGER_SINGLE_CHIP
	bool "Board has a single charger"
	help
	  Enables a single charger for the board, which is assigned
	  index 0.

config PLATFORM_EC_OCPC
	bool "Board has multiple chargers"
	help
	  Enables multiple chargers, one for each type-C port (OCPC).
	  The assumption is that that primary charger is index 0 and is the
	  charger IC connected to the battery FET.
	  Additionally, `chgnum` is assumed to be the same as the
	  charge port index.

endchoice # PLATFORM_EC_CHARGER_TYPE

config PLATFORM_EC_CHARGER_RUNTIME_CONFIG
	bool "Allow charger configuration at runtime"
	default n
	help
	  When enabled, the internal array of charger chip configuration will
	  not be made constant. This allows board code to do runtime
	  reconfiguration, such as to configure ports that may only be present
	  in some hardware configurations or when ports in some configurations
	  are setup differently.

config PLATFORM_EC_CHARGE_MANAGER
	bool "Charge manager"
	default y
	help
	  The EC charge manager manages charging the battery from all supported
	  power sources.  This includes dedicated charge ports (such as a
	  barrel jack connector), BC1.2 (Battery Charging 1.2) sources, and
	  USB-C sources. When multiple charge sources are connected to a
	  Chromebook simultaneously, the charge manager is responsible for
	  picking the best source. This also enables compilation of the
	  charge_state_v2 code.

	  Note that the charge manager assumes that at least one USB-C power
	  source is available on the hardware, so cannot be built without
	  PLATFORM_EC_USBC.

config PLATFORM_EC_CHARGE_STATE_DEBUG
	bool "Debug information about the charge state"
	depends on PLATFORM_EC_CHARGE_MANAGER
	help
	  Enables debug information regarding the current charge state. Enabling
	  this config will allow the EC_CMD_CHARGE_STATE host command to use the
	  CHARGE_STATE_CMD_GET_PARAM command to query the current charge state.

config PLATFORM_EC_CMD_PWR_AVG
	bool "Enable the console command to print power average"
	depends on PLATFORM_EC_CHARGE_MANAGER
	help
	  Enables the console command which prints out the current (past 1
	  minute) power average.

config PLATFORM_EC_CHARGESPLASH
	bool "Charging splashscreen support"
	help
	  Enable visual charging indicator to display on-screen when
	  AC is initially connected.

config PLATFORM_EC_CHARGER_ISL9237
	bool "Use the ISL9237 charger"
	depends on PLATFORM_EC_I2C
	select PLATFORM_EC_CHARGER_NARROW_VDC
	select PLATFORM_EC_CHARGER_OTG_SUPPORTED
	help
	  Enables a driver for the ISL9237 VCD Battery Charger. This is a
	  digitally-configurable, buck-boost battery charger that supporting
	  Narrow Voltage Direct Charging (NVDC). It supports an input voltage
	  range of 3.2-23.4V and output of 2.4-13.8V. It provides an I2C
	  interface for configuration an provides a USB On-The-Go (OTG)
	  function for 2- and 3-cell battery applications.

config PLATFORM_EC_CHARGER_ISL9238
	bool "Use the ISL9238 charger"
	depends on PLATFORM_EC_I2C
	select PLATFORM_EC_CHARGER_NARROW_VDC
	select PLATFORM_EC_CHARGER_OTG_SUPPORTED
	help
	  Enables a driver for the ISL9238 VCD Battery Charger. This is a
	  digitally-configurable, buck-boost battery charger that supporting
	  Narrow Voltage Direct Charging (NVDC). It supports an input voltage
	  range of 3.2-23.4V and output of 2.4-18.3V. It provides an I2C
	  interface for configuration.

config PLATFORM_EC_CHARGER_ISL9238C
	bool "Use the ISL9238 Rev C charger"
	depends on PLATFORM_EC_I2C
	select PLATFORM_EC_CHARGER_NARROW_VDC
	select PLATFORM_EC_CHARGER_OTG_SUPPORTED
	help
	  Enable a driver for the ISL9238 Rev C VCD Battery Charger. This
	  is a digitally-configurable, buck-boost battery charger that
	  supporting Narrow Voltage Direct Charging (NVDC). It supports an input
	  voltage range of 3.2-23.4V and output of 2.4-18.3V. It provides an I2C
	  interface for configuration.

	  This option is separate from PLATFORM_EC_CHARGER_ISL9238 since there
	  is no way in software to distinguish between rev. A/B and rev. C.

config PLATFORM_EC_CHARGER_ISL9241
	bool "Use the ISL9241 charger"
	depends on PLATFORM_EC_I2C
	# Hardware based charge ramp is broken in the ISL9241 (b/169350714)
	select PLATFORM_EC_CHARGER_CHGRAMP_BROKEN
	help
	  Enables a driver for the ISL9241 VCD Battery Charger. This is a
	  digitally-configurable, buck-boost battery charger that can support
	  both Narrow Voltage Direct Charging (NVDC) and Hybrid Power Buck Boost
	  (HPBB/Bypass) charging and switch between the modes under firmware
	  control. It supports an input voltage range of 3.9-23.4V and output
	  of 3.9-18.3V. It provides an I2C interface for configuration.

config PLATFORM_EC_CHARGER_RAA489110
	bool "Use the RAA489110 charger"
	depends on PLATFORM_EC_I2C
	# Hardware based charge ramp is broken in the ISL9241 (b/169350714)
	# Probably also broken for RAA489110.
	select PLATFORM_EC_CHARGER_CHGRAMP_BROKEN
	help
	  Enables a driver for the RAA489110 VCD Battery Charger. This is a
	  EPR capable version of ISL9241.

if PLATFORM_EC_CHARGER_ISL9241

config PLATFORM_EC_ISL9241_SWITCHING_FREQ
	int "ISL9241 switching frequency"
	default -1
	help
	  Switching frequency for all ISL9241 chips. ISL9241 configures the
	  switching frequency and overrides the default one set by PROG pin.
	  Setting -1 means the no-override option, the default value is not
	  changed. The valid frequency settings are listed in
	  driver/charger/isl9241.h

endif

config PLATFORM_EC_CHARGER_BQ25710
	bool "Use the BQ25710 charger"
	depends on PLATFORM_EC_I2C
	select PLATFORM_EC_CHARGER_NARROW_VDC
	help
	  Enables the driver for the TI BQ25710 battery charger
	  controller. This is a synchronous narrow voltage DC buck-boost
	  battery charger for one to four battery cell applications. A
	  wide range of input power sources are supported such as high
	  voltage USB-C power delivery.

config PLATFORM_EC_CHARGER_BQ25720
	bool "Use the BQ25720 charger"
	depends on PLATFORM_EC_I2C
	select PLATFORM_EC_CHARGER_NARROW_VDC
	help
	  Enables the driver for the TI BQ25720 battery charger
	  controller. This is a synchronous narrow voltage DC buck-boost
	  battery charger for one to four battery cell applications. A
	  wide range of input power sources are supported such as high
	  voltage USB-C power delivery.

config PLATFORM_EC_CHARGER_RAA489000
	bool "Use the RAA489000 charger"
	depends on PLATFORM_EC_I2C
	depends on PLATFORM_EC_CHARGER_SENSE_RESISTOR > 0
	depends on PLATFORM_EC_CHARGER_SENSE_RESISTOR_AC > 0
	select PLATFORM_EC_CHARGER_NARROW_VDC
	select PLATFORM_EC_CHARGER_TRICKLE
	help
	  Enables the driver for the Renesas RAA489000 battery charger
	  with integrated USB-C TCPC.

config PLATFORM_EC_RAA489000_AC_PRESENT_CONTROL
	bool "Invert the AC_PRESENT signal when in OTG mode"
	depends on PLATFORM_EC_CHARGER_RAA489000 && !PLATFORM_EC_EXTPOWER_GPIO
	help
	  Enables the RAA489000 chip to invert the AC_PRESENT signal
	  when the charger is in OTG (sourcing) mode.
	  This is required when the internal comparator is used to
	  generate the AC_PRESENT signal from the ACOK signal.
	  In OTG mode the ACOK signal is high, but the AC_PRESENT
	  should be set low, so the comparator output must be inverted.
	  The GPIO_AC_PRESENT gpio signal must not be configured.

config PLATFORM_EC_CHARGER_RT9490
	bool "Use the RT9490 charger"
	default y
	depends on DT_HAS_RICHTEK_RT9490_ENABLED || DT_HAS_ZEPHYR_RT9490_EMUL_ENABLED
	depends on PLATFORM_EC_I2C
	select PLATFORM_EC_CHARGER_OTG_SUPPORTED
	help
	  Enables the driver for the Richtek RT9490 battery charger
	  controller. This is a highly-integrated 5A Buck-Boost switch mode
	  battery charge management and system power path management device for
	  1-4 cell Li-Ion and Li-polymer battery.

config PLATFORM_EC_CHARGER_SM5803
	bool "Use the SM5803 charger"
	depends on PLATFORM_EC_I2C
	select PLATFORM_EC_CHARGER_NARROW_VDC
	help
	  Enables the driver for the SM5803.
	  The SM5803 is the Silicon Mitus SM5803 Buck-Boost Charger.

	  This charger is known to be very inefficient when operating in buck-boost
	  mode (when input voltage is close to output voltage), such that permanent
	  damage may be done to the charger. Users should exercise caution around
	  choice of supported configurations: see b:260271871, b:258754576, and
	  b:230712704 for more information.


if PLATFORM_EC_OCPC

config PLATFORM_EC_OCPC_DEF_RBATT_MOHMS
	int "Resistance between the secondary charger IC and the battery"
	help
	  Boards using OCPC must define this value in order to seed the
	  starting board battery and system resistance between the secondary
	  charger IC and the battery.
	  This should be at a minimum the Rds(on) resistance of the BFET plus
	  the series sense resistor.

config PLATFORM_EC_OCPC_DEF_DRIVELIMIT_MILLIVOLTS
	int "Drive Limit for the OCPC PID control loop"
	default 10
	help
	  Sets how agressively the OCPC PID control loop can adjust VSYS to drive
	  the battery with the correct current.

endif  # PLATFORM_EC_OCPC

config PLATFORM_EC_CHARGER_DISCHARGE_ON_AC
	bool "Board supports discharge mode"
	help
	  Enable this if the board supports discharging the battery even when
	  AC power is present. This is used for testing. The function is
	  provided either by the charger or by custom code in the board.

if PLATFORM_EC_CHARGER_DISCHARGE_ON_AC

choice PLATFORM_EC_CHARGER_DISCHARGE_MODE
	prompt "Select the method of controlling discharge"
	help
	  Select which method is provided to enable and disable the discharge
	  mode.

config PLATFORM_EC_CHARGER_DISCHARGE_ON_AC_CHARGER
	bool "Charger controls discharge mode"
	help
	  Enable this if the charger controls selection of discharge mode.
	  In this case the charger must provide a function:

	     int charger_discharge_on_ac(int enabled)

	  It should enable this feature if enabled is true, else disable it.
	  The function should return EC_SUCCESS

config PLATFORM_EC_CHARGER_DISCHARGE_ON_AC_CUSTOM
	bool "Custom control of discharge mode"
	help
	  Enable this if the discharge mode is controlled by a custom function.
	  This function is typically provided by the board implementation:

	     int board_discharge_on_ac(int enabled)

	  It should enable this feature if enabled is true, else disable it.
	  The function should return EC_SUCCESS

endchoice # PLATFORM_EC_CHARGER_DISCHARGE_MODE

endif # PLATFORM_EC_CHARGER_DISCHARGE_ON_AC

config PLATFORM_EC_CHARGER_BQ25710_PSYS_SENSING
	bool "Charger monitors PSYS"
	default n
	depends on PLATFORM_EC_CHARGER_BQ25710 || PLATFORM_EC_CHARGER_BQ25720
	help
	  This enables the PSYS sensing circuit on the BQ25710 and
	  BQ25720 chargers. This is used for system power monitoring on
	  board designs that support this capability. This circuit is
	  disabled by default (reset) and needs to be explicitly enabled
	  for meaningful results.

config PLATFORM_EC_CHARGER_BQ25710_CMP_REF_1P2
	bool "Use 1.2 V for internal comparator reference voltage"
	default n
	depends on PLATFORM_EC_CHARGER_BQ25710 || PLATFORM_EC_CHARGER_BQ25720
	help
	  This changes the charger's internal comparator reference
	  voltage to 1.2 V. The power-on default is 2.3 V. This must be
	  enabled if the board was designed for 1.2 V instead of 2.3 V.

config PLATFORM_EC_CHARGER_BQ25710_CMP_POL_EXTERNAL
	bool "independent comparator output polarity"
	default n
	depends on PLATFORM_EC_CHARGER_BQ25710 || PLATFORM_EC_CHARGER_BQ25720
	help
	  Set the CMP_POL register. When CMPIN is above internal threshold,
	  CMPOUT is LOW setting value is 0. When CMPIN is below internal threshold,
	  CMPOUT is LOW setting value is 1.

config PLATFORM_EC_CHARGER_BQ25710_PKPWR_TOVLD_DEG_CUSTOM
	bool "PKPWR_TOVLD_DEG override"
	default n
	depends on PLATFORM_EC_CHARGER_BQ25710 || PLATFORM_EC_CHARGER_BQ25720
	help
	  Enable customizing the charger's PKPWR_TOVLD_DEG period.

config PLATFORM_EC_CHARGER_BQ25710_PKPWR_TOVLD_DEG
	int "PKPWR_TOVLD_DEG period"
	range 0 3
	default 0
	depends on PLATFORM_EC_CHARGER_BQ25710 || PLATFORM_EC_CHARGER_BQ25720
	help
	  Sets the input overload time when in peak power mode
	  (PKPWR_TOVLD_DEG). This limits how long the charger can draw
	  ILIM2 from the adapter. This is a 2 bit field. On the bq25710
	  1 ms to 20 ms can be encoded. On the bq25720 1 ms to 10 ms can
	  be encoded.

config PLATFORM_EC_CHARGER_BQ25710_EN_ACOC
	bool "Enable AC over-current protection"
	default n
	depends on PLATFORM_EC_CHARGER_BQ25710 || PLATFORM_EC_CHARGER_BQ25720
	help
	  This enables the charger's AC over-current protection. The
	  converter turns off when the OC threshold is reached. The
	  threshold is selected using the ACOC_VTH bit.

config PLATFORM_EC_CHARGER_BQ25710_ACOC_VTH_1P33
	bool "Set ACOC threshold to 133% of ILIM2"
	default n
	depends on PLATFORM_EC_CHARGER_BQ25710 || PLATFORM_EC_CHARGER_BQ25720
	help
          This selects which ACOC protection threshold is used with
	  EN_ACOC. Enabling this option selects 133% of
	  ILIM2. Otherwise, the default is 200% of ILIM2.

config PLATFORM_EC_CHARGER_BQ25710_BATOC_VTH_MINIMUM
	bool "Select the minimum BATOC threshold"
	default n
	depends on PLATFORM_EC_CHARGER_BQ25710 || PLATFORM_EC_CHARGER_BQ25720
	help
          This selects the minimum BATOC protection threshold to be used
          with EN_BATOC. The minimum threshold is 150% of PROCHOT IDCHG
          on the bq25710 and 133% of PROCHOT IDCHG_TH2 on the
          bq25720. The default threshold is 200% on both chips.

config PLATFORM_EC_CHARGER_BQ25710_PP_COMP
	bool "Enable independent comparator PROCHOT"
	default n
	depends on PLATFORM_EC_CHARGER_BQ25710 || PLATFORM_EC_CHARGER_BQ25720
	help
	  Sets the PP_COMP in Prochot Option 1 register. When in low power
	  mode(Battery only), this bit will lose controllability to independent
	  comparator PROCHOT profiles. Need to use EN_PROCHOT_LPWR to enable
	  independent comparator and its PROCHOT profile.

config PLATFORM_EC_CHARGER_BQ25710_PP_INOM
	bool "Enable PROCHOT on adapter current exceeding INOM"
	default n
	depends on PLATFORM_EC_CHARGER_BQ25710 || PLATFORM_EC_CHARGER_BQ25720
	help
	  Sets the PP_INOM bit in Prochot Option 1 register. This causes
	  PROCHOT to be pulsed when the nominal adapter current
	  threshold is reached. INOM is 110% of IDPM/IIN_DPM (input
	  current setting).

config PLATFORM_EC_CHARGER_BQ25710_PP_BATPRES
	bool "Enable PROCHOT on battery removal"
	default n
	depends on PLATFORM_EC_CHARGER_BQ25710 || PLATFORM_EC_CHARGER_BQ25720
	help
	  Sets the PP_BATPRES bit in Prochot Option 1 register. This
	  causes PROCHOT to be pulsed when the battery is removed.

config PLATFORM_EC_CHARGER_BQ25710_PP_ACOK
	bool "Enable PROCHOT on AC removal"
	default n
	depends on PLATFORM_EC_CHARGER_BQ25710 || PLATFORM_EC_CHARGER_BQ25720
	help
	  Sets the PP_ACOK in Prochot Option 1 register. This causes
	  PROCHOT to be pulsed when the AC adapter is removed.

config PLATFORM_EC_CHARGER_BQ25720_PP_IDCHG2
	bool "Enable PROCHOT on battery current exceeding IDCHG_TH2"
	default n
	depends on PLATFORM_EC_CHARGER_BQ25720
	help
	  Sets the PP_IDCHG2 bit in Charge Option 4 register. This
	  causes PROCHOT to be pulsed when the battery discharge current
	  exceeds IDCHG_TH2.

config PLATFORM_EC_CHARGER_BQ25710_SENSE_RESISTOR
	int "Value of the charge sense-resistor, in mOhms"
	default 10
	depends on PLATFORM_EC_CHARGER_BQ25710 || PLATFORM_EC_CHARGER_BQ25720
	help
	  The charge sense-resistor is used to detect the charge current to the
	  battery. Its value must be known for the calculation to be correct.
	  The value is typically around 10 mOhms.

config PLATFORM_EC_CHARGER_BQ25710_SENSE_RESISTOR_AC
	int "Value of the input sense-resistor, in mOhms"
	default 10
	depends on PLATFORM_EC_CHARGER_BQ25710 || PLATFORM_EC_CHARGER_BQ25720
	help
	  The input sense-resistor is used to detect the input current from the
	  external AC power supply. Its value must be known for the calculation
	  to be correct. The value is typically around 10 mOhms.

config PLATFORM_EC_CHARGER_BQ257X0_ILIM2_VTH_CUSTOM
	bool "ILIM2_VTH override"
	depends on PLATFORM_EC_CHARGER_BQ25710 || PLATFORM_EC_CHARGER_BQ25720
	help
	  Enable customizing the charhger's ILIM2_VTH threshold

config PLATFORM_EC_CHARGER_BQ257X0_ILIM2_VTH
	int "ILIM2 threshold"
	range 1 30
	default 9
	depends on PLATFORM_EC_CHARGER_BQ257X0_ILIM2_VTH_CUSTOM
	help
	  Set percentage of IDPM as threshold. ICRIT threshold is set to be 110%
	  of ILIM2. Input overcurrent protection (ACOC) threshold is also 1.33x
	  or 2x of ILIM2 (1.33x or 2x based on ACOC limit field).
	  1  - 25: 110% - 230%, step is 5%.
	  26 - 30: 250% - 450%, step is 50%.
	  31: Out of range (ignored).

config PLATFORM_EC_CHARGER_BQ25720_VSYS_TH2_CUSTOM
	bool "VSYS_TH2 override"
	depends on PLATFORM_EC_CHARGER_BQ25720
	help
	  Enable customizing the charger's VSYS_TH2 threshold.

config PLATFORM_EC_CHARGER_BQ25720_VSYS_TH2_DV
	int "VSYS threshold 2 in deci-volts"
	range 32 95
	default 32
	depends on PLATFORM_EC_CHARGER_BQ25720_VSYS_TH2_CUSTOM
	help
	  Sets the VSYS threshold 2 in deci volts. This is the first
	  threshold that will be encountered when VSYS droops, typically
	  due to high power demand from the main processor. The charger
	  chip reacts by asserting PROCHOT which the main processor uses
	  as an indication to throttle back and reduce power demand. The
	  charger chip uses default thresholds which may be low enough
	  to cause system instability. The default for 1S batteries is
	  3.2v and 5.9v for 2S or higher batteries.  The valid range is
	  3.2v - 3.9v for 1S and 3.2 - 9.5v for 2S or higher batteries.

config PLATFORM_EC_CHARGER_BQ25720_VSYS_UVP_CUSTOM
       	bool "VSYS_UVP override"
	depends on PLATFORM_EC_CHARGER_BQ25720
	help
	  Enable customizing the charger's VSYS_UVP threshold.

config PLATFORM_EC_CHARGER_BQ25720_VSYS_UVP
       	int "VSYS_UVP threshold"
	range 0 7
	default 0
	depends on PLATFORM_EC_CHARGER_BQ25720_VSYS_UVP_CUSTOM
	help
	  Sets the VSYS under voltage (VSYS_UVP) lockout threshold. This
	  is a 3 bit field with default value 0. The actual voltage
	  encoded is (0.8 * <value> + 2.4), allowing a threshold in the
	  range of 2.4 V to 8.0 V to be specified.

config PLATFORM_EC_CHARGER_BQ25720_IDCHG_DEG2_CUSTOM
	bool "IDCHG_TH2 deglitch time override"
	depends on PLATFORM_EC_CHARGER_BQ25720
	help
	  Enable customizing the charger's 2nd battery discharge current
	  limit (IDCHG_TH2) deglitch time (IDCHG_DEG2).

config PLATFORM_EC_CHARGER_BQ25720_IDCHG_DEG2
	int "IDCHG_TH2 deglitch time"
	range 0 3
	default 1
	depends on PLATFORM_EC_CHARGER_BQ25720_IDCHG_DEG2_CUSTOM
	help
	  Sets the 2nd battery discharge current limit (IDCHG_TH2)
	  deglitch time (IDCHG_DEG2). This is a 2 bit field with default
	  value 1 (1.6 ms). The encoded value ranges from 100 us to 12
	  ms.

config PLATFORM_EC_CHARGER_BQ25720_IDCHG_TH2_CUSTOM
	bool "IDCHG_TH2 override"
	depends on PLATFORM_EC_CHARGER_BQ25720
	help
	  Enable customizing the charger's 2nd battery discharge current
	  limit (IDCHG_TH2).

config PLATFORM_EC_CHARGER_BQ25720_IDCHG_TH2
	int "IDCHG threshold 2"
	range 0 7
	default 1
	depends on PLATFORM_EC_CHARGER_BQ25720_IDCHG_TH2_CUSTOM
	help
	  Sets the charger's 2nd battery discharge current limit
	  (IDCHG_TH2) as a percentage of IDCHG_TH1. This is a 3 bit
	  field with default value 1 (150%). The encoded value ranges
	  from 125% to 400%.

config PLATFORM_EC_CHARGER_BQ25710_VSYS_MIN_VOLTAGE_CUSTOM
	bool "Enable minimum system voltage override"
	depends on PLATFORM_EC_CHARGER_BQ25710 || PLATFORM_EC_CHARGER_BQ25720
	help
	  Enable customizing the charger's 2nd battery discharge current
	  limit (IDCHG_TH2).

config PLATFORM_EC_CHARGER_BQ25710_VSYS_MIN_VOLTAGE_MV
	int "Minimum system voltage in milli-volts"
	default 0
	depends on PLATFORM_EC_CHARGER_BQ25710_VSYS_MIN_VOLTAGE_CUSTOM
	help
	  Sets the minimum system voltage in milli-volts. The bq25710
	  uses 6 bits of resolution and can be configured from 1.024 V
	  to 16.128 V in 256 mV increments. The bq25720 uses 8 bits of
	  resolution and can be set from 1.0 V to 19.2 V in 100 mV
	  increments. The default value depends on configured number of
	  battery cells connected in series using the CELL_BATPRESZ
	  strap.

config PLATFORM_EC_CHARGER_MAINTAIN_VBAT
	bool "Maintain VBAT voltage regardless of AC state"
	help
	  Leave the charger VBAT configured to battery-requested voltage under
	  all conditions, even when AC is not present. This may be necessary to
	  work around quirks of certain charger chips, such as the BD9995X.

config PLATFORM_EC_CHARGER_BYPASS_MODE
	bool
	help
	  Select this option if the charger will be used in a bypass mode in
	  order to pass the input current from AC directly to the system
	  power rail for efficiency.

config PLATFORM_EC_CHARGER_NARROW_VDC
	bool
	help
	  Select this if the charger uses a Narrow Voltage Direct Charging.
	  Narrow VDC (NVDC) reduces power loss by reducing the voltage range of
	  the VDC node. This reduction is accomplished by replacing the
	  battery-charger circuit with a system-charger voltage regulator, thus
	  narrowing the VDC range. This in turn enables DC/DC converter
	  optimisations in the system and allows the removal of the power-path
	  switch, saving additional power, board area, and cost.

	  This should be enabled by charger drivers which need it. It cannot
	  be set otherwise, even in prj.conf

config PLATFORM_EC_CHARGER_TRICKLE
	bool
	help
	  Select this if the charger allows trickle charging, which allows
	  the battery to charge with a minimum voltage.

	  This should be enabled by charger drivers which need it.

config PLATFORM_EC_CHARGER_OTG_SUPPORTED
	bool
	help
	  Indicates that the charger supports an OTG (On-The-Go) function,
	  which allows supplying output power from the battery to a connected
	  device.

	  This should be enabled by charger drivers which support it. It cannot
	  be set otherwise, even in prj.conf

config PLATFORM_EC_CHARGER_OTG
	bool "Allow supplying output power from the battery"
	depends on PLATFORM_EC_CHARGER_OTG_SUPPORTED
	help
	  Enable charger's OTG functions, i.e. make it possible to supply
	  output power from the battery. This option is available if the
	  selected charger supports it.

config PLATFORM_EC_CHARGER_PROFILE_OVERRIDE
	bool "Override the charger profile"
	help
	  Select this if the charger should call battery_override_params() to
	  limit/correct the voltage and current requested by the battery pack
	  before acting on the request.

	  The board must provide this function:

	    void battery_override_params(struct batt_params *batt);

	  It may modify the parameters as needed.

config PLATFORM_EC_CHARGER_PSYS
	bool "Support system power-monitor (PSYS) function"
	help
	  Enable this to support monitoring of system power using the charger's
	  PSYS function. The charger provides an output which can be read
	  using an ADC channel on the EC.

config PLATFORM_EC_CHARGER_PSYS_READ
	bool "Allow reading PSYS (system power) value"
	depends on PLATFORM_EC_CHARGER_PSYS
	help
	  Enable support for reading the system-power value (PSYS). This
	  calls the function charger_get_system_power() which is provided
	  by the charger.

	  It also enables the "psys" console command.

	  Sample output:

	    PSYS from chg_adc: 456 mW

config PLATFORM_EC_CHARGER_SENSE_RESISTOR
	int "Value of the charge sense-resistor, in mOhms"
	help
	  The charge sense-resistor is used to detect the charge current to the
	  battery. Its value must be known for the calculation to be correct.
	  The value is typically around 10 mOhms.

config PLATFORM_EC_CHARGER_SENSE_RESISTOR_AC
	int "Value of the input sense-resistor, in mOhms"
	help
	  The input sense-resistor is used to detect the input current from the
	  external AC power supply. Its value must be known for the calculation
	  to be correct. The value is typically around 10 mOhms.

config PLATFORM_EC_CHARGER_CHGRAMP_BROKEN
	bool
	help
	  This is selected if the charger's support for hardware-controlled
	  charge ramping is broken. In some cases the charger has problems
	  which make it unusable and we must fall back to software-controlled
	  charge ramping.

	  This should be enabled by charger drivers which need it. It cannot
	  be set otherwise, even in prj.conf

choice PLATFORM_EC_CHARGE_RAMP_TYPE
	prompt "Select the charge-ramp method"
	optional
	help
	  Select the method used for ramping up charging of a battery. It is
	  preferred to use the hardware method if the charger chip can support
	  it. If not, software-controlled charging can be used, with a slight
	  increase in code size.

config PLATFORM_EC_CHARGE_RAMP_HW
	bool "Hardware-controlled charging"
	depends on !PLATFORM_EC_CHARGER_CHGRAMP_BROKEN
	help
	   Disables software control of ramping up charging. This is used when
	   the hardware has a mechanism for ramping input current and
	   backing-off as needed.

config PLATFORM_EC_CHARGE_RAMP_SW
	bool "Software-controlled charging"
	select HAS_TASK_CHG_RAMP
	help
	  Enables ramping up charging from an external source to the maximum
	  available within the source's limits and taking into account the
	  current needs of the device. It handles the user plugging chargers in
	  and removing them.

endchoice # PLATFORM_EC_CHARGE_RAMP_TYPE

config PLATFORM_EC_CONSOLE_CMD_CHARGER_ADC_AMON_BMON
	bool "Console command: amonbmon"
	help
	  Enable the 'amonbmon' command. This shows the charger adapter-current
	  monitor (AMON) and battery-charging current monitor (BMON).

	     amonbmon a | b

config PLATFORM_EC_CONSOLE_CMD_CHGRAMP
	bool "Console command: chgramp"
	depends on PLATFORM_EC_CHARGE_RAMP_SW
	default y
	help
	  Enable the "chgramp" command. This shows the current state of the
	  chg_ramp task. It shows the state of each port and the current limit
	  for each port. The 'State' shown is from enum chg_ramp_state.

	  Chg Ramp:
	    State: 5
	    Min ICL: 2000
	    Active ICL: 2000
	    Port 0:
	      OC idx:0
	      OC 0: s-1 oc_det0 icl0
	      OC 1: s0 oc_det0 icl0
	      OC 2: s0 oc_det0 icl0
	    Port 1:
	      OC idx:0
	      OC 0: s-1 oc_det0 icl0
	      OC 1: s0 oc_det0 icl0
	      OC 2: s0 oc_det0 icl0

config PLATFORM_EC_CONSOLE_CMD_CHARGER_DUMP
	bool "Console command: charger dump"
	help
	  Enable the "charger dump" subcommand. If the charger driver provides
	  a dump_registers() function, this command shows its register dump.

# TODO(b/229236582): Move this to devicetree
config PLATFORM_EC_DEDICATED_CHARGE_PORT
	bool "Dedicated charging port"
	help
	  Enable if there is a dedicated charging port on the system.

if PLATFORM_EC_CHARGER_RAA489000

choice
	prompt "RAA489000 trickle charge current"
	default PLATFORM_EC_RAA489000_TRICKLE_CHARGE_CURRENT_128MA
	help
	  Set the current limit when trickle-charging.

config PLATFORM_EC_RAA489000_TRICKLE_CHARGE_CURRENT_64MA
	bool "64 mA"
	help
	  Set the trickle charge current to 64 mA.

config PLATFORM_EC_RAA489000_TRICKLE_CHARGE_CURRENT_96MA
	bool "96 mA"
	help
	  Set the trickle charge current to 96 mA.

config PLATFORM_EC_RAA489000_TRICKLE_CHARGE_CURRENT_128MA
	bool "128 mA"
	help
	  Set the trickle charge current to 128 mA.

config PLATFORM_EC_RAA489000_TRICKLE_CHARGE_CURRENT_160MA
	bool "160 mA"
	help
	  Set the trickle charge current to 160 mA.

config PLATFORM_EC_RAA489000_TRICKLE_CHARGE_CURRENT_192MA
	bool "192 mA"
	help
	  Set the trickle charge current to 192 mA.

config PLATFORM_EC_RAA489000_TRICKLE_CHARGE_CURRENT_224MA
	bool "224 mA"
	help
	  Set the trickle charge current to 224 mA.

config PLATFORM_EC_RAA489000_TRICKLE_CHARGE_CURRENT_256MA
	bool "256 mA"
	help
	  Set the trickle charge current to 256 mA.

endchoice

config PLATFORM_EC_RAA489000_TRICKLE_CHARGE_CURRENT
	int
	default 64 if PLATFORM_EC_RAA489000_TRICKLE_CHARGE_CURRENT_64MA
	default 96 if PLATFORM_EC_RAA489000_TRICKLE_CHARGE_CURRENT_96MA
	default 128 if PLATFORM_EC_RAA489000_TRICKLE_CHARGE_CURRENT_128MA
	default 160 if PLATFORM_EC_RAA489000_TRICKLE_CHARGE_CURRENT_160MA
	default 192 if PLATFORM_EC_RAA489000_TRICKLE_CHARGE_CURRENT_192MA
	default 224 if PLATFORM_EC_RAA489000_TRICKLE_CHARGE_CURRENT_224MA
	default 256 if PLATFORM_EC_RAA489000_TRICKLE_CHARGE_CURRENT_256MA

endif # PLATFORM_EC_CHARGER_RAA489000

config PLATFORM_EC_ISL9238C_DISABLE_CMOUT_LATCH
	bool "Disable the CMOUT latch function"
	depends on PLATFORM_EC_CHARGER_ISL9238C
	help
	  Disable the CMOUT latch function for ISL9238C.

config PLATFORM_EC_ISL9238C_ENABLE_BUCK_MODE
	bool "Enable Force Buck mode"
	default n
	depends on PLATFORM_EC_CHARGER_ISL9238C
	help
	  Enable Force Buck mode for ISL9238C.
	  If the Force Buck mode is enabled, the Buck-Boost window narrows.

config PLATFORM_EC_ISL9238C_BUCK_PHASE_VOLTAGE
	int "Value of phase comparator threshold offset"
	default 0
	help
	  Adjusts the phase comparator threshold offset for forward buck
	  and buck-boost.

config PLATFORM_EC_AC_PROCHOT_CURRENT_MA
	int "Value of the prochot threshold current in mA"
	default 3328
	help
	  To set the PROCHOT# assertion threshold for adapter overcurrent
	  conditions.

config PLATFORM_EC_DC_PROCHOT_CURRENT_MA
	int "Value of the prochot threshold current in mA"
	default 6570
	help
	  To set the PROCHOT# signal assertion threshold for battery over
	  discharging current conditions.

config PLATFORM_EC_CHARGER_DUMP_PROCHOT
	bool "Enable support for prochot status dumping functions"
	default n

endif # PLATFORM_EC_CHARGER