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
|
# Copyright 2020 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
menuconfig PLATFORM_EC_BATTERY
bool "Battery support"
help
Enables battery support on the board. Requires selection of a battery
and a charger IC.
If using I2C batteries, you must define I2C_PORT_BATTERY in your
board's i2c_map.h file so that the EC code will know which I2C
port the battery is on.
if PLATFORM_EC_BATTERY
choice "Battery select"
prompt "Select the battery to use"
help
Select the battery used on the board. If you are ensure, select the
smart battery option.
config PLATFORM_EC_BATTERY_SMART
bool "Support a smart battery"
depends on PLATFORM_EC_I2C
help
Many batteries support the Smart Battery Specification and therefore
have common registers which can be accessed to control and monitor
the battery.
See here for the spec: http://sbs-forum.org/specs/sbdat110.pdf
endchoice
choice "Battery presence detection"
prompt "Method to use to detect the battery"
help
This selects the method to use to detect the presence of a battery.
Battery detection is important since it can be used to indicate that
the case is open, so security features can be disabled. It is also
useful to report to the user when the battery is missing, e.g. with
a desktop icon.
config PLATFORM_EC_BATTERY_PRESENT_CUSTOM
bool "Call a board-provided function"
help
Use this method to provide a board-provided battery_is_present()
function to determine whether the battery is currently present.
This should be implemented in the board code and can use any
reasonable method to detect the battery.
config PLATFORM_EC_BATTERY_PRESENT_GPIO
bool "Check a GPIO"
help
Use this method if a GPIO signals whether the battery is present. The
GPIO should read low if the battery is present, high if absent.
The GPIO is hard-coded to GPIO_BATT_PRES_ODL so you should define this
in the device tree and GPIO map. The convention is to use the signal
name from schematic as both the node name and label for the GPIO. For
example:
/* gpio.dts */
ec_batt_pres_odl {
gpios = <&gpioe 5 GPIO_INPUT>;
label = "EC_BATT_PRES_ODL";
};
/* gpio_map.h */
#define GPIO_BATT_PRES_ODL NAMED_GPIO(ec_batt_pres_odl)
endchoice # battery presence
config PLATFORM_EC_USE_BATTERY_DEVICE_CHEMISTRY
bool "Provide information about battery chemistry"
help
Enable this to specify the chemistry of the battery device. It is
only used for stress testing of reading the battery information over
I2C.
config PLATFORM_EC_BATTERY_DEVICE_CHEMISTRY
string "Battery-device chemistry"
depends on PLATFORM_EC_USE_BATTERY_DEVICE_CHEMISTRY
help
Specify the battery chemistry for use with the I2C stress test.
The value provided here must match what is read from the real
battery. This is used in sb_i2c_test_read() to check that the battery
is returning the right information. If it is not, there might be
something wrong with the I2C implementation.
config PLATFORM_EC_I2C_VIRTUAL_BATTERY
bool "I2C virtual battery"
help
Enables driver for a virtual battery. It is used to minimalize I2C
traffic which is generated by the I2C_PASSTHRU host command.
The battery parameters, which are already cached in EC are used to
return desired data to host instead of issuing I2C transaction every
time.
config PLATFORM_EC_I2C_VIRTUAL_BATTERY_ADDR
hex "I2C virtual battery address"
default 0x0B if PLATFORM_EC_BATTERY_SMART
range 0x00 0x7f
depends on PLATFORM_EC_I2C_VIRTUAL_BATTERY
help
This config sets i2c address that will be intercepted by virtual
battery feature. All communication to this port will be cached
to decrease i2c communication traffic.
This should be equal to the address of real battery.
menuconfig PLATFORM_EC_CHARGER
bool "Charging support"
default y
select HAS_TASK_CHARGER
help
Enable the EC charging task. This enables compilation of the
charge_state_v2 code.
if PLATFORM_EC_CHARGER
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.
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_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_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_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 "Discharge control method"
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 # "Discharge control method"
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_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_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_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_BATTERY_FUEL_GAUGE
bool "Board supplies battery info"
help
The fuel gauge information is used to cut off the battery for shipping
mode and to check the charge/discharge FET status. The battery
information is used to set voltage, current and temperature operating
limits for the battery.
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 "Charge-ramp method"
prompt "Select the charge-ramp method"
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 # "Charge-ramp method"
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.
endif # PLATFORM_EC_CHARGER
config PLATFORM_EC_BATTERY_CRITICAL_SHUTDOWN_CUT_OFF
bool "Enable battery cut off on critical power level"
help
If this option is enabled, the battery will enter cut-off
mode in case of critical power level.
config PLATFORM_EC_BATTERY_CHECK_CHARGE_TEMP_LIMITS
bool "Monitor battery temperature while charging"
help
Enable monitoring of battery temperature while charging and
stop charging if is outside of the safe range.
config PLATFORM_EC_BATTERY_CUT_OFF
bool "Host/Console command: battery cut-off"
help
Enables support for disconnecting the battery using the "cutoff"
console command and the EC_CMD_BATTERY_CUT_OFF host command.
Once defined, a board specific board_cut_off_battery() function
has to be provided.
config PLATFORM_EC_BATTERY_HW_PRESENT_CUSTOM
bool "Hardware check of battery presence"
help
Once defined, the charger will check a board specific function
battery_hw_present() for battery hw presence as an additional
condition to determine if power on is allowed for factory override,
where allowing booting of a bare board with no battery and no power
button press is required.
config PLATFORM_EC_BATTERY_REVIVE_DISCONNECT
bool "Check battery disconnect state"
help
Check for battery in disconnect state (similar to cut-off state).
If this battery is found to be in disconnect state, take it out of
this state by force-applying a charge current. Once defined,
a battery_get_disconnect_state() function has to be provided.
config PLATFORM_EC_BATTERY_MEASURE_IMBALANCE
bool "Measure the battery cells imbalance"
help
Smart battery driver should measure the voltage cell imbalance in the
battery pack.
This requires a battery driver capable of the measurement.
If enabled, the AP enabling may be prevented if battery is too
imbalanced.
config PLATFORM_EC_BATTERY_MAX_IMBALANCE_MV
int "Max battery imbalance in millivolts"
depends on PLATFORM_EC_BATTERY_MEASURE_IMBALANCE
default 200
help
Imbalanced battery packs in this situation appear to have balanced
charge very quickly after beginning the charging cycle, since dV/dQ
rapidly decreases as the cell is charged out of deep discharge.
Increasing the value of
CONFIG_PLATFORM_EC_CHARGER_MIN_BAT_PCT_IMBALANCED_POWER_ON will make a
system tolerant of larger values of
CONFIG_PLATFORM_EC_BATTERY_MAX_IMBALANCE_MV.
config PLATFORM_EC_CHARGER_MIN_BAT_PCT_IMBALANCED_POWER_ON
int "Minimum battery percentage for power on with an imbalanced pack"
depends on PLATFORM_EC_BATTERY_MEASURE_IMBALANCE
default 5
range 0 100
help
If battery pack is in imbalanced state and current state of charge is
below this value, the AP won't be powered on.
config PLATFORM_EC_BATT_FULL_CHIPSET_OFF_INPUT_LIMIT_MV
int "Voltage limit in mV when battery is full and AP is off"
depends on PLATFORM_EC_USB_PE_SM && PLATFORM_EC_CHARGE_MANAGER
default -1
help
If set to a non-negative value, input voltage will be reduced to given
value when chipset is in S5/G3 state and battery is fully charged.
This condition is checked on chipset shutdown and startup, AC change
and battery SOC change.
choice PLATFORM_EC_BATTERY_API
prompt "Battery API version"
default PLATFORM_EC_BATTERY_V2
help
Select the battery API version. V2 is required on dual-battery-systems
and hostless bases with a battery. V1 should not be used except for
testing on legacy boards.
config PLATFORM_EC_BATTERY_V1
bool "Enable battery API v1"
depends on !PLATFORM_EC_BATTERY_V2
help
This enables battery API version 1, with support for only a single
battery. Battery information strings are trimmed to 8 characters.
config PLATFORM_EC_BATTERY_V2
bool "Enable battery API v2"
help
This enables battery API version 2. This version can support multiple
batteries and full size string values in the battery information
including manufacturer, model, chemistry.
config PLATFORM_EC_BATTERY_TYPE_NO_AUTO_DETECT
bool "Disable battery auto detection"
help
Enable this option when the battery type cannot be distinguished
based on only the manufacturer and device name. Your board code
must call battery_set_fixed_battery_type() to set the fixed battery
type, during board initialization.
endchoice
if PLATFORM_EC_BATTERY_V2
config PLATFORM_EC_BATTERY_COUNT
int "Battery count"
default 1
help
The number of batteries in the system. It matters only when
PLATFORM_EC_BATTERY_V2 is enabled. Note this is different from
BATTERY_TYPE_COUNT.
endif # PLATFORM_EC_BATTERY_V2
endif # PLATFORM_EC_BATTERY
|