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
832
833
834
835
836
837
838
839
840
841
|
# 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_CHARGE_DEBUG
bool "Add a debug sub-command to the 'chgstate' command"
depends on PLATFORM_EC_CHARGE_MANAGER
default y
help
Enables the 'chgstate debug' command which allows extra debugging to
be shown when charging, or when a separate base (with battery) is
used. This adds a little to the code size, but can normally be safely
enabled.
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
|